Delphi 6 -> Delphi 2006 dbexpress weirdness?
-
20-09-2019 - |
Question
I have an older application (written in Delphi 6) that has to be ported to Delphi 2006 (update 2). The application used to connect to an Interbase 6.x database using DBExpress, but the new version needs to connect to a Firebird 2.x Superserver.
Porting went OK, no real problems. But now, when I try to connect to the new Firebird server from the ported app, I get the following error:
Database error Database Server Error: no current record for fetch operation
Running the same application compiled with Delphi 6, talking to the same Firebird server runs fine. The changes needed to compile the app in Delphi 2006 weren't related to the database code - all local library stuff. The application uses TSQLDataset en datasetproviders and clientdatasets.
Anybody has any idea how or why? Any changes to DBExpress that might cause this behaviour? Thanks.
Solution
I don't think Delphi 2006 supports Firebird natively. Think you need to install FIBPlus
Heres a list of what is supported in Delphi 2006:
Old driver New driver Database and Version
dbexpinf.dll dbxinf30.dll Interbase 7.5
dbexpora.dll dbxora30.dll Oracle 10g
dbexpdb2.dll dbxdb230.dll db2 UDB 8.x
dbexpmss.dll dbxmss30.dll MSSQL 2000
dbexpmys.dll dbxmys30.dll MySQL 4.0.24
dbexpasa.dll dbxasa30.dll Adaptive Sybase Anywhere 9
dbexpase.dll dbxase30.dll Sybase 12.5
dbexpinf.dll dbxinf30.dll Informix 9.x
Extracted from Here
OTHER TIPS
Until Delphi 2010, the built in DBExpress drivers officially never supported FireBird.
In practice, a lot of combinations never worked at all.
Either:
- go for a DBExpress driver officially supporting FireBird (search google),
- or move to another database middle layer (FIBPlus that James suggests is really good).
--jeroen
First of all, retry the same steps from a new, 1-form app (put SQLConnection, SQLQuery etc etc), fill with the SQL you want and try to connect.
I believe there's some connection parameter that changed between versions, since I've used D2006 DBexpress to access Firebird 2.x with success. But the application were not ported, but new projects.