Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Base de Dados SQL do Azure
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Os parâmetros são marcados no texto de comando com o carácter de ponto de interrogação. Por exemplo, a seguinte instrução SQL está marcada para um único parâmetro de entrada:
{call SalesByCategory('Produce', ?)}
Para melhorar o desempenho reduzindo o tráfego de rede, o fornecedor SQL Server Native Client OLE DB não deriva automaticamente informações de parâmetros a menos que seja chamado ICommandWithParameters::GetParameterInfo ou ICommandPrepare::P repare antes de executar um comando. Isto significa que o fornecedor de OLE DB do SQL Server Native Client não faz automaticamente:
Verifique a correção do tipo de dado especificado com ICommandWithParameters::SetParameterInfo.
Mapear do DBTYPE especificado na informação de ligação do acessor para o tipo de dado SQL Server correto para o parâmetro.
As aplicações receberão possíveis erros ou perda de precisão com qualquer um destes métodos se especificarem tipos de dados que não sejam compatíveis com o tipo de dados SQL Server do parâmetro.
Para garantir que isto não aconteça, a candidatura deve:
Certifique-se de que pwszDataSourceType corresponde ao tipo de dado SQL Server para o parâmetro se estiver a codificar ICommandWithParameters::SetParameterInfo.
Certifique-se de que o valor DBTYPE associado ao parâmetro é do mesmo tipo que o tipo de dado SQL Server para o parâmetro se for codificado diretamente um acessório.
Programe a aplicação para chamar ICommandWithParameters::GetParameterInfo para que o fornecedor possa obter os tipos de dados SQL Server dos parâmetros de forma dinâmica. Note que isto provoca uma viagem extra de ida e volta à rede até ao servidor.
Note
O fornecedor não suporta chamar ICommandWithParameters::GetParameterInfo para qualquer SQL Server UPDATE ou DELETE instrução contendo uma cláusula FROM; para qualquer instrução SQL dependente de uma subconsulta contendo parâmetros; para instruções SQL contendo marcadores de parâmetros em ambas as expressões de um predicado de comparação, como ou quantificado; ou consultas onde um dos parâmetros é um parâmetro de uma função. Ao processar um lote de instruções SQL, o fornecedor também não suporta chamar ICommandWithParameters::GetParameterInfo para marcadores de parâmetros nas instruções após a primeira instrução do lote. Comentários (/* */) não são permitidos no comando Transact-SQL.
O fornecedor OLE DB do SQL Server Native Client suporta parâmetros de entrada em comandos de instruções SQL. Nos comandos de chamada de procedimento, o fornecedor OLE DB do SQL Server Native Client suporta parâmetros de entrada, saída e entrada/saída. Os valores dos parâmetros de saída são devolvidos à aplicação na execução (apenas se não houver rowsets retornados) ou quando todos os rowsets devolvidos forem esgotados pela aplicação. Para garantir que os valores devolvidos são válidos, use IMultipleResults para forçar o consumo de rowsets.
Os nomes dos parâmetros dos procedimentos armazenados não precisam de ser especificados numa estrutura DBPARAMBINDINFO. Use NULL para o valor do membro pwszName para indicar que o fornecedor do SQL Server Native Client OLE DB deve ignorar o nome do parâmetro e usar apenas o ordinal especificado no rgParamOrdinals membro do ICommandWithParameters::SetParameterInfo. Se o texto do comando contiver parâmetros nomeados e não nomeados, todos os parâmetros não nomeados devem ser especificados antes de quaisquer parâmetros nomeados.
Se o nome de um parâmetro de procedimento armazenado for especificado, o fornecedor do OLE DB do SQL Server Native Client verifica o nome para garantir que é válido. O fornecedor do SQL Server Native Client OLE DB devolve um erro quando recebe um nome de parâmetro incorreto do consumidor.
Note
Para expor o suporte para SQL Server XML e tipos definidos pelo utilizador (UDT), o fornecedor do SQL Server Native Client OLE DB implementa uma nova interface ISSCommandWithParities.