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
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
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 Driver do OLE DB para 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 suporta chamar ICommandWithParameters::GetParameterInfo para qualquer SQL Server UPDATE ou DELETE instrução contendo uma cláusula FROM; para qualquer instrução SQL dependendo 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 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 Driver do OLE DB para 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 Driver do OLE DB para 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 Driver do OLE DB para SQL Server implementa uma nova interface ISSCommandWithParameters.