Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Base de dados SQL no Microsoft Fabric
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 Driver OLE DB para SQL Server 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 Driver OLE DB para SQL Server 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.
Observação
O fornecedor não suporta chamar ICommandWithParameters::GetParameterInfo para qualquer instrução SQL Server UPDATE ou DELETE 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, semelhante ou quantificado; ou consultas em que 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 Driver OLE DB para SQL Server suporta parâmetros de entrada em comandos de instruções SQL. Nos comandos de chamada de procedimento, o Driver OLE DB para SQL Server 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 Driver OLE DB para SQL Server deve ignorar o nome do parâmetro e usar apenas o ordinal especificado no rgParamOrdinals membro de 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 Driver OLE DB para SQL Server verifica o nome para garantir que é válido. O Driver OLE DB para SQL Server devolve um erro quando recebe um nome de parâmetro incorreto do consumidor.
Observação
Para expor o suporte para SQL Server XML e tipos definidos pelo utilizador (UDT), o Driver OLE DB para SQL Server implementa uma nova interface ISSCommandWithParities .