Partilhar via


ISSCommandWithParameters::SetParameterProperties (OLE DB)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Base de dados SQL no Microsoft Fabric

Baixar driver OLE DB

Define as propriedades dos parâmetros por parâmetro por ordinal, ou define as propriedades dos parâmetros em massa especificando um array de estruturas SSPARAMPROPS.

Sintaxe

  
HRESULT SetParameterProperties(  
      DB_UPARAMS cParams,   
      SSPARAMPROPS rgParamProperties[]);  

Arguments

cParams[in]
O número de estruturas SSPARAMPROPS no array rgParamProperties . Se este número for zero, ISSCommandWithParameters::SetParameterProperties irá apagar todas as propriedades que possam ter sido especificadas para quaisquer parâmetros no comando.

rgParamProperties[em]
Um conjunto de estruturas SSPARAMPROPS a estabelecer.

Valores do código de retorno

O método ISSCommandWithParameters::SetParameterProperties devolve os mesmos códigos de erro do método principal OLE DB ICommandProperties::SetProperties .

Observações

Definir propriedades de parâmetros com este método é permitido por parâmetro por ordinal, ou com uma única chamada ISSCommandWithParameters::SetParameterProperties assim que o SSPARAMPROPS foi construído a partir do array de propriedades.

O método SetParameterInfo deve ser chamado antes de chamar o método ISSCommandWithParameters::SetParameterProperties . Chamar SetParameterProperties(0, NULL) limpa todas as propriedades dos parâmetros especificadas, enquanto chamar SetParameterInfo(0,NULL,NULL) limpa toda a informação dos parâmetros, incluindo quaisquer propriedades que possam estar associadas a um parâmetro.

Chamar ISSCommandWithParameters::SetParameterProperties para especificar propriedades para um parâmetro que não seja 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. O array DBPROP de cada DBPROPSET contido no SSPARAMPROPS deve ser percorrido para detetar a que parâmetro o DB_E_ERRORSOCCURRED ou DB_S_ERRORSOCCURRED se refere.

Se o ISSCommandWithParameters::SetParameterProperties for chamado para especificar as propriedades dos parâmetros cuja informação de parâmetro ainda não foi definida com o SetParameterInfo, o fornecedor devolve E_UNEXPECTED com a seguinte mensagem de erro:

O método SetParameterProperties não pode ser chamado para os parâmetros especificados sem antes chamar o método SetParameterInfo. A informação dos parâmetros deve ser definida antes de definir as propriedades dos parâmetros.

Se a chamada ao ISSCommandWithParameters::SetParameterProperties contiver alguns parâmetros onde a informação do parâmetro foi definida, e alguns parâmetros onde a informação do parâmetro não foi definida, as propriedades dwStatus no DBPROPSET do conjunto de propriedades SSPARAMPROPS retornarão com DBSTATUS_NOTSET.

A estrutura SSPARAMPROPS é definida da seguinte forma:

struct SSPARAMPROPS {

DBORDINAL iOrdinal;

ULONG cPropertySets;

DBPROPSET *rgPropertySets;

};

Melhorias no motor da base de dados a partir do SQL Server 2012 (11.x) permitem que o ISSCommandWithParameters::SetParameterProperties obtenha descrições mais precisas dos resultados esperados. Estes resultados mais precisos podem diferir dos valores devolvidos pelo ISSCommandWithParameters::SetParameterProperties em versões anteriores do SQL Server. Para mais informações, consulte Descoberta de Metadados.

Membro Description
iOrdinal O ordinal do parâmetro passado.
cPropertiesSets O número de estruturas DBPROPSET em rgPropertySets.
rgPropertySets Um apontador para a memória onde se pode devolver um array de estruturas DBPROPSET.

Ver também

ISSCommandWithParameters (OLE DB)