Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-07-2010
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
Unhappy Driver dbExpress para db2 falla al leer valores BCD de campos DECIMAL

Hola a todos,

Tengo el siguiente problema.

Mi aplicación maneja valores de 18 dígitos de precisión con 2 decimales (definidos como campos DECIMAL(18,2)).

El driver dbExpress de Delphi 2007 para DB2 graba correctamente en la Base de Datos estos valores (lo verifiqué usando el centro de control de DB2).

Sin embargo, cuando los lee, ignora los dígitos decimales. Por ejemplo, digamos que grabamos el valor 10.08 ; cuando lo lee, lo lee como si fuera 1008.

Por lo dicho antes, es claro que el problema no es de DB2. Ahí le llega bien el 10.08. Tampoco son las rutinas de conversión ya que con Firebird, funciona bien.

Hice depuración y el problema es cuando obtiene el formato nativo BCD.

Ese formato es un registro TBCD el cual tiene 3 campos : Precision, que indica los dígitos significativos; SignSpecialPlaces, que sirve para el signo y la cantidad de decimales; y Fraction, un arreglo de bytes con los valores en sí

Por alguna razón, el campo Fraction llega escalado. En esas circunstancias, dado que no tengo forma de saber cuando hay, o no hay, realmente decimales, no puedo arreglar el problema usando mis propias rutinas de conversión. Así pués no se me ocurre una solución distinta a conseguir otro driver.

Como referencia, estoy con Delphi 2007, el driver dbExpress es dbxdb230.dll, el cliente db2 es db2cli.dll y la versión de db2 es la 9.7.

En cierta forma, ya tengo un driver; es un driver ODBC que viene con DB2; pero, como se usa un driver ODBC en dbExpress ?. No he consguído documentación y en el fondo es el mismo problema que mencioné, para el caso Firebird, en esta otra nota :

http://www.clubdelphi.com/foros/showthread.php?t=68936

Alguién puede orientarme.? Agradezco cualquier ayuda
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Falla en dbExpress de Delphi 2007 con Firebird para campos BCD rolandoj Conexión con bases de datos 4 26-03-2010 16:08:58
Driver PostgreSQL para dbExpress gatosoft PostgreSQL 2 09-01-2010 03:36:20
Driver dbExpress para DB2 jcporras DB2 1 02-10-2008 14:25:52
Que driver recomiendan para dbExpress con Oracle10g ? rolandoj Conexión con bases de datos 0 23-05-2008 17:58:32
D2006 + IB 7.5 / Campos DECIMAL(5,2) Valores absurdos gluglu Conexión con bases de datos 0 19-01-2006 14:56:05


La franja horaria es GMT +2. Ahora son las 16:04:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi