Delphi: FireDac Connection блокирует приложение
Я работаю над приложением с формой входа при запуске.
Пока пользователь не пишет данные для входа в систему, я хотел бы незаметно подключиться к серверу 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 ответ
Решение
Создайте новую тему и сделайте для нее все, что нужно, чтобы основная форма не зависала, а пользователь не увидит ничего, что вы могли бы увидеть в этой игре.