Interbase - Oracle Application

Discussion of open issues, suggestions and bugs regarding usage of dbExpress drivers for Oracle in Delphi and C++Builder
Post Reply
pog8tor
Posts: 3
Joined: Tue 09 Jan 2007 22:12

Interbase - Oracle Application

Post by 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...

Plash
Devart Team
Posts: 2844
Joined: Wed 10 May 2006 07:09

Post by 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.

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

Post by 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

Plash
Devart Team
Posts: 2844
Joined: Wed 10 May 2006 07:09

Post by 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.

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

Post by pog8tor » Thu 11 Jan 2007 15:32

Great... Thanks a lot... The IntegerPrecision property it's what i was looking for... Thank you

Post Reply