CORRECÇÃO: Nenhum registro pode ser retornado quando você chamar a função SQLExecute para executar uma instrução preparada e você usar o driver ODBC cliente nativo do SQL no SQL Server 2008

Traduções deste artigo Traduções deste artigo
ID do artigo: 957387 - Exibir os produtos aos quais esse artigo se aplica.
Bug #: 50003391 (Hotfix do SQL)
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Você pode usar o driver ODBC cliente nativo do SQL do Microsoft SQL Server 2008. Se você chamar a função SQLExecute para executar uma instrução preparada, nenhum registro pode ser retornado. No entanto, se você usar o driver ODBC cliente nativo do SQL no SQL Server 2005 para chamar a função SQLExecute , registros serão retornados.

Causa

Esse problema pode ocorrer devido a um erro no SQL Native Client Driver ODBC do SQL Server 2008. Isso pode ocorrer se você chamar a função SQLBindParameter antes de cada função SQLExecute . Consulte a seção "Mais informação" para obter mais informações.

Resolução

Informações da atualização cumulativa

A correção para esse problema foi lançada primeiro em atualização cumulativa 1. Para obter mais informações sobre como obter esse pacote de atualizações cumulativas para o SQL Server 2008, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
956717Pacote de atualizações cumulativas 1 para SQL Server 2008
Observação Como as compilações são cumulativas, cada novo lançamento de correções contém todos os hotfixes e todas as correções segurança que foram incluídas com o SQL Server 2008 anteriores corrigir lançamento. A Microsoft recomenda que você considere a aplicação a versão de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
956909O SQL Server 2008 compilações que lançadas foram após o lançamento SQL Server 2008 foi lançado

Informações sobre o hotfix

Um hotfix suportado está disponível no Microsoft. No entanto, esse hotfix destina-se a corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Esta correcção poderá submetida a testes adicionais. Portanto, se você não tiver sido gravemente afetado por esse problema, recomendamos que você aguarde a próxima atualização de software que contém esse hotfix.

Se o hotfix está disponível para download, há uma seção "Download de Hotfix disponível" na parte superior neste artigo da Base de dados de Conhecimento. Se esta seção não for exibida, contate o atendimento e suporte para obter o hotfix.

Observação Se ocorrerem problemas adicionais ou se qualquer solução de problemas é necessária, talvez você precise criar uma solicitação de serviço separada. Os custos normais de suporte serão aplicados a questões de suporte adicionais e problemas que não se qualificam para esse hotfix específico. Para obter uma lista completa de números de telefone de suporte e Atendimento Microsoft ou para criar uma solicitação de serviço separada, visite o seguinte site:
http://support.microsoft.com/contactus/?ws=support
Observação O formulário "Download de Hotfix disponível" exibe os idiomas para os quais o hotfix está disponível. Se você não vir seu idioma, é porque um hotfix não está disponível para esse idioma.

Informações sobre o arquivo

A versão em inglês deste hotfix tem atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas no horário de universal coordenado (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário no item Data e hora no painel de controle.
SQL Server 2008, edições de 32 bits
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataforma
Kfsqlncli.dll2007.100.1755.016,92006 De setembro de 200815: 23x 86
Sqlncli10.dll2007.100.1755.02,459,67206 De setembro de 200815: 40x 86
SQL Server 2008, edições de 64 bits
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataforma
Kfsqlncli.dll2007.100.1755.017,43206 De setembro de 200820: 57x 64
Sqlncli10.dll2007.100.1755.03,158,55206 De setembro de 200821: 12x 64

Como Contornar

Para contornar esse problema, chame a função SQLBindParameter uma vez. Quando você chamar a função SQLBindParameter , verifique se que as seguintes condições são verdadeiras:
  • O argumento ColumnSize é de tamanho suficiente.
  • O argumento Strlen_or_IndPtr é definido como SQL_NTS.
Depois que a primeira chamada à função SQLExecute é feita, o novo valor de seqüência de caracteres pode ser copiado para o argumento ParameterValuePtr .

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais Informações

Esse problema ocorre com a chamada SQLBindParameter . Se o buffer anterior corresponda ao tamanho do comprimento do valor seguinte, um re-prepare da instrução não é emitido. No exemplo a seguir de um rastreamento de ODBC, buffer o parâmetro inicial do coincide com o comprimento do novo parâmetro a seguir.

Parâmetro inicial:
EC8 b6c EXIT SQLBindParameter com código de retorno 0 (SQL_SUCCESS)
HSTMT 05A8E260
UWORD 1
DOIS GUMES 1 <SQL_PARAM_INPUT>
DOIS GUMES-8 <SQL_C_WCHAR>
DOIS GUMES-9 <SQL_WVARCHAR>
SQLULEN 7
SWORD 0
PTR 0X028C8A98
SQLLEN 65535
SQLLEN * 0X050506F8 (14)
Novo parâmetro a seguir:
EC8 b6c EXIT SQLBindParameter com código de retorno 0 (SQL_SUCCESS)
HSTMT 05A8E260
UWORD 1
DOIS GUMES 1 <SQL_PARAM_INPUT>
DOIS GUMES-8 <SQL_C_WCHAR>
DOIS GUMES-9 <SQL_WVARCHAR>
SQLULEN 14
SWORD 0
PTR 0X028C4F80
SQLLEN 65535
SQLLEN * 0X050506F8 (28)

Referências

Para obter mais informações sobre a função SQLExecute , visite o seguinte site da Web Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/ms713584(VS.85).aspx
Para obter mais informações sobre a função SQLBindParameter , visite o seguinte site da MSDN:
http://msdn.microsoft.com/en-us/library/ms710963(VS.85).aspx

Propriedades

ID do artigo: 957387 - Última revisão: segunda-feira, 17 de novembro de 2008 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Standard Edition for Small Business
Palavras-chave: 
kbmt kbautohotfix kbexpertiseinter kbfix kbbug kbqfe kbhotfixserver KB957387 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 957387

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com