1
votes

My old delphi 7 application was using devart Interbase driver to connect with mydatabase.fdb. When I migrated this application to delphi xe4, I installed latest version of devart interbase for delphi xe4. But with this version, I am getting following error:

Unsupported on-disk structure for file mydatabase.fdb

What is the cause of this error? How should I get rid from it?

I found the link: http://www.firebirdfaq.org/faq80/

2 reasons are mentioned there for possible causes for this error. But I think these are not applicable to me. Then why am I getting this error?

2
Maybe Interbase overwrote your Firebird client library. That's what I've experienced some time ago. Is that mydatabase.fdb Firebird database, is it ? - TLama
@TLama - yes its mydatabase.fdb and also what the meaning of your statement: Maybe Interbase overwrote your Firebird client library - user1556433
I think that the new installation of Interbase overwrote the GDS32.DLL in your System32 folder. In any case, you should have explicitly stored driver by your application binary if the driver's manual doesn't say something else. Note, that what I described is just what I experienced with old Borland's Interbase installed after Firebird (and it shouldn't probably happen to you since the driver you use should be able to connect to IB as well as Firebird). But try to add the driver by your executable. - TLama
Does the error message tell you which ODS version it expected, and which ODS version it got? If so: please add it to your question. - Jeroen Wiert Pluimers

2 Answers

4
votes

This usually happens when you try to open an older database with a later version of Firebird. Have you updated your Firebird server? If so, you need to backup and restore the database. This will update the ODS so it matched your current Firebird server version.

1
votes

I found the solution of the error. When I installed DevartInterbase driver, default vendorLib was set to gds32.dll in dbxdrivers.ini file which is a dll for interbase database. When I replaced gds32.dll with fbclient.dll, it worked.

I referred following link from embarcadero: http://docwiki.embarcadero.com/Libraries/XE4/en/Data.SqlExpr.TSQLConnection.VendorLib