Icon View Incident Report

Serious Serious
Reported By: Max Terentiev
Reported On: 11/19/2021
For: Version 4.50 Build 2
# 4887 8708 Record Changed or Deleted Errors When Applying Cached Updates Does Not Fire OnCachedUpdateError

I found bug in DBISAM: OnCachedUpdateError event is not fired.

Problem happens if some record(s) edited in cached update mode has been deleted from table by another user (in my case by another app).

In this case I have exception "Record changed or deleted…" but OnCachedUpdateError not fired and I can't handle problem.

procedure TDBISAMDataSet.ApplyCachedUpdates;
begin
  if FCachingUpdates then
     begin
     CheckBrowseMode;
     try
        if Assigned(FOnCachedUpdateError) then
           FHandle.OnCacheError:=DoCacheError; // event is set for FHandle but exception happens in FCachedHandle where its nil !!!! Because of it OnCachedUpdateError event is not fired !
        try
           FHandle.ApplyCachedUpdatesToCursor(FCachedHandle,False);
        finally
           FHandle.OnCacheError:=nil;
        end;
     finally
        CancelCachedUpdates;
     end;
     end;
end;



Resolution Resolution
Fixed Problem on 5/9/2022 in version 4.50 build 3


Products Affected Products Affected
DBISAM Additional Software and Utilities
DBISAM VCL Client-Server
DBISAM VCL Client-Server with Source
DBISAM VCL Standard
DBISAM VCL Standard with Source
DBISAM VCL Trial

Image