列出索引越界和 FDQuery Select 上的访问冲突

问题描述 投票:0回答:1

我的代码有问题,我知道是在 FDQuery Select 上,因为如果我评论代码,错误就不会发生。由于某种原因,我不知道它会生成 2 个错误,然后应用程序崩溃:“访问冲突”和“列表索引越界”。

为了测试它,我留下了另一个程序垃圾邮件连接。

我在运行时为每个连接创建 FDQuery 并在使用后销毁:

Con.Que                 := TFDQuery.Create(nil);
      Con.Que.ConnectionName  := 'MSCON';
      Con.Que.Name            := Format('FD%d', [GetTickCount64]);

with Con.Que do
      begin
        try
          SQL.Text := 'SELECT name FROM EXCEPT WHERE info = :info ';
          Params.ParamByName('info').Value := 'Some Info';
          Open;

          if not IsEmpty then Variable := FieldByName('name').AsString;
        finally
          SQL.Clear;
          Close;
        end;
      end;

Con.Que.Free

什么可能导致此问题?

delphi indy firedac
1个回答
0
投票

问题出在从池中获取连接上。 解决办法是:

Con.Que                               := TFDQuery.Create(nil);
      Con.Que.Connection                    := TFDConnection.Create(nil);;
      Con.Que.Connection.ConnectionDefName  := 'MSCON';
      
      Con.Que.Connection.Free;
        Con.Que.Free;
© www.soinside.com 2019 - 2024. All rights reserved.