Delphi multi-RDBMS support with Oracle/Interbase

I have a problem with adding support for Oracle as a back-end to an application that already supports InterBase/MSSQL and SyBase.

I have some TTables/TQuery's with predefined fields (means they are created in the IDE). There FieldType and Size are determined by the IDE (and BDE).

The problem is that Oracle does not know the INTEGER type but uses NUMERIC(0,*) for this. Delphi (and BDE) interpret this as a TFloatField. Because the application is developed with Interbase as a base database, the predefined field are of type integer. And opening a Query that has a TIntegerField when a TFloatField is expected generates a exception...

Does anybody have experience in solving this issue.

(An obvious solution which I am NOT looking for is fixing this at Form or DataModule creation time by storing/freeing/recreating the fielddefs and restoring every interesting property on recreation).

Regards,
Jacco
LVL 10
JaccoAsked:
Who is Participating?
 
kretzschmarConnect With a Mentor Commented:
hi jacco,

have done some tests and see now your problem.

a workaround:

if u use the bde oracle native driver set the
- entry enable integer to true
- alter the field with the type NUMBER(*,0) to NUMBER (10,0)

this should do the trick

meikl
0
 
kretzschmarCommented:
? Oracle did not have an integer-type ?
see http://agec16.agecon.uiuc.edu:8000/WG73-doc/server/sql73/ch205.html
0
 
JaccoAuthor Commented:
Thanks Meikl,

It is always very nice to post a question when you leave work and have it solved overnight :-)

Regards Jacco
0
 
kretzschmarCommented:
yup, jacco,

thats a feature of ex-ex :-))
well, glad to helped you,
good luck again

meikl
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.