ISSCommandWithParameters::SetParameterProperties (OLE DB)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)
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 do código de retorno
O método ISSCommandWithParameters::SetParameterProperties retorna os mesmos códigos de erro do método principal ICommandProperties::SetProperties do OLE DB.
Comentários
A definição das propriedades de parâmetro com esse método é permitida para cada parâmetro por ordinal, ou com uma única chamada a ISSCommandWithParameters::SetParameterProperties, depois que SSPARAMPROPS tiver sido criado com base na matriz de propriedades.
O método SetParameterInfo precisa 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.
A chamada a ISSCommandWithParameters::SetParameterProperties para especificar as propriedades de 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 o 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 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 a ISSCommandWithParameters::SetParameterProperties contiver alguns parâmetros com as informações definidas e outros sem informações definidas, as propriedades dwStatus no DBPROPSET do conjunto de propriedades SSPARAMPROPS serão retornadas com DBSTATUS_NOTSET.
A estrutura SSPARAMPROPS é definida da seguinte maneira:
struct SSPARAMPROPS {
DBORDINAL iOrdinal;
ULONG cPropertySets;
DBPROPSET *rgPropertySets;
};
Aprimoramentos no mecanismo de banco de dados desde o SQL Server 2012 (11.x) 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. |