Icon View Incident Report

Serious Serious
Reported By: Michael Fry
Reported On: 2/21/2002
For: Version 3.06 Build 1
# 1035 Attempting a Locate Operation on a TDBISAMQuery Component with RequestLive=True Causes Error

Steps to produce the error:

1. create remote session.
2. Open a Query with RequestLive=True
3. Locate in the Query
4. You get should get an EDatabaseError (field not found)

The crazy thing is that it does not happen on all tables. And it does not happen on a local session at all.

Form definition below:

--------------------------------------------------------------
Unit
--------------------------------------------------------------
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 
Dialogs,
  DB, DBISAMTb, StdCtrls, ExtCtrls, Grids, DBGrids;

type
  TForm1 = class(TForm)
    dbTempro: TDBISAMDatabase;
    DBISAMQuery1: TDBISAMQuery;
    DataSource1: TDataSource;
    DBISAMSession1: TDBISAMSession;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin

  DBISAMQuery1.Open;
  DBISAMQuery1.Locate('SYS_KEY','XXXXXXXXXXX',[]);

end;
end.
--------------------------------------------------------------
Form
--------------------------------------------------------------
object Form1: TForm1
  Left = 780
  Top = 284
  Width = 138
  Height = 203
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object DBISAMSession1: TDBISAMSession
    EngineVersion = '3.06'
    Active = True
    LockRetryCount = 15
    LockWaitTime = 100
    LockProtocol = lpPessimistic
    PrivateDir = 'C:\TEMP\'
    ProgressSteps = 20
    SessionName = 'REMOTE'
    SessionType = stRemote
    RemoteType = rtLAN
    RemoteHost = ''
    RemoteAddress = '127.0.0.1'
    RemotePort = 12001
    RemoteTrace = False
    RemoteUser = ''
    RemotePassword = ''
    Left = 56
    Top = 56
  end
  object dbTempro: TDBISAMDatabase
    EngineVersion = '3.06'
    DatabaseName = 'TEMPRO'
    Directory = 'G:\D5\AP_Tempro\Data'
    RemoteDatabase = 'TEMPRO'
    SessionName = 'REMOTE'
    Left = 24
    Top = 56
  end
  object DBISAMQuery1: TDBISAMQuery
    AutoDisplayLabels = False
    CopyOnAppend = False
    DatabaseName = 'TEMPRO'
    SessionName = 'REMOTE'
    EngineVersion = '3.06'
    RequestLive = True
    MaxRowCount = -1
    SQL.Strings = (
      'SELECT * FROM KUNDEN')
    Params = <>
    Left = 24
    Top = 88
  end
  object DataSource1: TDataSource
    DataSet = DBISAMQuery1
    Left = 56
    Top = 88
  end
end



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