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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-10-2003
borbi borbi is offline
Registrado
 
Registrado: oct 2003
Posts: 4
Poder: 0
borbi Va por buen camino
problema sqlserver desde bde con tipos decimal

hola foreros:

Mi problema es el siguiente.- Tengo SqlServer 2000 Enterprise. Programo con Delphi 7 a traves del driver nativo de sqlserver del bde. Cuando intento introducir o cambiar un dato del tipo decimal (15,2) me hace extraños de redondeo.

Por ejemplo introduzco la cantidad 300,51 en un dbedit y al pasar al siguiente campo automaticamente me redondea a 300,50. Esto solo me pasa con ciertos decimales. Con ODBC esto no pasa, pero estoy obligado a seguir con el bde.

¿alguién sabría contestarme cual sería la solución?
Responder Con Cita
  #2  
Antiguo 05-10-2003
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Me suena a que está usando 3 decimales y despues en el campo en cuestion, usa 2.

¿En el Bde tienes puesto que use 2 decimales Configuration-->System-->Formats-->Number?

si no es eso, nu sé


Saluditos
Responder Con Cita
  #3  
Antiguo 06-10-2003
borbi borbi is offline
Registrado
 
Registrado: oct 2003
Posts: 4
Poder: 0
borbi Va por buen camino
Si, Formats/Number/Decimaldigits está configurado a 2 decimales, y que si quieres. Realmente debe de estar relacionado con la forma de trabajar el bde.

Si ese mismo campo lo convierto a 6 decimales, al introducir el valor "300,51" él me muestra "300,599999", lo cual significa que no está trabajando internamente con un decimal con la precisión especificada.

Imagino que alguien se habrá tropezado con este error, a ver si alguien me ilumina.

gracias,
Responder Con Cita
  #4  
Antiguo 06-10-2003
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Hola de nuevo.

Hasta donde yo sé un tipo float SIEMPRE tiene 15 decimales. Pero si en el Field le pones "Precision := 2" y por ejemplo, en Display Formats le pones #,##0.00 no deberias tener problemas, he hecho la prueba, y al introducir 0.005, al salir, si me lo pone como 0.01, lógico porque introduzco un decimal más de la cuenta; sin embargo al poner 0.01, queda como 0.01 (no ejecuta redondeo alguno)

Fijate a ver si el redondeo te lo hace con los decimales menores que 5 o con decimales impares....

Suerte !!
Responder Con Cita
  #5  
Antiguo 22-10-2003
borbi borbi is offline
Registrado
 
Registrado: oct 2003
Posts: 4
Poder: 0
borbi Va por buen camino
Solucionado:

Tras muchas vueltas, este problema viene debido a la propiedad "ENABLE BCD" del BDE, hay que activarlo a TRUE.

Gracias a tod@s,
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 23:40:45.


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