FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error al grabar valores con FloarField o CurrencyField
Hola !!
Tengo un error grave y en realidad no he podido decifrar que es lo que sucede: En la base de datos en SQLSERVER tengo un campo tipo decimal(19,4) que se llama VALOR. Teniendo el ClientDataset en dos escenarios el programa toma ese campo VALOR como tipo FloatField, y en otros casos como CurrencyField. El problema que tengo en uno u otro caso es que al grabar valores, el valor que esta utilizando internamente tanto el que graba en la tabla no corresponde al valor digitado. Al digitar,por ejemplo, 9.29 el valor que trabaja internamentertanemte y graba en la tabla es 9.2899 .... O.o ... Estos calculos son para unos valores en donde los decimales son importantes pero no entiendo por que me esta haciendo este "redondeo" extraño. Si alguien tiene una idea de por qué sucede esto, se lo agradezco. |
#2
|
||||
|
||||
Si no me equivoco es porque aunque quieras grabar 9,29 el campo está definido como decimal(19,4) con lo cual la base de datos debe guardar 4 decimales. Y 9.2899 es lo que más se aproxima.
De todas maneras, te insto a que te documentes más acerca de guardar valores con coma flotante. Por otro lado, puedes cambiar el tipo de field en el ClientDataSet a tu gusto: si necesitas TFloatField o TCurrrencyField. Saludos!
__________________
Si no lo sabes, necesitas leerlo |
#3
|
|||
|
|||
Hola ! . Nope ! el problema no tiene que ver con la base de datos en si... es decir, al yo digitar 9.29 en la base de datos debería quedar 9.2900. En realidad este no es el problema que tengo puesto que haciendo debug puedo mirar lo que esta moviendo el programa ANTES de hacer post. Independientemente de si escojo FloatField o CurrencyField el problema persiste, así que me da igual escoger uno o el otro. He hecho varias pruebas, y puedo decir que en el evento validate del campo VALOR puedo mirar que valor trae el campo cuando se digita. En ese caso puedo ver que el valor digitado que me aparece es 9.29 y hasta ahi no hay problemas, pero cuando llego al evento before post puedo ver que el valor me cambia a 9.2899 y ahi en realidad lo unico que se pude concluir es que en el momento en que el programa asigna el valor al campo esta haciendo algo que no es para que cambie el valor 9.29 por 9.2899. Puede ser algún ti'po de bug ?? o algo que haya que configurar a los campos?... Si alguien sabe algo, lo agradezco !.
|
#4
|
|||
|
|||
Por cierto... esto no es un problema de SQLSERVER según todas las pruebas, en realidad es del DELPHI y me movieron el hilo aqui, si alguien sabe con quien hablar para que lo devuelvan a "Varios" se lo agradezco.
|
#5
|
||||
|
||||
El problema puede estar en la definición de la variable local en que tipo la definas, yo tenia algo parecido, estaba trabajando con el tipo Double y me pase al tipo Extended, a la hora de guardar los datos lo hacia diferente, ya no me pasa.
Un saludo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error al grabar un campo blob desde stream | fjcg02 | SQL | 2 | 25-11-2009 22:02:49 |
Insertar valores...Error | tebre | Conexión con bases de datos | 10 | 18-02-2009 19:34:40 |
.mdb-ADO, forma de grabar los cambios. Refresh me da error | Wonni | Conexión con bases de datos | 3 | 19-06-2007 03:22:27 |
Error al Grabar informacion | The_figo | MySQL | 0 | 30-10-2006 17:53:53 |
Error al grabar | silviodp | Conexión con bases de datos | 5 | 31-05-2004 17:52:34 |
|