ISSCommandWithParameters::GetParameterProperties (OLE DB)
Devuelve una matriz de estructuras de conjunto de propiedades SSPARAMPROPS, un conjunto de propiedades SSPARAMPROPS para cada parámetro XML o UDT.
Sintaxis
HRESULT GetParameterProperties(
DB_UPARAMS *pcParams,
SSPARAMPROPS **prgParamProperties);
Argumentos
pcParams[out][in]
Un puntero a la memoria que contiene el número de estructuras SSPARAMPROPS devueltas en prgParamProperties.prgParamProperties[out]
Un puntero a la memoria que devuelve una matriz de estructuras SSPARAMPROPS. El proveedor asigna memoria para las estructuras y devuelve la dirección a esta memoria; el consumidor libera esa memoria con IMalloc::Free cuando ya no necesita las estructuras. Antes de llamar a IMalloc::Free para prgParamProperties, el consumidor debe llamar también a VariantClear para la propiedad vValue de cada estructura DBPROP con el fin de evitar una pérdida de memoria en los casos donde la variante contenga un tipo de referencia (como un BSTR). Si pcParams da cero como resultado o se produce un error distinto de DB_E_ERRORSOCCURRED, el proveedor no asigna memoria y se asegura de que prgParamProperties resulte en un puntero nulo.
Valores de código de retorno
El método GetParameterProperties devuelve los mismos códigos de error que el método OLE DB básico ICommandProperties::GetProperties, salvo en que no puede dar DB_S_ERRORSOCCURRED y DB_E_ERRORSOCCURED.
Comentarios
ISSCommandWithParameters::GetParameterProperties se comporta de forma coherente con respecto a GetParameterInfo. Si no se ha llamado a ISSCommandWithParameters::SetParameterProperties o SetParameterInfo o se les ha llamado con cParams igual a cero, GetParameterInfo deriva la información del parámetro y la devuelve. Si se ha llamado a ISSCommandWithParameters::SetParameterProperties o a SetParameterInfo para por lo menos un parámetro, ISSCommandWithParameters::GetParameterProperties solo devuelve las propiedades de esos parámetros para los que se ha llamado a ISSCommandWithParameters::SetParameterProperties. Si se llama a ISSCommandWithParameters::SetParameterProperties después de a ISSCommandWithParameters::GetParameterProperties o GetParameterInfo, las posteriores llamadas a ISSCommandWithParameters::GetParameterProperties devuelven los valores invalidados para esos parámetros para los que se ha llamado a ISSCommandWithParameters::SetParameterProperties.
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. |