Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Does anyone know what does this Interbase error means exactly?

Status
Not open for further replies.

wolfykaos

Programmer
Mar 12, 2002
23
ES
Hello:

Does anyonwe know what does exactly means this error in Interbase?:

Unsupported on-disk structure for file C:\VETDADOS.GDB: found 8, support 10

The GDB file is supposed to be OK, so why I cannot open it with Interbase ODBC driver, so I can migrate it to the format I want (Access to be exact). I used the latest version of Interbase so it couldn't be generated with a newer version.

Thanks a lot
 
Hi wolfykaos

It may be that the ODBC driver does not recognise the latest GDB format (if the ODBC driver is older than your version of Interbase.) Who is supplying the ODBC Driver ?

Im guessing that the file can be oopened ok in Interbase and is not actually corrupt ?

Opp.
 
Hi Opp:

Thanks for your quick answer. I don´t know exactly the version of this GDB file, but it is the BD of an application that has been used for several years (so it couldn´t be very new), and I download the latest trial version (from Interbase home page) of Interbase to do this. The fact is that the file isn´t corrupt because it works with its application, but not with Interbase.

But, do you know what the message exactly means? It could give us a clue.

Thanks a lot

Wolfy
 
Hi -

Through experience I can only suggest that "Unsupported on-disk structure for file" is whats known as a "best guess error message".

This means that for some reason the ODBC driver cannot read or make sense of the file in question. The exact reason for this is unclear, but I suggest it will fall into one of 2 catagories.

The first is that the file itself it corrupt; the second would be that there is a version problem (As you say - you can read the database - I favour the latter.)

You could use Interbase (interactive SQL) to obtain the metadata information and create a new (empty version) of the database - then see if this still generates an error.

If it does not, you may want to create an empty database using the described method and import data into that.

Sorry I cant be of more help, maybe check out the ODBC vendor with regards further help.

Cheers..
Opp.

P.S Check out this link (there is a reference to this problem on this page)
 
Hi again Opp:

Well, I've downloaded the 6.0 Version, because I've read in the link you gave me that the problem could be that in 6.01 version and perhaps in further versions, they've dropped the possibility of opening old formats.

The ODBC driver is a bit different and it appear to go further than the other, but when I try to access the DSN archive it request a login and a passwd. In the version I tried before the login was SYSDBA and the passwd masterkey, but in this version it doesn't allow me to write more than 7 characters (so masterkey is nos possible). The curious thing is that writing any other passwd it says the same error message: "Unsupported on-disk structure,...etc", so: Could it be possible that the real problem was that the BD requires a passwd to be accessed??? Or this versions just need another standard passwd, that I don't know???

Well, sorry for disturbing you so much. Thanks a lot for your help.
 
hi wolfykaos -

Im afraid Im out of idea's here. I can only think that the problem lays with the ODBC driver. Who is the ODBC vendor ?

The only ODBC drivers I have seen for Interbase have been mostly beta versions (and one stated that there was a problem with Access.)

Maybe you can check with the supplier of the ODBC driver and look for "known Issues". Or maybe someone else knows of a decent ODBC driver (check the Delphi Forum - some Delphi people have started to use Interbase.)

Sorry I could not solve your problem, I hope you have some luck with it.

Opp.

P.S the only other thing I can suggest would involve writing a Delphi (or some other)Application and use this to export the data programatically. Not an easy option Im afraid.


 
The Delphi application option is not very difficult (if you know Delphi), but there is an utility called Datapump that comes with Delphi that can do the migration.
But Access and Interbase or 2 different animals. Access is a desktop db while Interbase is a Client Server system. You will be able to migrate the data but not generators, triggers, views, stored procedures, domains etc, since you are down-sizing S. van Els
SAvanEls@cq-link.sr
 
Thats a good option svanels. I tried it and it works (from Interbase 6.x to Access 97.) I must admit, I have not tried do the dump the other way ;-).

