Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   SQL y coma decimal (https://www.clubdelphi.com/foros/showthread.php?t=62458)

mjjj 26-12-2008 14:19:01

SQL y coma decimal
 
Hola amigos, una consulta...

Utilizo Delphi 2006 y Firebird 2.0
Intento almacenar un registro en una base de dato utilizando este codigo.

Código Delphi [-]
ibsql1.close;
ibsql1.sql.clear;
ibsql1.sql.add('insert into inventario (id, precio) values (:id, :precio)')
ibsql1.parambyname('id').asstring:='001';
ibsql1.parambyname('precio').asstring:=currencyedit1.text;
ibsql1.execquery;

La tabla iventario esta definida como sigue:
id: varchar
precio: doubleprecision

El problema surge cuando intento almacenar un registro que el precio no es un numero entero sino por ejemplo: 123,456.

Lo que ocurre es que se me almacena un registro que en el campo precio tiene un valor de 123456... es como si la coma decimal desapareciera.

Porque ocurre esto??

Como lo soluciono??

Gracias

dec 26-12-2008 14:22:08

Hola,

Creo que en lugar de "asString" deberías usar algo como "asDouble" cuando preparas el valor del "parámetro precio". Ya digo que no estoy seguro, pero, pareciera que la coma se pierde al convertir el valor a "string", y por eso lo digo. :rolleyes:

marcoszorrilla 26-12-2008 15:10:15

El problema viene porque en SQL, los decimales los marca el punto y no la coma.

Tendrás que convertirlo a texto, y luego por ejemplo utilizar StringReplace, para sustituir la coma por el punto.

Si la ocasión lo merece puedes construirte una función que haga todo en uno y que compruebe también la integridad de los datos a convertir.

Un Saludo.

Kipow 26-12-2008 22:18:51

Lo que veo yo es que el valor CurrencyEdit1.Text, es el valor numerico con formato, proba con esto

Código Delphi [-]
ibsql1.parambyname('precio').AsFloat := CurrencyEdit1.Value;


La franja horaria es GMT +2. Ahora son las 07:29:08.

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