Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Define as propriedades de parâmetro por parâmetro por ordinal ou define 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 OLE DB ICommandProperties::SetProperties principal.
Observações
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. A chamada SetParameterProperties(0, NULL) limpa todas as propriedades de parâmetro especificadas, enquanto a chamada SetParameterInfo(0,NULL,NULL) limpa todas as informações de parâmetro, incluindo quaisquer propriedades que possam estar 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 deve ser percorrida para detectar a qual parâmetro o DB_E_ERRORSOCCURRED ou DB_S_ERRORSOCCURRED se refere.
Se ISSCommandWithParameters::SetParameterProperties for chamado para especificar as propriedades dos 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 chamar primeiro o método SetParameterInfo. As informações do parâmetro devem ser definidas antes de definir as propriedades do parâmetro.
Se a chamada para ISSCommandWithParameters::SetParameterProperties conter alguns parâmetros em que as informações de parâmetro foram definidas e alguns parâmetros em que as informações do 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, consulte a 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. |