Delphi:阻止应用程序的FireDac连接

时间:2014-06-30 19:00:23

标签: delphi firedac

我在启动时使用登录表单工作。

在用户编写登录数据之前,我想谨慎地连接到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 个答案:

答案 0 :(得分:2)

创建一个新线程,并在其上执行所需的一切,不会挂起主窗体,用户也看不到任何可以看到simillar功能的内容here