ISSCommandWithParameters::SetParameterProperties (OLE DB)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Establece las propiedades de los parámetros por cada parámetro por ordinal o establece las propiedades masivas de los parámetro especificando una matriz de estructuras SSPARAMPROPS.
Sintaxis
HRESULT SetParameterProperties(
DB_UPARAMS cParams,
SSPARAMPROPS rgParamProperties[]);
Argumentos
cParams[in]
El número de estructuras SSPARAMPROPS en la matriz rgParamProperties. Si este número es cero, ISSCommandWithParameters::SetParameterProperties eliminará todas las propiedades que se puedan haber especificado en cualquier parámetro del comando.
rgParamProperties[in]
Una matriz de estructuras SSPARAMPROPS que se van a establecer.
Valores de código de retorno
El método ISSCommandWithParameters::SetParameterProperties devuelve los mismos códigos de error que el método ICommandProperties::SetProperties de OLE DB básico.
Observaciones
El establecimiento de propiedades de parámetro con este método se permite por parámetro y por ordinal, o bien mediante una única llamada a ISSCommandWithParameters::SetParameterProperties después de generar SSPARAMPROPS desde la matriz de propiedades.
Se debe llamar al método SetParameterInfo antes de llamar al método ISSCommandWithParameters::SetParameterProperties. La llamada a SetParameterProperties(0, NULL)
borra todas las propiedades de parámetro especificadas, en tanto que la llamada a SetParameterInfo(0,NULL,NULL)
borra toda la información de parámetros, incluidas las propiedades que puedan estar asociadas a un parámetro.
La llamada a ISSCommandWithParameters::SetParameterProperties para especificar propiedades de un parámetro que no es de tipo DBTYPE_XML o DBTYPE_UDT devuelve DB_E_ERRORSOCCURRED o DB_S_ERRORSOCCURRED y marca el campo dwStatus de todas las DBPROP incluidas en SSPARAMPROPS para ese parámetro con DBPROPSTATUS_NOTSET. Se debe recorrer la matriz DBPROP de cada DBPROPSET incluido en SSPARAMPROPS para detectar a qué parámetro hace referencia DB_E_ERRORSOCCURRED o DB_S_ERRORSOCCURRED.
Si se llama a ISSCommandWithParameters::SetParameterProperties para especificar las propiedades de parámetros cuya información de parámetro todavía no se ha establecido con SetParameterInfo, el proveedor devuelve E_UNEXPECTED con el siguiente mensaje de error:
No se puede llamar al método SetParameterProperties para los parámetros especificados sin llamar primero al método SetParameterInfo. La información de parámetro debe configurarse antes que las propiedades de parámetro.
Si la llamada a ISSCommandWithParameters::SetParameterProperties contiene algunos parámetros donde se ha establecido la información de parámetro y algunos parámetros donde no se ha establecido, las propiedades dwStatus en DBPROPSET del conjunto de propiedades SSPARAMPROPS devolverán DBSTATUS_NOTSET.
La estructura SSPARAMPROPS se define del siguiente modo:
struct SSPARAMPROPS {
DBORDINAL iOrdinal;
ULONG cPropertySets;
DBPROPSET *rgPropertySets;
};
Las mejoras en el motor de base de datos a partir de SQL Server 2012 (11.x) permiten a ISSCommandWithParameters::SetParameterProperties obtener descripciones más precisas de los resultados esperados. Estos resultados más precisos pueden diferir de los valores que devuelve ISSCommandWithParameters::SetParameterProperties en las versiones anteriores de SQL Server. Para obtener más información, vea Detección de metadatos.
Member | Descripción |
---|---|
iOrdinal | El ordinal del parámetro que se ha pasado. |
cPropertySets | El número de estructuras DBPROPSET de rgPropertySets. |
rgPropertySets | Un puntero a la memoria que devuelve una matriz de estructuras DBPROPSET. |