Icon View Incident Report

Serious Serious
Reported By: PK
Reported On: 4/8/2007
For: Version 1.02 Build 1
# 2320 FindKey Operations on Non-Unique Indexes Can Cause an Access Violation

I found a problem with transactions when I did some further tests with my 500K records table. I was trying to do random updates of a blob field in the table.

I encountered a AV error in FindKey above. The interesting part is that there will be no AV error if I take out the StartTransaction and Commit statements. More strangely, if I change it to sequential updates (i.e. use key := i; instead of the zig-zag update), there will also be no AV error even if I maintain the StartTransaction and Commit statements.

   for i := 1 to 1000 do
   begin
     // try to simulate a zig-zag update of records
     if i mod 2 = 1 then key := i else key := Table.RecordCount - i;
     if Table.FindKey([key]) then
     begin
       Database.StartTransaction;
       Table.Edit;
       Table.FieldByName('DOC_XML').AsString := 'abc';
       Table.Post;
       Database.Commit;
     end;
   end;



Resolution Resolution
Fixed Problem on 4/9/2007 in version 1.03 build 1


Products Affected Products Affected
ElevateDB VCL Client-Server
ElevateDB VCL Client-Server with Source
ElevateDB VCL Standard
ElevateDB VCL Standard with Source
ElevateDB VCL Trial

Image