Partilhar via


ISSCommandWithParameters::SetParameterProperties (OLE DB)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics

Baixar o driver do 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 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.

Consulte Também

ISSCommandWithParameters (OLE DB)