Compartilhar via


ISSCommandWithParameters::SetParameterProperties (OLE DB)

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.

Consulte Também

ISSCommandWithParameters (OLE DB)