Cita:
Empezado por InterBase Data Definition Guide.pdf
When you create a domain or column with a NUMERIC or DECIMAL datatype, InterBase
determines which datatype to use for internal storage based on the precision and scale
that you specify and the dialect of the database.
NUMERIC and DECIMAL datatypes that are declared without either precision or scale are
stored as INTEGER.
Defined with precision, with or without scale, they are stored as SMALLINT, INTEGER,
DOUBLE PRECISION or 64-bit integer. Storage type depends on both the precision and the
dialect of the database. Table 4.2 describes these relationships.
Código:
Precision Dialect 1 Dialect 3
1 to 4 SMALLINT for NUMERIC datatypes SMALLINT
INTEGER for DECIMAL datatypes
5 to 9 INTEGER INTEGER
10 to 18 DOUBLE PRECISION INT64
NUMERIC and DECIMAL datatypes with precision greater than 10 always produce an error
when you create a dialect 2 database. This forces you to examine each instance during a
migration. For more about migrating exact numerics, see “Migrating databases with
NUMERIC and DECIMAL datatypes” on page 67.
|
Al guardarse en dialecto 1 con 15 de precisión, estás usando el double precision, no apto para valores monetarios.
jhonny: no he hecho pruebas, pero quizás el problema continúe por no realizar una correcta migración de datos. Ya digo, en tu caso particular no tengo ni idea.
Lamentablemente, la ignorancia es así, criticamos por desconocimiento y arrogantemente.
PD: Ese libro es gratuito y descargable desde
www.ibphoenix.com
Saludos