PDA

Ver la Versión Completa : TFMTBCDField number is out of range


cd.rafael
18-03-2013, 16:05:46
Cordial Saludo,

Tengo una Tabla en Oracle con un campo de Tipo Number(6, 0), en mi proyecto de Delphi, con DBExpress, agregué un TSQLQuery y un TClientDataSet y me agrega los campos que están en dicha tabla, y el dichoso campo lo agrega como un TFMTBCDField.

Se han probado valores de 4 cifras, pero cuando se ingresó un de 5 cifras sacó el error "Number is out of range" y la verdad no sé porqué se presenta, ya que ingreso el mismo valor por Base de Datos y no me genera ningún problema.

Las características del campo son:

DisplayWidth: 7
Precision: 6
Size: 0

Agradezco de antemano cualquier colaboración.

ozsWizzard
18-03-2013, 18:55:50
En principio, por lo que cuentas, no debería darte ningún problema. Yo tengo campos con la misma precisión y me deja guardar de 5 y 6 perfectamente.

Si bien es cierto que no estoy usando una base de datos Oracle, la precisión del campo es la misma. (Campo Numeric(6, 0) de una base de datos Sql Server)

No se me ocurre que puede ser, pero lo mismo si pruebas otra vez borrando el campo y volviéndolo a añadir (aunque tiene pinta de que esto lo has hecho muchas veces...), pero ya te digo, a mí el tipo TFMTBCDField me funciona perfectamente.

Al González
18-03-2013, 19:04:48
Supongo que esos campos "Number" son como los Numeric de Firebird. Es bastante raro usar un tipo de campo diseñado para manejar fracciones (como Decimal o Numeric) para guardar en él números enteros solamente. ¿Por qué no usas mejor un campo Integer?

Saludos. :)

cd.rafael
18-03-2013, 22:29:26
Cordial saludo,

Ojala alguien pueda explicarme qué es lo que pasa.

La solución fue eliminar el ClientDataSet y el DataSource y volverlos a crear, algo que no quería porque tenía demasiados controles enlazados y pues... miren cuanto tiempo me demoré... Pero con eso se arregló. Las mismas propiedades, etc, etc. Porqué pasa eso???

Gracias a todos.

ozsWizzard
20-03-2013, 09:54:32
Si usas campos persistentes, puede ser que algún campo tenga algo raro. O alguna propiedad del DataSet esté incorrecta. Puede ser que te centraras en ese campo y fuera otro, pueden ser muchas cosas...

Por otra parte, Al, si no recuerdo mal y hasta las versiones que yo trabajé con oracle, el integer como tipo de datos para tablas no existe, tenía que ser number. Ya no tengo a mano para comprobarlo pero vamos...