Partilhar via


ISSCommandWithParameters::SetParameterProperties no SQL Server Native Client (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)

Importante

O SQL Server Native Client (geralmente abreviado como SNAC) foi removido do SQL Server 2022 (16.x) e do SSMS (SQL Server Management Studio) 19. O provedor OLE DB do SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o Provedor OLE DB herdado da Microsoft para o SQL Server (SQLOLEDB) não são recomendados para um novo desenvolvimento. Alterne para o novo Driver do Microsoft OLE DB para SQL Server (MSOLEDBSQL) no futuro.

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.

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 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)