Interbase - Oracle Application

Interbase - Oracle Application

Postby pog8tor » Tue 09 Jan 2007 22:24

Hi everyone...

I got a application developed with Interbase, using dBExpress... Now i'll try use oracle as an alternative.

Runing a few tests (using the EnableBCD property), the TFMTBCDField fields used in oracle, are incompatible (Type Mismatch Error) in Interbase.

The question is... Exist any Field type compatible with Interbase and Oracle, or it's an Extended driver options settings trouble.

Thanks in Advance...
pog8tor
 
Posts: 3
Joined: Tue 09 Jan 2007 22:12

Postby Plash » Thu 11 Jan 2007 11:32

Please provide SQL that creates your tables in Oracle and Interbase. Also specify types of the TField objects that are created by Delphi for these tables.
Plash
Devart Team
 
Posts: 2844
Joined: Wed 10 May 2006 07:09

Postby pog8tor » Thu 11 Jan 2007 12:44

The SQL code it's a simple:
select * from TABLE

I connected the App to an Oracle database using a TCRSQLConnection (using the EnableBCD property). Later using a simple "select * from TABLE" SQL connected a TSQLQuery, and adding all it´s fields. The numeric fields are TFMTBCDField, and all works well.

When i tried connect the App to an Interbase database, the TFMTBCDField got problems... The literal error it's: "Type mismatch for field XXXX, expecting: TFMTBCDField actual: Integer"

If i try backwars, connecting first to Interbase and later to Oracle, the numeric fields are TIntegerFields, so i think that's worst (i was read, Oracle doesn't work with integer fields only FloatFields)

So i don't know if exist any Field type compatible with Interbase and Oracle database, or i got an Extended driver options settings trouble.

Thanks
pog8tor
 
Posts: 3
Joined: Tue 09 Jan 2007 22:12

Postby Plash » Thu 11 Jan 2007 13:31

The Core Lab dbExpress driver for Oracle will create fields of TIntegerField type if you set EnableBCD=False in the Params property of TCRSQLConnection. TIntegerField can be used with Oracle.
If the TSQLQuery component creates TFloatField objects instead of TIntegerField, you can set IntegerPrecision in the TCRSQLConnection.Params property to a value that corresponds a precision of the fields in the database table.
Plash
Devart Team
 
Posts: 2844
Joined: Wed 10 May 2006 07:09

Postby pog8tor » Thu 11 Jan 2007 15:32

Great... Thanks a lot... The IntegerPrecision property it's what i was looking for... Thank you
pog8tor
 
Posts: 3
Joined: Tue 09 Jan 2007 22:12


Return to dbExpress driver for Oracle