DetailPage-MSS-KB

Base de Dados de Conhecimento

Artigo: 957387 - Última revisão: segunda-feira, 17 de Novembro de 2008 - Revisão: 2.0

Disponível transferência de hotfix
Ver e solicitar transferências de hotfix
 
 
N.º de bugs: 50003391 (correcção SQL)

Nesta página

Sintomas

Pode utilizar o controlador de ODBC de cliente nativo de SQL no Microsoft SQL Server 2008. Se chamar a função SQLExecute para executar uma instrução preparada, não podem ser devolvidos registos. No entanto, se utilizar o controlador de ODBC de cliente nativo de SQL no SQL Server 2005 para chamar a função SQLExecute , são devolvidos registos.

Causa

Este problema pode ocorrer devido a um erro no SQL Native Client controlador de ODBC do SQL Server 2008. Poderá ocorrer se chamar a função SQLBindParameter antes de cada função SQLExecute . Consulte a secção "Mais informação" para obter mais informações.

Resolução

Informações sobre a actualização cumulativa

A correcção deste problema primeiro foi disponibilizada em 1 de actualização cumulativa. Para obter mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
956717  (http://support.microsoft.com/kb/956717/ ) Pacote de actualização cumulativa 1 para o SQL Server 2008
Nota Uma vez que as compilações são cumulativas, cada nova versão de correcção contém todas as correcções e todas as correcções de segurança incluídas com o SQL Server 2008 anterior corrigir lançamento. A Microsoft recomenda que considerar a aplicação a versão de correcção mais recente que contenha esta correcção. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
956909  (http://support.microsoft.com/kb/956909/ ) O SQL Server 2008 cria disponibilizadas após o lançamento do SQL Server 2008

Informações sobre a correcção

Está disponível a partir da Microsoft uma correcção suportada. No entanto, esta correcção destina-se a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham este problema específico. Esta correcção poderá submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pela próxima actualização de software que contenha esta correcção.

Se a correcção está disponível para transferência, existe uma secção "denominada transferência de correcção disponível" na parte superior deste artigo da base de dados de conhecimento. Se esta secção não for apresentado, contacte o serviço de cliente do Microsoft e suporte para obter a correcção.

Nota Se ocorram problemas adicionais ou se for necessária qualquer resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos normais do suporte serão aplicados a problemas adicionais e questões de suporte que não se enquadrem esta correcção específica. Para obter uma lista completa dos números de telefone do suporte de cliente do Microsoft ou para criar um pedido serviço separado, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)
Nota O formulário "Transferência de correcção disponível" apresenta os idiomas para a qual a correcção está disponível. Se não vir o idioma, é porque uma correcção não está disponível para esse idioma.

Informações do ficheiro

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas na hora universal coordenada (UTC). Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário no item data e hora no painel de controlo.
SQL Server 2008, edições de 32 bits
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
Kfsqlncli.dll2007.100.1755.016,92006-Set-200815: 23x 86
Sqlncli10.dll2007.100.1755.02,459,67206-Set-200815: 40x 86
SQL Server 2008, edições de 64 bits
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
Kfsqlncli.dll2007.100.1755.017,43206-Set-200820: 57x 64
Sqlncli10.dll2007.100.1755.03,158,55206-Set-200821: 12x 64

Como contornar

Para contornar este problema, chame a função SQLBindParameter uma vez. Quando chama a função SQLBindParameter , certifique-se que as seguintes condições são verdadeiras:
  • O argumento ColumnSize é com tamanho suficiente.
  • O argumento Strlen_or_IndPtr é definido como SQL_NTS.
Depois de efectuada a primeira chamada à função SQLExecute , o novo valor de cadeia pode ser copiado para o argumento ParameterValuePtr .

Ponto Da Situação

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

Mais Informação

Este problema ocorre com a chamada SQLBindParameter . Se a memória intermédia anterior corresponder o tamanho do comprimento do valor seguinte, não é emitido um re-prepare da instrução. No exemplo seguinte de um rastreio ODBC, da memória intermédia o parâmetro inicial corresponde o comprimento do seguinte novo parâmetro.

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

Referências

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

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áticaTraduçã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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 957387  (http://support.microsoft.com/kb/957387/en-us/ )
Partilhar
Opções de suporte adicionais
Fóruns de Suporte da Comunidade Microsoft
Contacte-nos directamente
Encontre um parceiro certificado Microsoft
Loja Microsoft