Icon View Incident Report

Serious Serious
Reported By: J. Pieter Vos
Reported On: 2/21/2002
For: Version 3.06 Build 1
# 1041 TDBISAMTable Locate Method Not Detecting Cursor Changes Properly When Exclusive=True

I'm finding some strange problems in two applications, both refered to locate function, searching a record that has been added just a few lines before. I'll try to explain it a little bit, since I've tried to make a demo programm but couldn't reproduce the error:

1) Small programm to pass dbf files to dbisam. If mostly just do a read from dbf (using apollo) and afterwards, it appends a record, fills the fields, and does a post... On one of the conversion i've to check if a code is already appened, and it's so, edit a field, and increment it, but it never finds the field, so i put a breakpoint, opened dbsys, and from there I can find the field. This programm normally works with the tables in exclusive mode, to test with dbsys I just put them on shared.

2) A big programm, with lots of tables, forms etc. I have two datamodules (First with tables for visual stuff, like grid, second with tables for rutines and internal work, but both using the same session component/settings), both opened at the beginning of the programm. At the programm when they make a bill, there's one table in DataModule1 where I append a record, and after that I call a rutine that does a locate at the same table residing in datamodule2, and sometimes it doens't find the new record and sometimes it does. I solved this temporaly by refering to the first datamodule, but I would need to change it (I don't want to change position of first datamodule table, since it's what the customer sees on screen.).

The problem looks like after appending one or a few new record, posting it (usign flushbuffers and strictchangedetection to true) the locate function doesn't find the new record. This is not working properply from v3.03 up to 3.05.

Comments Comments
Problem was cursor-level change detection within the same session was exiting when the cursor had exclusive access to the table, which did not take into account cloned cursors for the purpose of the locate method.

Resolution Resolution
Fixed Problem on 2/27/2002 in version 3.07 build 1