Provedor MSDASQL manipula incorretamente SQL_NUMERIC_STRUCT negativamente Scaled valores

Traduções deste artigo Traduções deste artigo
ID do artigo: 274604 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Sintomas

Quando você lê valores numéricos negativamente em escala de um driver de ODBC usando o provedor OLE DB para ODBC (MSDASQL) com a enumeração de cursor do ActiveX Data Objects (ADO) adUseClient , os valores que são retornados são truncados.

Resolução

Para resolver esse problema, obtenha o service pack mais recente para o Microsoft MDAC 2.5. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
293312INFO: Como obter o último MDAC 2.5 Service Pack
A versão em inglês dessa correção apresenta os atributos de arquivo (ou posteriores) listados na tabela a seguir. As datas e horas desses arquivos são listadas na acordo hora universal coordenada (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 na ferramenta Data e hora no painel de controle.
   Date         Time   Version      Size     File Name
   --------------------------------------------------------------------
   31-Jan-2001  18:20  2.53.6131.0  303,376  Msdasql.dll
   31-Jan-2001  18:18  2.53.6131.0   16,384  Msdasqlr.dll
   31-Jan-2001  18:20  2.53.6131.0   78,096  Msdatl2.dll
   31-Jan-2001  18:20  2.53.6131.0   53,520  Msdatt.dll
   28-Feb-2001  18:00  1.10.101.0   484,408  Q277033_w2k_sp3_x86_en.exe
				

Como Contornar

Para contornar esse problema, use a enumeração adUseServer para a propriedade ADO CursorLocation em vez de adUseClient .

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no começo deste artigo. Esse problema foi corrigido primeiro no Microsoft MDAC 2.5 Service Pack 3.

Mais Informações

Se você abrir um objeto ADO Recordset contra qualquer driver de ODBC, o provedor OLE DB para ODBC (MSDASQL) é usado para fornecer ODBC aos serviços de conversão de OLE. Se o conjunto de resultados que é solicitado contém um campo numérico e se você usar a enumeração adUseClient da propriedade CursorLocation , ADO tenta buscar o valor do campo numérico em uma estrutura DB_NUMERIC OLEDB.

Se o driver ODBC subjacente relata que está compatível com o ODBC 3.0, MSDASQL tentará vincular a valores SQL_NUMERIC_STRUCT diretamente em vez de vinculação com uma seqüência de caracteres. Se SQL_NUMERIC_STRUCT que retorna o driver tem uma escala negativa e se o cliente do provedor MSDASQL solicita um valor DB_NUMERIC, MSDASQL primeiro converte o SQL_NUMERIC_STRUCT para um valor DB_VARNUMERIC e, em seguida, converte em um valor DB_NUMERIC. A conversão final para um valor DB_NUMERIC será processada incorretamente se a escala é negativo, o que resulta em um valor truncado.

Propriedades

ID do artigo: 274604 - Última revisão: segunda-feira, 24 de fevereiro de 2014 - Revisão: 3.1
A informação contida neste artigo aplica-se a:
  • Microsoft Data Access Components 1.5
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.1 Service Pack 2
  • Microsoft Data Access Components 2.5
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbmdac250sp3fix kbbug kbfix KB274604 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: 274604

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