Icon View Incident Report

Serious Serious
Reported By: Jose Eduardo Helminsky [HPro Informatica
Reported On: 7/15/2014
For: Version 4.39 Build 2
# 4070 Using GotoCurrent with an OnFilterRecord Filter Can Cause a Record Not Found Error

Two component tables accessing the same table. One of them is filtered with OnFilterRecord event. If I click the last row in the DBGrid and call GotoCurrent to syncronize the record with the other table component it fires an error #8710 record not found.

Note: This only happens in C/S. in F/S it works correctly. It happens in both 32 bits and 64 bits. I have tried this on 4.37 build 1 and 4.39 build 2 (the last version) and the problem is the same

Create a folder "c:\test"
Extract the files attached
run dbsrvr
run project1
Click in the last row of the first grid (COD=7)
Click the Sync button

Comments Comments
Unfortunately, this could not be resolved within the current call-level API for the DBISAM Database Server. The DBISAM Database Server expects that any filter callbacks for a given operation apply *only* to the table cursor that the operation is executed against. With GotoCurrent, you have *two* table cursors involved, so if there is an OnFilterRecord filter on the *source* table cursor for the operation, then GotoCurrent will trigger filter callbacks for the *source* table cursor on the *target* table cursor. Because the call-level API needed to be modified, you need to make sure that both the client and DBISAM Database Server are using 4.40 or higher in order to fix this problem.

Resolution Resolution
Fixed Problem on 10/15/2014 in version 4.40 build 1

Products Affected Products Affected
DBISAM VCL Client-Server
DBISAM VCL Client-Server with Source
DBISAM VCL Standard with Source