Icon View Incident Report

Serious Serious
Reported By: Trevor Davis
Reported On: 8/20/2008
For: Version 2.01 Build 4
# 2761 Using Locate On Columns That Use Index Other than Active Index Can Cause Improper Row Positioning

I found a problem with Locate.

- Connect a TEDBTable to a grid.
- Select an IndexName so the table isn't sorted by the primary key.
- Locate against the primary key.
*** The list is messed up: rows show multiple times or not at all.
- Refresh fixs the display.

Similarly:
- Deselect IndexName so it sorts by primary key.
- Locate against a secondary index.
*** Same problem.

procedure TForm1.FormCreate(Sender: TObject);
begin
  EDBTable1.open;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  //CustomerID is primary key. CustomerNo is a secondary index.

   //This causes the problem if IndexName is blank (using primary key).
  EDBTable1.Locate('CustomerNo', 1002, []);
   //This causes the problem if IndexName is CustomerNo (secondary index).
  //EDBTable1.Locate('CustomerID', 10002, []);
end;



Comments Comments and Workarounds
The workaround, if possible, is to set the active index to the same as that used by the Locate before calling the Locate method.


Resolution Resolution
Fixed Problem on 8/21/2008 in version 2.01 build 5


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

Image