Добрый день!
Почему может не срабатывать OnConnectionLost? Я запускаю приложение, потом отключаю сетевую карту, сыпятся ошибки, но событие не вызывается.
Спасибо
Не срабатывает событие OnConnectionLost
Re: Не срабатывает событие OnConnectionLost
Чтобы включить обработчик события OnConnectionLost, установите свойство TMSConnection.Options.LocalFailover в True. Обратите внимание, чтобы использовать обработчик OnConnectionLost, вам нужно добавить юнит MemData в секцию USES вашего юнита. Пример использования OnConnectionLost:
procedure TForm1.Button1Click(Sender: TObject);
begin
MSConnection1.Options.LocalFailover := True;
MSConnection1.Open;
end;
procedure TForm1.MSConnection1ConnectionLost(Sender: TObject;
Component: TComponent; ConnLostCause: TConnLostCause;
var RetryMode: TRetryMode);
begin
RetryMode := rmReconnectExecute;
end;
В этом случае, при потере соединения SDAC попытается пересоединиться и перезапустить неудавшуюся операцию.
procedure TForm1.Button1Click(Sender: TObject);
begin
MSConnection1.Options.LocalFailover := True;
MSConnection1.Open;
end;
procedure TForm1.MSConnection1ConnectionLost(Sender: TObject;
Component: TComponent; ConnLostCause: TConnLostCause;
var RetryMode: TRetryMode);
begin
RetryMode := rmReconnectExecute;
end;
В этом случае, при потере соединения SDAC попытается пересоединиться и перезапустить неудавшуюся операцию.
Re: Не срабатывает событие OnConnectionLost
Спасибо. Почему-то в хелпе не написано про Localfailover на странице OnConnectionLost.
Re: Не срабатывает событие OnConnectionLost
Мы добавим данную информацию в документацию SDAC. Если у Вас возникнут дополнительные вопросы по использованию наших компонентов - обращайтесь.