Delphi:FireDac 连接阻止应用程序

Posted

技术标签:

【中文标题】Delphi:FireDac 连接阻止应用程序【英文标题】:Delphi: FireDac Connection blocking the application 【发布时间】:2014-06-30 19:00:22 【问题描述】:

我在启动时使用登录表单处理应用程序。

在用户写入登录数据之前,我想谨慎地连接到 SQL 服务器。

问题是,当我连接缓慢或服务器路径错误时,应用程序正在寻找服务器或尝试连接,而此时应用程序没有响应。

对于连接,我使用以下过程:

//-- SQL connect --//
procedure TSql.Connect;
var
  DriverId: String;
  i: Byte;
begin
  try
    Screen.Cursor:=crAppStart;

    //connection DriverName
    DriverId:=Server[FServerType].DriverId;
    FConnection.DriverName:=DriverId;

    //connection Params
    FConnection.Params.Clear;
    FConnection.Params.Add('DriverID='+DriverId); //mandatory
    if FConnString.Count>0 then
       for i := 0 to FConnString.Count-1 do FConnection.Params.Add(FConnString.Strings[i]);

    try
      FConnection.Open;
      FQuery.Connection:=FConnection;
    except
      on E : Exception do ShowError(_('Connection could not be established!'),E);
    end;
  finally
    Screen.Cursor:=crdefault;
  end;
end;

请帮助我就如何做到这一点提出一些建议。我已经阅读了有关线程和 Application.ProcessMessages 的信息,但我没有成功使其顺利运行。

【问题讨论】:

【参考方案1】:

创建一个新线程,并在上面做你需要的一切,这不会挂起主窗体,用户将看不到任何你可以看到类似功能的东西here

【讨论】:

以上是关于Delphi:FireDac 连接阻止应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Delphi XE FireDac 连接池

Delphi东京版FireDAC连接MSSQL2000提示对象名 'SYS.DATABASES' 无效

delphi7能用firedac吗

Delphi 和 Firedac:查询活动与查询打开

Delphi Firedac TFDtable 开放问题

Delphi:从 IBO 迁移到 FireDac