Você está offline; aguardando reconexão

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

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
Bug #: 50003391 (Hotfix do SQL)
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: 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
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
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): Para obter mais informações sobre a função SQLBindParameter , visite o seguinte site da MSDN:

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 957387 - Última Revisão: 11/17/2008 16:54:49 - Revisão: 2.0

Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Standard Edition for Small Business

  • kbmt kbautohotfix kbexpertiseinter kbfix kbbug kbqfe kbhotfixserver KB957387 KbMtpt
Comentários