ISSCommandWithParameters::SetParameterProperties (OLE DB)
Define as propriedades de cada parâmetro por ordinal ou define as propriedades de parâmetro em massa especificando uma matriz de estruturas SSPARAMPROPS.
Sintaxe
HRESULT SetParameterProperties(
DB_UPARAMS cParams,
SSPARAMPROPS rgParamProperties[]);
Argumentos
cParams[in]
O número de estruturas SSPARAMPROPS na matriz rgParamProperties. Se esse número for zero, ISSCommandWithParameters::SetParameterProperties
excluirá todas as propriedades que podem ter sido especificadas para quaisquer parâmetros no comando .
rgParamProperties[in]
Uma matriz de estruturas SSPARAMPROPS a ser definida.
Valores do código de retorno
O ISSCommandWithParameters::SetParameterProperties
método retorna os mesmos códigos de erro que o método principal ICommandProperties::SetProperties do OLE DB.
Comentários
A definição de propriedades de parâmetro com esse método é permitida por parâmetro por ordinal ou com uma única ISSCommandWithParameters::SetParameterProperties
chamada depois que o SSPARAMPROPS foi criado a partir da matriz de propriedades.
O método SetParameterInfo deve ser chamado antes de chamar o ISSCommandWithParameters::SetParameterProperties
método . Se você chamar SetParameterProperties(0, NULL)
limpará todas as propriedades de parâmetro especificadas, ao passo que se chamar SetParameterInfo(0,NULL,NULL)
, limpará todas as informações do parâmetro incluindo as propriedades que podem ser associadas a um parâmetro.
Chamar ISSCommandWithParameters::SetParameterProperties
para especificar propriedades para um parâmetro que não é do tipo DBTYPE_XML ou DBTYPE_UDT retorna DB_E_ERRORSOCCURRED ou DB_S_ERRORSOCCURRED e marca o campo dwStatus de todos os DBPROPs contidos em SSPARAMPROPS para esse parâmetro com DBPROPSTATUS_NOTSET. A matriz DBPROP de cada DBPROPSET contido em SSPARAMPROPS deveria ser atravessada para detectar o parâmetro ao qual DB_E_ERRORSOCCURRED ou DB_S_ERRORSOCCURRED se refere.
Se ISSCommandWithParameters::SetParameterProperties
for chamado para especificar as propriedades de parâmetros cujas informações de parâmetro ainda não foram definidas com SetParameterInfo, o provedor retornará E_UNEXPECTED com a seguinte mensagem de erro:
O método SetParameterProperties não pode ser chamado para os parâmetros especificados sem primeiro chamar o método SetParameterInfo. As informações de parâmetro devem ser definidas antes da definição das propriedades de parâmetro.
Se a chamada para ISSCommandWithParameters::SetParameterProperties
contiver alguns parâmetros em que as informações de parâmetro foram definidas e alguns parâmetros em que as informações de parâmetro não foram definidas, as propriedades dwStatus no DBPROPSET do conjunto de propriedades SSPARAMPROPS retornarão com DBSTATUS_NOTSET.
A estrutura SSPARAMPROPS é definida da seguinte maneira:
struct SSPARAMPROPS {
DBORDINAL iOrdinal;
ULONG cPropertySets;
DBPROPSET *rgPropertySets;
};
Melhorias no mecanismo de banco de dados a partir do SQL Server 2012 permitem que ISSCommandWithParameters::SetParameterProperties obtenha descrições mais precisas dos resultados esperados. Esses resultados mais precisos podem ser diferentes dos valores retornados por ISSCommandWithParameters::SetParameterProperties em versões anteriores do SQL Server. Para obter mais informações, veja Descoberta de metadados.
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. |