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 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 as estruturas não são mais necessárias. Antes de chamar IMalloc::Free para prgParamProperties, o consumidor também deve chamar VariantClear para a propriedade vValue de cada estrutura DBPROP, de forma a evitar um vazamento 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 se ocorrer um erro diferente de DB_E_ERRORSOCCURRED, o provedor não alocará nenhuma memória e assegurará que prgParamProperties seja um ponteiro nulo na saída.
Valores de código de retorno
O método GetParameterProperties retorna os mesmos códigos de erro que o método ICommandProperties::GetProperties principal do OLE DB, exceto se não for possível gerar DB_S_ERRORSOCCURRED e DB_E_ERRORSOCCURED.
Comentários
ISSCommandWithParameters::GetParameterProperties se comporta de forma consistente em relação a GetParameterInfo. Se ISSCommandWithParameters::SetParameterProperties ou SetParameterInfo não foram chamados ou foram chamados com cParams igual a zero, GetParameterInfo derivará informações de parâmetro e os retornará. Se ISSCommandWithParameters::SetParameterProperties ou SetParameterInfo tiverem sido chamados para pelo menos um parâmetro, ISSCommandWithParameters::GetParameterProperties retornará propriedades apenas para os parâmetros para os quais ISSCommandWithParameters::SetParameterProperties foi chamado. Se ISSCommandWithParameters::SetParameterProperties for chamado depois de ISSCommandWithParameters::GetParameterProperties ou GetParameterInfo, as chamadas subsequentes para ISSCommandWithParameters::GetParameterProperties retornarão os valores substituídos desses 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. |