Opp.

 
In most cases you would do an upsizing when you move from access/paradox to Oracle, Interbase etc. Also when you want to replicate a database in another RDBMS. S. van Els
SAvanEls@cq-link.sr
 
Hi Opp and Svanels:

I've dowloaded and tried Datapump, but it told the same error "Unsupported on-disk structure for file C:\VETDADOS.GDB: found 8, support 10" when I test it as source DB with Datapump. I think the clue is to have installed and old Interbase, so that the driver ODBC can read the BD, and then use Datapump to make the translation... isn´t it?

Thanks both of you for your help. I'm sure at last it would be possible.
 
Some other questions, how does the application makes the connection to the database?
a) Does it uses an ODBC driver?
b) Does it uses the BDE (Borland Database Engine)? Check if there is a BDE administrator in the control panel
c) In which language the application has been written? Delphi, C++, VB or other.
d) Have you upgraded the Interbase server to Interbase 6?
e) If then, how come that your application still works, although the server doesn't recognize the file.
f) Do you have this problem when you try to use the ODBC driver to poke in the Database?

Finally if you are using datapump, Use the BDE engine to make the bridge from Interbase to Accesss instead of ODBC S. van Els
SAvanEls@cq-link.sr
 
Hi Svanels!

This is the story:

I work in a small company that is developer of a management app for veterinary clinics. This app uses Access for its DB.
Often, there are new clients that want to buy our program, and we have to migrate the data from their old programs to ours, and of course, this old application data formats is very different from one to another. So the client send us his BD and we have to transform it to our format (Access), and usually he doesn´t have any idea about computers.

This time the client sent us this DB, and the only things we know are:

- His old app was written in Delphi, but we don´t have it. This app is working all right till this moment, because the client said so.

- The format of archive is GDB (so it's Interbase)

- I tried to open it with Interbase 6.5 (trial version), and it tolds the error. Then I dowloaded 6.01 and got the same. Then 6.0 and more of the same thing. Then I read what you put here and downloaded DataPump, but it tolds exactly the same error when tried to open the GDB. En every cases the ODBC driver was 6.0 at least.


So this is my story... I don´t know what to do beacuse it's the first time I've ever seen Interbase (the last time I had to fight with a new databse was Clarion and I sweat hard to migrate the data).

Trying to answer to your questions:

a) I don't know and the client neither (he doesn't know almost anything about computers)

b) Well, I can try to know this by phone, the problem is that the client is foreigner (he is portuguesse, and I'm Spanish), and I don't speak his language.

c) Delphi

d) I think so, because the versions of Interbase I have installed are 6.0 or later

e) My server doesn´t recognize the file in my computer, but his delphi app recognizes perfecly the DB in his computer (but I don´t know what things have the client installed)

f) Poke? Well, I can´t access the DB with the ODBC driver


Do you know where can I get the BDE engine to try this, or what application comes with it? (I don´t have Delphi here)


Well, I'll try to get the BDE and see what happens. Thanks a lot for your help (if you come to Spain sometime I'll invite you to couple of cañas (little spanish beers)) :)





 
Hi WolfyKaos -

This is indeed a mystery. Forgive me if Im wrong, but I dont think any of us has mentioned whether you can connect to the database using the "IBConsole" application that comes with Interbase.

This is the administration tool for Interbase so even if it cant connect - it may give you more usful information as to why it fails. If you have tried it and still cant connect - try d/l and connecting using a program called "IBAccess". You can d/l this from :


Even if it cant connect - its a useful app to have all the same. And on a more cynical note - so far we only have the clients word for the fact the database is not corrupt.

Now Im sure this is not the case here - but having a few years experience in working around problem solving with comuter systems - you do sometimes have to be careful.

Some years ago I used to do fault-finding/upgrades for PC's and it came to the point where we had to do a checklist on the machines before we even touched them. We had to record any fauilts/anomolies so that we knew what was exactly the situation before we started work.

This was in response to people submitting machines for simple upgrade - while already knowing about existing faults. They would then try to get us to fix the other problems as well saying "well it was ok before I sent it into the shop" ;-).

