СУБД Firebird 1.5.3, язык - Delphi, ср.доступа - FIBPlus
Вопрос такой: хочу сделать обработку потери подключения к БД (по книге "Мир Interbase 3") НО там для примера рассмотрена одна форма (и один Dataset), на которой лежат все FIB-овские компоненты, и следовательно все процедуры тоже описаны в модуле данной формы (в общем, там все просто).
У меня же несколько иная ситуация:
- есть DataModule, есть форма "Сообщение", на которой есть выпад.список действий: "Отключиться от БД", "Закрыть приложение", "Восстановить соединение" и нужно, чтобы при OnLostConnect компонента Database открывалась модально эта форма, я бы выбирал значение из списка и в зависимости от выбора в "Actions" ("Actions" - это переменная процедуры "OnLostConnect") подставлялось одно из значений "laCloseConnect", "laTerminateApp", "laWaitRestore".
вот код (по аналогии с книгой):
Код: Выделить всё
procedure TDM.DBLostConnect(Database: TFIBDatabase; E: EFIBError;
var Actions: TOnLostConnectActions);
begin
AttemptRest:= 0;
//открываю свою форму предупреждения об ошибке
FMes:= TFMes.Create(nil);
FMes.ShowModal;
case FMes_OnLostConnect.cmbKindOnLost.ItemIndex of
//закрываем активное подключение
0: Actions:= laCloseConnect;
//закрываем приложение
1: Actions:= laTerminateApp;
//пытаемся восстановить подключение к БД
2: Actions:= laWaitRestore;
end;
end;
работает (т.е. "Actions"-ам присваиваются значения) только после закрытия формы "Сообщение": в принципе для случая "Отключения от БД" и "Закрытия приложения" все меня устраивает, НО!!! мне нужно чтобы в случае, если на форме "Сообщение" было выбрано значение "Восстановить подключение", тогда на этой форме должно отображаться и количество попыток подключения к БД, т.е. форма должна оставаться открытой, и при этом каким-то образом надо в процедуру "onLostConnect" передать значение "Actions"-а.
2) ну и сразу 2-ой вопрос (если по первому кто-то что-то понял): опять же в книге описан случай применения сделанных
изменений после восстановления подключения для одного конкретного Dataset-а, а как быть, если я хочу применить все сделанные изменения в нескольких Dataset-ах.
Может кто приведет пример всего этого, если есть желание.
Заранее спасибо!