Page 1 of 1

EDatabaseError - expecting: Integer actual: FMTBcdField

Posted: Mon 19 Jan 2009 12:11
by valdir.marcos
Delphi 2007 - version 11.0.2902.10471
Oracle 10g XE
dbxoda.exe Trial version 4.40.0.13
Using DBEpress.

I have created a table with a Numeric(9) field since Integer in Oracle would create a Numeric(3Cool filed, but in My Field Editor it (Numeric(9)) always apear as FMTBcdField.

How can I use and set an OracleSession?

Observation: my Delphi does not find "OraClasses.pas" file and it cannot see "TOraSession" class even after I have set correctly the library path.

Thanks.

Posted: Mon 19 Jan 2009 13:14
by valdir.marcos
Is there a way to set EnableIntegers and Scale and Precision without using nor ODAC neither UniDAC?

Posted: Tue 20 Jan 2009 10:02
by Plash
You should add EnableBCD=False to the Params property of TSQLConnection.

Posted: Tue 20 Jan 2009 11:57
by valdir.marcos
In MS-SQL and Firebird, we use the Integer datatype for Primary/Foreign Keys allowing a big number up to 20 digits.
In Oracle, the Integer datatype means Numeric(38) which also solve our growing problem, but the EnableBCD=False strategy only permit Numeric(9) to work as Integer on Delphi 2007. A 9 digit number is not enough for our need.

Is there another way of Delphi 2007 DBExpress through dbxoda.exe Trial version 4.40.0.13 recognise Oracle 10g Numeric(38) as Delphi IntegerField?

Thanks for your help.

Posted: Wed 21 Jan 2009 10:34
by Plash
You should add also the following to the Params property:
IntegerPrecision=38

Please see the ReadMe.html file in the driver installation folder for the full list of the extended driver options.

Posted: Thu 22 Jan 2009 12:20
by valdir.marcos
How can I transform an Oracle Numeric(38) as a Delphi DBExpress TLargeintField (Int64)?