Ok, as I say Im being cynical (it is Monsay aftere all)I just thought I would mention it. Please let us know how you get on - we will get to the bottom of this "eventually" :).

Cheers..
Opp.
 

Hi Opp!

You're right. It would be a great way to make a DB repair for free, but it's not such case, because my boss was in Portugal for a trip the weekend before, and checked the application, and it worked correcly. I wish the trouble was a corrupt DB, so I could forget this Interbase history, that is driving me crazy (and you too ;-) ).

I'm downloading ibaccess. I'm going to try it and then I tell you what happened.

Thanks again friend
 

There was no luck!

IbAccess told exactly the same error. It doesn't even let me validate or repair de DB (the process never ends).

Bufff! this appear to be very ugly!!!
 
Oke I think I got the picture.

Interbase is a Relational Database Management System, a so called Client-Server system and you will not be able to access any data, onless the server is running. Install all the server and the tools or you will not pass the security.

The first thing to do is to start the server.
If it is running on Windows 9x or Me, you will see an Icon called interbase guardian, near the clock on the taskbar.
In NT check in the services if Interbase is running.

2) start the IbConsole

3) login to the local server with sysdba and masterkey menu Server --> Login

4) Open the database with Database --> register and browse to your *.gdb file(s)
If you pass this point you must be able to browse in the database and see all the data.

If you want to use the datapump as mentioned, you need to install the Borland Database Engine (BDE) with the driver for Interbase. At least try to find Delphi Pro or Client-Server, Version 3 or higher to get the BDE and the Interbase driver. Another option is to ask the client for his installation disk. Certainly it will have the BDE engine with Interbase driver.


I would strongly suggest to dive into the documentation of Interbase, because you have an industrial strength Multi-user Database Server, without the headaches of an Access Networking desktop system.

From the errors you described, the database was generated with Interbase 5.

Good luck S. van Els
SAvanEls@cq-link.sr
 
Hi again -

Ok Ive had some inspiration ;-). I came across something that may be the answer . Here is some information that may be relevant :

Please check whether you are using Borland's Interbase 6.01. This particular version dropped support for databases created by previous versions of Interbase.

So basically this says that version Borland Version 6.01 dropped support for earlier version of Interbase (I guess they had their reasons [hammer].)

I also believe that Svanels is right about it being an older version of Interbase. I came across a similar problem with a GDB file I had on my own system. I could not open the file and it came up with the error you described.

So I downloaded and installed the Firebird version of Interbase and Client and voila! It worked! I dont want to get your hoped up wolfykaos - but it really looks promising.

So in summary, un-install any current version of Interbase you are currently running. Then install the Firebird Client and Server version of Interbase. Then try open the problem file.

Please let me know how it goes - here is the link for the downloads :


Cheers..

Opp.

 
Ok my apologies for my English (and its my native language!) The sentance that reads :

"So basically this says that version Borland Version 6.01 dropped support"

Should read :

"So basically this means that Borland Interbase 6.01 dropped support for earlier versions of the database"

Opp.
 
Hey opp, I am using Interbase 5.1, but I installed also (on another computer) Interbase 6.0

I have some problems with visualizing the data in some tables because of some incompatibilities, but it is showing at least the structure.
Other tables and triggers show up fine. I think it has to do with some domains I defined.
This IBConsole is handier then my Windows ISQL, but the IBConsole doesn't support Interbase 5.0


Coming back to the point, It would be better to install Interbase 5.0 or firebird.

Wolfykaos, if you could install the Datapump on your clients computer, I think you will succeed in downsizing the data to Access. S. van Els
SAvanEls@cq-link.sr
 
Yes svanels -

My earlier enthusiasm may have been misplaced. We do now know with some confidence that the problem is because the database in question was produced with an earlier version of Interbase.

And while it may be possible to read the database in its native format - the problem will still remain as to how best convert it.

It may be that datadump will work with the Firebird version of Interbase, in which case - problem solved. I have not had time to experiment with this yet though.

Opp.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top