Unsupported on-disk structure for file xxx.fdb; found 32779, support 10
This error shows up in two possible cases:
1. You are not accessing the Firebird database. InterBase databases have a similar structure, but IB database versions higher than 6.0 are not supported by Firebird server.
2. You are accessing a higher version database file with lower version of Firebird server. For example, you created a database with Firebird 2.0, and now you're trying to access it with Firebird 1.5 server (or embedded client).
In case this happens, and you still need to access the data with older version, you should do something like this:
- Install the old version of Firebird and create an empty database with it.
This empty database will have the lower ODS (see FAQ #117 to learn about ODS). This is needed in order to have a database file which can be used by both versions of Firebird. This empty database needs to have all the metadata (tables, procedures, etc.) as the full one. If you don't have access to the old database structure in some 'safe' place, you can extract it using isql tool (with -x option) or some graphic administration tool (Extract Metadata DLL option in FlameRobin). If you used some features available only in newer Firebird versions, you might need to edit the SQL script manually to make it work on older Firebird version.
- Install the new version of Firebird and copy the data from full to the empty database
This operation needs a new Firebird server since only it can read both database structures. To do the copying, you can use some data pump tool like IB Data Pump or FBCopy (FBCopy has a neat option to disable all triggers while data is being copied and can also copy generators). See FAQ #20 for more info.
- When copying is done you have the database with old ODS and all your data in it. You can now install the old version of Firebird once again, and keep working with it.
3. A version of Interbase maybe installed. You need to change the standard RemoteServicePort setting in firebird.conf from 3050 some other value. For example, 3051. Make sure you use that port in all connection strings, i.e. instead of LOCALHOST use LOCALHOST/3051, instead of 192.168.0.11 use 192.168.0.11/3051, etc.
Note: section 3 of this FAQ is contributed by AnToine van Maarle.