ISSCommandWithParameters::GetParameterProperties (OLE DB)
Retorna uma matriz de estruturas de conjuntos de propriedades SSPARAMPROPS, um conjunto de propriedades SSPARAMPROPS para cada parâmetro XML ou UDT.
Sintaxe
HRESULT GetParameterProperties(
DB_UPARAMS *pcParams,
SSPARAMPROPS **prgParamProperties);
Argumentos
pcParams[out][in]
Um ponteiro para a memória que contém o número de estruturas SSPARAMPROPS retornadas em prgParamProperties.
prgParamProperties[out]
Um ponteiro para memória na qual uma matriz de estrutura SSPARAMPROPS é retornada. O provedor aloca memória para as estruturas e retorna o endereço para essa memória; o consumidor libera essa memória com IMalloc::Free quando não precisa mais das estruturas. Antes de chamar IMalloc::Free para prgParamProperties, o consumidor também deve chamar VariantClear para a propriedade vValue de cada estrutura DBPROP, a fim de evitar uma perda de memória nos casos em que a variante contém um tipo de referência (como um BSTR).) Se pcParams for zero na saída ou ocorrer um erro diferente de DB_E_ERRORSOCCURRED, o provedor não alocará nenhuma memória e garantirá que prgParamProperties seja um ponteiro nulo na saída.
Valores do código de retorno
O método GetParameterProperties retorna os mesmos códigos de erro que o método principal ICommandProperties::GetProperties do OLE DB, exceto que DB_S_ERRORSOCCURRED e DB_E_ERRORSOCCURED não podem ser gerados.
Comentários
ISSCommandWithParameters::GetParameterProperties se comporta consistentemente em relação a GetParameterInfo. Se ISSCommandWithParameters::SetParameterProperties ou SetParameterInfo não tiverem sido chamados ou tiverem sido chamados com cParams iguais a zero, GetParameterInfo deriva informações de parâmetro e retorna isso. Se ISSCommandWithParameters::SetParameterProperties ou SetParameterInfo tiverem sido chamados para pelo menos um parâmetro, ISSCommandWithParameters::GetParameterProperties retornará propriedades somente para esses parâmetros para os quais ISSCommandWithParameters::SetParameterProperties foi chamado. Se ISSCommandWithParameters::SetParameterProperties for chamado após ISSCommandWithParameters::GetParameterProperties ou GetParameterInfo, chamadas subsequentes para ISSCommandWithParameters::GetParameterProperties retornarão os valores substituídos para esses parâmetros para os quais ISSCommandWithParameters::SetParameterProperties foi chamado.
A estrutura SSPARAMPROPS é definida da seguinte maneira:
struct SSPARAMPROPS {
DBORDINAL iOrdinal;
ULONG cPropertySets;
DBPROPSET *rgPropertySets;
};
Membro | DESCRIÇÃO |
---|---|
iOrdinal | O ordinal do parâmetro passado. |
cPropertySets | O número de estruturas DBPROPSET em rgPropertySets. |
rgPropertySets | Um ponteiro para a memória no qual uma matriz de estruturas DBPROPSET deve ser retornada. |