Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Banco de dados SQL no Microsoft Fabric
Os parâmetros são marcados no texto do comando com o caractere de ponto de interrogação. Por exemplo, a seguinte instrução SQL é marcada para um único parâmetro de entrada:
{call SalesByCategory('Produce', ?)}
Para melhorar o desempenho reduzindo o tráfego de rede, o OLE DB Driver for SQL Server não obtém automaticamente as informações de parâmetro, a menos que ICommandWithParameters::GetParameterInfo ou ICommandPrepare::Prepare seja chamado antes da execução de um comando. Isso significa que o Driver do OLE DB para SQL Server não faz automaticamente o seguinte:
Verifique a exatidão do tipo de dados especificado com ICommandWithParameters::SetParameterInfo.
Mapeie do DBTYPE especificado nas informações de associação do acessador para o tipo de dados correto do SQL Server do parâmetro.
Os aplicativos receberão erros possíveis ou perda de precisão com um desses métodos, se especificarem tipos de dados não compatíveis com o tipo de dados do SQL Server do parâmetro.
Para garantir que isso não aconteça, o aplicativo deve:
Garantir que pwszDataSourceType corresponda aos tipos de dados do SQL Server do parâmetro em caso de hard-coding de ICommandWithParameters::SetParameterInfo.
Garantir que o valor DBTYPE associado ao parâmetro seja do mesmo tipo do tipo de dados do SQL Server do parâmetro em caso de hard-coding de um acessador.
Codifique o aplicativo para chamar ICommandWithParameters::GetParameterInfo de forma que o provedor possa obter os tipos de dados do SQL Server dos parâmetros dinamicamente. Observe que isso causa uma viagem de ida e volta na rede adicional até o servidor.
Observação
O provedor não dá suporte à chamada a ICommandWithParameters::GetParameterInfo em nenhuma instrução UPDATE ou DELETE do SQL Server que contenha uma cláusula FROM; em qualquer instrução SQL que dependa de uma subconsulta que contenha parâmetros; em instruções SQL que contenham marcadores de parâmetro em expressões de uma comparação, semelhança ou predicado quantificado; ou em consultas nas quais um dos parâmetros é um parâmetro de uma função. Ao processar um lote de instruções SQL, o provedor também não dá suporte à chamada a ICommandWithParameters::GetParameterInfo em marcadores de parâmetro nas instruções após a primeira instrução no lote. Não são permitidos comentários (/* */) no comando Transact-SQL.
O Driver do OLE DB para SQL Server é compatível com parâmetros de entrada em comandos de instrução SQL. Nos comandos de chamada de procedimento, o Driver do OLE DB para SQL Server é compatível com parâmetros de entrada, de saída e de entrada/saída. Os valores de parâmetro de saída são retornados para o aplicativo na execução (apenas se não houver nenhum conjunto de linhas retornado) ou quando todos os conjuntos de linhas retornados são esgotados pelo aplicativo. Para garantir a validade dos valores retornados, use IMultipleResults para forçar o consumo do conjunto de linhas.
Os nomes dos parâmetros de procedimento armazenado não precisam ser especificados em uma estrutura DBPARAMBINDINFO. Use NULL para o valor do membro pwszName para indicar que o OLE DB Driver for SQL Server deve ignorar o nome do parâmetro e usar apenas o ordinal especificado no membro rgParamOrdinals de ICommandWithParameters::SetParameterInfo. Caso o texto do comando contenha parâmetros nomeados e sem-nome, todos os parâmetros sem-nome devem ser especificados antes de qualquer parâmetro nomeado.
Caso o nome de um parâmetro de procedimento armazenado seja especificado, o OLE DB Driver for SQL Server verificará o nome para garantir sua validade. O Driver do OLE DB para SQL Server retorna um erro ao receber um nome de parâmetro incorreto do consumidor.
Observação
Para expor o suporte a XML e à UDT (tipos definidos pelo usuário) do SQL Server, o OLE DB Driver for SQL Server implementa uma nova interface ISSCommandWithParameters.