ISSCommandWithParameters::SetParameterProperties (OLE DB)
Establece las propiedades de parámetro por cada parámetro por ordinal o establece propiedades masivas de parámetro mediante la especificación de una matriz de estructuras SSPARAMPROPS.
Sintaxis
HRESULT SetParameterProperties(
DB_UPARAMS cParams,
SSPARAMPROPS rgParamProperties[]);
Argumentos
cParams[entrada]
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[entrada]
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.
Comentarios
El establecimiento de propiedades de parámetro con este método se permite por parámetro y por ordinal o mediante una única llamada a ISSCommandWithParameters::SetParameterProperties una vez que se ha generado 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 la información de parámetro, 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;
};
Miembro |
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. |