Campos persistentes y tipos de datos float
Y te expongo el contexto de mi problema:
Estoy desarrollando una aplicación Delphi/Firebird para registrar pagos. Me conecto con el controlador nativo del BDE para bases de datos Interbase y utilizo Dialect 2.
Para los importes, tengo declarados campos en la bd como sigue:
ABOImporte DECIMAL(8,2)
Realizo la inserción desde Delphi utilizando queries actualizables y campos persistentes importados del query en tiempo de diseño con el editor de campos, por lo que mi código no lo escribo de la forma:
tabla.fieldbyname('campo').astipo:=valor;
sino mas bien
campopersistente.astipo:=valor;
Entonces, el problema es que al generar los campos persistentes, Delphi toma cualquier dato de tipo numérico proveniente de la bd como TIntegerField; por tanto, cualquier flotante es convertido a entero y la parte fraccionaria se pierde. Probé con la sintaxis completa:
tabla.fieldbyname('campo').astipo:=valor;
Y obtengo el mismo resultado, enteros en lugar de flotantes.
¿Qué me sugieres a este respecto?
Estoy desarrollando una aplicación Delphi/Firebird para registrar pagos. Me conecto con el controlador nativo del BDE para bases de datos Interbase y utilizo Dialect 2.
Para los importes, tengo declarados campos en la bd como sigue:
ABOImporte DECIMAL(8,2)
Realizo la inserción desde Delphi utilizando queries actualizables y campos persistentes importados del query en tiempo de diseño con el editor de campos, por lo que mi código no lo escribo de la forma:
tabla.fieldbyname('campo').astipo:=valor;
sino mas bien
campopersistente.astipo:=valor;
Entonces, el problema es que al generar los campos persistentes, Delphi toma cualquier dato de tipo numérico proveniente de la bd como TIntegerField; por tanto, cualquier flotante es convertido a entero y la parte fraccionaria se pierde. Probé con la sintaxis completa:
tabla.fieldbyname('campo').astipo:=valor;
Y obtengo el mismo resultado, enteros en lugar de flotantes.
¿Qué me sugieres a este respecto?
Respuesta de asllamas
1