Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   problema sqlserver desde bde con tipos decimal (https://www.clubdelphi.com/foros/showthread.php?t=4143)

borbi 03-10-2003 14:06:20

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?

Lepe 05-10-2003 14:07:56

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é :confused:


Saluditos

borbi 06-10-2003 09:55:14

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,

Lepe 06-10-2003 11:05:14

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 !!

borbi 22-10-2003 10:07:18

Solucionado:

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

Gracias a tod@s,


La franja horaria es GMT +2. Ahora son las 05:07:21.

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