В асинхронном режиме вы можете перехватить ошибку в обработчике события OnExecuteComplete
вашего объекта TADOConnection
.Вы можете использовать объекты EventStatus
и Error
, чтобы определить, была ли проблема.Error.Description
выдаст вам ошибку, возвращенную сервером базы данных.
PS: воздержитесь от использования Application.ProcessMessages
в своем коде, так как это не требуется, поскольку вы используете асинхронные запросы, и это может привести к непредвиденному событию.сценарии повторного входа.
Пример:
procedure TForm1.ADOConnection1ExecuteComplete(Connection: TADOConnection; RecordsAffected: Integer; const Error: Error;
var EventStatus: TEventStatus; const Command: _Command; const Recordset: _Recordset);
begin
if EventStatus = esErrorsOccured then
begin
memo1.Lines.add(Error.Description);
// recover from error here
end;
end;