Icon View Incident Report

Serious Serious
Reported By: Grzegorz Rewucki
Reported On: 6/22/2007
For: Version 1.04 Build 2
# 2390 Using Multi-Select with Grid on DataSet Sorted Using Non-Unique Index Causes Incorrect Row Selection

I found strange problem with bookmarks in TEDBQuery when clicking rows in the grid (dgMultiSelect option included). After few clicks all rows will be highlighted.

procedure TForm1.FormCreate(Sender: TObject);
  var DBPath: string;
      i: Integer;
begin
  DBPath := ExtractFileDir(ParamStr(0));
  Engine.ConfigPath := DBPath;
  Engine.TempTablesPath := DBPath;
  Session.LoginUser := 'Administrator';
  Session.LoginPassword := 'EDBDefault';

  with MetaQuery do
  begin
    Close;
    DatabaseName := 'Configuration';
    SQL.Text := 'SELECT * FROM Databases WHERE Name = ''TestDB''';
    RequestSensitive := True;
    Open;

    if (RecordCount = 0) then
    begin
      Close;
      SQL.Text := 'CREATE DATABASE "TestDB" PATH ' + AnsiQuotedStr(DBPath, '''');
      ExecSQL;
    end;
    Close;

    EDB.Database := 'TestDB';
    EDB.DatabaseName := 'TestDB';
    EDB.Open;

    DatabaseName := 'TestDB';
    SQL.Text := 'SELECT * FROM Information.Tables WHERE Name = ''TestTab''';
    RequestSensitive:=True;
    Open;
    if (RecordCount = 0) then
    begin
      Close;
      SQL.Clear;
      SQL.Add('CREATE TABLE "TestTab"');
      SQL.Add('(');
      SQL.Add('"Id" GUID DEFAULT CURRENT_GUID,');
      SQL.Add('"MyName" VARCHAR(30) COLLATE "PLK_CI",');
      SQL.Add('"MyDate" DATE DEFAULT CURRENT_DATE,');
      SQL.Add('CONSTRAINT "PK_TestTab" PRIMARY KEY ("Id")');
      SQL.Add(')');
      ExecSQL;
      Close;

      SQL.Text := 'CREATE INDEX "TestTab_MyDate_Idx" ON TestTab(MyDate)';
      ExecSQL;
    end;
    Close;
  end;

  with GridQuery do
  begin
    DatabaseName := 'TestDB';
    SQL.Text := 'SELECT * FROM TestTab ORDER BY MyDate';
    RequestSensitive:=True;
    Open;
    if IsEmpty then
    begin
      for I := 0 to 10 do
      begin
        Insert;
        FieldByName('MyName').AsString := 'Name'+IntToStr(i);
        Post;
      end;
    end;
  end;
end;



Resolution Resolution
Fixed Problem on 6/23/2007 in version 1.04 build 3


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

Image