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 连接阻止应用程序的主要内容,如果未能解决你的问题,请参考以下文章