Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 2 of 2 total
Thread #8965 index page buffers corrupt in the table 'incident' problem
Tue, Feb 24 2009 1:56 AMPermanent Link

Garey
delphi 6+dbisam version 3.03

A timer to run delete command, if the table 'incident'
record count>10000,will pop the 8965 error message.
record count<10000,everything ok.

the source code:

procedure Tspice.processTimerTimer(Sender: TObject);
var
 Qrydel: TdbisamQuery;
 filepath: String;
Begin
 processTimer.Enabled := false;
 filepath := ExtractFilePath(Application.ExeName)+'cedb';
 Qrydel := TDBISAMQuery.Create(nil);
 Qrydel.DatabaseName := filepath;
 with Qrydel do
 begin
   close;
   SQL.Clear;
   SQL.Add('delete from incident');
   execSQL;
 end;
 Qrydel.Free;
 processTimer.Enabled := true;
End;

I have do search, guys say need to repairtable,
so i run this

procedure Tspice.repairtable;
var
 DBISAMTable: TDBISAMTable;
 filepath: String;
begin
  DBISAMTable := TDBISAMTable.create(nil);
  filepath := ExtractFilePath(Application.ExeName)+'cedb';
  DBISAMTable.DatabaseName := filepath;  
  DBISAMTable.TableName := 'incident';
  if DBISAMTable.exists then
  begin
     DBISAMTable.RepairTable;
  end;
end;

but also cannot delete.

pls,pls help me.

many many thanks.

Regards
Tue, Feb 24 2009 5:43 AMPermanent Link

Fernando Dias

Team Elevate Team Elevate

Garey,

There were a few issues corrected between version 3.03 and 3.30 that may
explain that but only with the information you provided we can't be
sure. Version 3.03 is an old version - you should update to 3.30 if
possible.

Anyway, before anything else you should try another table repair but
forcing index rebuild:

DBISAMTable.RepairTable(True)

--
Fernando Dias
[Team Elevate]
Image