Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 poderiam ter sido especificadas para qualquer parâmetro no comando.rgParamProperties[in]
Uma matriz de estruturas SSPARAMPROPS a ser definida.
Valores de código de retorno
O método ISSCommandWithParameters::SetParameterProperties retorna os mesmos códigos de erro que o método principal OLE DB ICommandProperties::SetProperties.
Comentários
A definição das propriedades de parâmetro com esse método é feita para cada parâmetro por ordinal, ou com uma única chamada para ISSCommandWithParameters::SetParameterProperties depois que SSPARAMPROPS tiver sido criado a partir da matriz de propriedades.
O método SetParameterInfo deve ser chamado antes do método ISSCommandWithParameters::SetParameterProperties. 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 de um parâmetro que não seja do tipo DBTYPE_XML o DBTYPE_UDT retorna DB_E_ERRORSOCCURRED ou DB_S_ERRORSOCCURRED e marca o campo dwStatus de todos os DBPROPs contidos em SSPARAMPROPS para aquele 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 ainda não estiverem 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 com informações definidas e outros sem informações 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 mais descrições precisas dos resultados esperados. Esses resultados mais precisos podem diferir dos valores retornados por ISSCommandWithParameters::SetParameterProperties em versões anteriores do SQL Server. Para obter mais informações, consulte 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. |