Board index » delphi » Corrupt Table / Index header!!!

Corrupt Table / Index header!!!

Hi! I am trying use Interbase with my Delphi application. The Database is a
simple flat table with few fields but my application can't seem to open the
Database (using TTable...). The error which I get is "Corrupt Table/Index
Header".

I am able open the database using the Database explorer. I am using the
native driver INTRBASE and can also execute sql statements on the table
using the Interbase Windows ISQL.

Can any one please tell me what I am missing here...

Thanks,
Vishnu Kumar

 

Re:Corrupt Table / Index header!!!


Quote
On Tue, 3 Aug 1999 16:45:06 -0700, "user" <u...@sharplabs.com> wrote:
>Hi! I am trying use Interbase with my Delphi application. The Database is a
>simple flat table with few fields but my application can't seem to open the
>Database (using TTable...). The error which I get is "Corrupt Table/Index
>Header".

>I am able open the database using the Database explorer. I am using the
>native driver INTRBASE and can also execute sql statements on the table
>using the Interbase Windows ISQL.

I'd suspect the app is trying to open it as a Paradox db, which it is
not.  You should make sure you have:
 * defined a BDE alias that points to the gdb (through BDE
administrator)
 * placed a db component in the app that points to the alias you
defined
 * referred all datasets to this db component

Regards,

--
Marco Rocci
MicroEra srl
Turin, Italy
-----------------
vota contro lo SPAM su: http://www.politik-digital.de/spam/

Re:Corrupt Table / Index header!!!


Thanks for responding...

I have used TTable which is a subset of TDBDataSet and  have included both
DB, DBTables.

The jest of what I am doing is...

Table1: TTable;
Table1 := TTable.Create(self);
Table1.ReadOnly := False;

With Table1 do begin
     if State <> dsInactive then
     Close;
         if FileExists(FDbName) then begin
         Table1.TableName := FDbName;

file://where FDBName is the path C:\...\databasename.gdb

 try
   Open;
    ShowMessage('DATABASE OPEN');
 except
     on EDatabaseError do
     ShowMessage('Error in openning')
 end;

 "It fails in the try..except loop".

****************************************************************************
************

In the DBE admins, I have in the Database Aliases under the Databases
defined the server name to the same path as in FDbName(above).  Does this
point to the the gdb? I couldn't see any other place where I could set a
path to the Aliases in the BDE.

Please comment.

Regards,
Vishnu Kumar

----------------------------------------------------------------------------
---

Quote
Marco Rocci <mrocciNOS...@tin.it> wrote in message

news:37a8f25c.1132624@news.shoresoft.com...
Quote
> On Tue, 3 Aug 1999 16:45:06 -0700, "user" <u...@sharplabs.com> wrote:

> >Hi! I am trying use Interbase with my Delphi application. The Database is
a
> >simple flat table with few fields but my application can't seem to open
the
> >Database (using TTable...). The error which I get is "Corrupt Table/Index
> >Header".

> >I am able open the database using the Database explorer. I am using the
> >native driver INTRBASE and can also execute sql statements on the table
> >using the Interbase Windows ISQL.

> I'd suspect the app is trying to open it as a Paradox db, which it is
> not.  You should make sure you have:
>  * defined a BDE alias that points to the gdb (through BDE
> administrator)
>  * placed a db component in the app that points to the alias you
> defined
>  * referred all datasets to this db component

> Regards,

> --
> Marco Rocci
> MicroEra srl
> Turin, Italy
> -----------------
> vota contro lo SPAM su: http://www.politik-digital.de/spam/

Re:Corrupt Table / Index header!!!


Quote
On Wed, 4 Aug 1999 12:42:49 -0700, "user" <u...@sharplabs.com> wrote:
>The jest of what I am doing is...

>Table1: TTable;
>Table1 := TTable.Create(self);
>Table1.ReadOnly := False;

>With Table1 do begin
>     if State <> dsInactive then
>     Close;
>         if FileExists(FDbName) then begin
>         Table1.TableName := FDbName;

>file://where FDBName is the path C:\...\databasename.gdb

No, no, no.  Drop a TDatabase component either in the main form or in
a common datamodule.  Point the TDatabase object to the BDE alias you
defined.  Point the tables, queries and stored proc components to the
TDatabase.  TTable.TableName should contain the IB table identifier,
not the database identifier.

What you did is appropriate for Paradox and xBase, even though I
prefer using a TDatabase comp in these cases too.

--
Marco Rocci
MicroEra srl
Turin, Italy
-----------------
vota contro lo SPAM su: http://www.politik-digital.de/spam/

Other Threads