|
Hola :
En realidad pensé igual en su momento, de hecho llegue a tomar una unit FMTBCD mas reciente, incorporarla, recompilar todas las dependencias y probar, pero eso fue peor. Aunque compiló, luego tuve otro tipo de errores muy raros y preferí revertir todos los cambios que hice.
Sin Embargo, encontré la solución al problema. Es un problema del DELPHI, en efecto, pero también es un problema de conceptos matemáticos y como se aplican en este componente:
Les explico:
Los tipos de dato en la BD SQL SERVER son DECIMAL (18,4).
Al traer los campos en los query y cds, etc. Por defecto las propiedades del control estaban mal. Debo mencionar las 3 propiedades mas importantes:
DisplayWidth
Precision
Size
Los valores equivocados en estas propiedades, que fueron colocados automáticamente, estaban haciendo que obtuviera errores de "number out of range" o que al tomar la informacion de la BD el numero que aparecía en los controles estaba "cortado".
La solución, para este tipo de dato fue tomar los valores de la siguiente manera:
DisplayWidth : 23
Precision : 22
Size : 4
Las razones: DisplayWidth es la cantidad de "campos" visibles en un grid, caja de texto, etc. Se necesita un campo adicional para la COMA. en este caso el tipo de dato NUMERIC (18,4) + 1 = 23 posiciones.
Precision: Este campo se refiere al numero de CIFRAS SIGNIFICATIVAS. en este caso requiero que sean 18 + 4 = 22 !!!!!!
Size : La cantidad de DECIMALES presentes en el dato, es decir 4 !!!!!
Con esto, desaparecieron todos los problemas !!!!
Espero que esto le pueda servir a alguien más, ya que no se imaginan la cantidad de tiempo y de investigación que me llevó este problema.
Saludos !
|