Fornecedor MSDASQL processa incorrectamente SQL_NUMERIC_STRUCT negativamente dimensionamento valores

Traduções de Artigos Traduções de Artigos
Artigo: 274604 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Sintomas

Quando ler a escala de valores numéricos de um controlador ODBC utilizando o fornecedor de OLE DB para ODBC (MSDASQL) com a enumeração do cursor de adUseClient ActiveX Data Objects (ADO), os valores que são devolvidos são truncados.

Resolução

Para resolver este problema, obtenha o service pack mais recente do Microsoft MDAC 2.5. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
293312INFO: Como obter o mais recente MDAC 2.5 Service Pack
A versão inglesa desta correcção tem os atributos de ficheiro (ou posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas no formato de universal hora (UTC) coordenada Coordinated. 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 na ferramenta Data e hora no painel de controlo.
   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 este problema, utilizam a enumeração adUseServer para a propriedade ADO CursorLocation em vez de adUseClient .

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no início deste artigo. Este problema foi corrigido pela primeira vez no MDAC 2.5 Service Pack 3.

Mais Informação

Se abrir um objecto Recordset do ADO contra qualquer controlador ODBC, o fornecedor de OLE DB para ODBC (MSDASQL) é utilizado para fornecer ODBC aos serviços de tradução de OLE DB. Se o conjunto de resultados é pedido contém um campo numérico e se utiliza a enumeração adUseClient da propriedade CursorLocation , o ADO tenta obter o valor do campo numérico para uma estrutura DB_NUMERIC OLEDB.

Se o controlador ODBC subjacente comunica que é compatível com ODBC 3.0, MSDASQL tenta ligar a valores SQL_NUMERIC_STRUCT directamente em vez de ligar a uma cadeia de caracteres. Se SQL_NUMERIC_STRUCT que o controlador devolve tem uma escala negativa, e se o cliente do fornecedor MSDASQL pede um valor DB_NUMERIC, MSDASQL primeiro converte a SQL_NUMERIC_STRUCT para um valor DB_VARNUMERIC e, em seguida, converte um valor DB_NUMERIC. A conversão para um valor DB_NUMERIC final é processada incorrectamente se a escala for negativo, o que resulta num valor truncado.

Propriedades

Artigo: 274604 - Última revisão: 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 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: 274604

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