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 Chriss Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Internal Software Consistency Error

Status
Not open for further replies.

cyberant

Programmer
Sep 21, 2003
44
ZA
Hi all.

I'm busy with a corrupt database rebuild program. I've managed to trap a couple of errors such as EIBinterbaseError in a "try, except on" block, but I'm unable to trap this error "internal gds software consistency check(wrong record length (183))". I've tried to create a simple try, except block without any "on" parameters, to try and trap all errors, but to no avail.

Basically the program tries to copy the data from one record to another and if it encounters an error it simply skips that record and tries the to copy the next.

Please help!!

Here's the code :

tblnew.append;
for i := (0 + s) to fields.Count - 1 do
Try
s := 0;
tblnew.FieldByName(fields.strings).value := tblold.FieldByName(fields.strings).value;
except
s := s + 1;
end;
tblnew.post;
tblold.next;
//tblnew.Next;
//tblnew.Post;
except

on EIBinterbaseError do
Begin
memo.Lines.Add('EIBinterbaseError, Error Encountered on table '+temp);
memo.update;
if memo.Lines.Count > 1000 then memo.Clear;
tblold.next;
end;

on EConvertError do
Begin
tblnew.ApplyUpdates;
memo.Lines.add('EConvertError Encountered on table '+temp);
if memo.Lines.Count > 1000 then memo.Clear;
memo.update;
tblold.Next;
end;

on EIBClientError do
Begin
memo.Lines.add('EIBClientError, Error Encountered on table '+temp);
memo.update;
if memo.Lines.Count > 1000 then memo.Clear;
tblOld.Next;
end;
 
I've tried looking on the websites but all I'm getting is an explanation of the error, and not specifically a way on how to resolve it. I simply would like my program to detect a corruption in a record and then skip that record and try to copy the next. If I lose a couple of records but still maitain the entegrity of the entire database, it'll be a good compromise.
 
The error seems to stop delphi dead in its tracks. I can't step further till I reach "end.". With my previous experience on errors I was still able to step through the program, until I reached the end now I have to reset the program.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top