[fpc-pascal] Decimal Precision Issue with Firebird

Michael Van Canneyt michael at freepascal.org
Mon Jan 26 09:13:05 CET 2009

On Sun, 25 Jan 2009, Andrew Hall wrote:

> We are having problems reading decimal/numeric column types with TSQLQuery.
> It appears if the precision of a decimal/numeric is more than 4 (for instance,
> DECIMAL(12,8) or DECIMAL(18,10) or DECIMAL(10,6) TSQLQuery raises an exception
> on reading - EDatabaseError : Unknown field type : COLUMN_NAME. However, using
> the established (informal) money-types for Firebird - DECIMAL(18,4) or
> DECIMAL(10,4) are OK, and multiple other variations are OK if precision is 4
> or less.
> Questions:
> 1) is this a bug, or a known "feature" or limitation of the FPC Firebird
> library?

It is a limitation.

> 2) is there a workaround?  We require a decimal with at least 9 decimal places
> precision (?perhaps DOUBLE PRECISION)

I think double precision is your only option at this point.

> 3) the issue with negative numerics with TSQLQuery being treated as unsigned,
> described in the bug list as fixed in FPC 231 - has this fix been moved to FPC
> 224?

I think it has, but Joost should confirm that.


More information about the fpc-pascal mailing list