Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.08;
Скачать: CL | DM;

Вниз

решение проблемы обрыва коннекта в IBX   Найти похожие ветки 

 
GanibalLector ©   (2004-07-13 20:21) [0]

Вот,опять хотел вернуться к этой проблеме.Завтра намечается свободный день и,соответственно,хочу попробовать.Итак,на ibase.ru две статьи по этому поводу.
http://www.ibase.ru/fibc/ibx_disc.htm
http://www.ibase.ru/devinfo/ibx_connect.txt
Вопрос,а какую из этих статей применять???Дальше больше...после изменений,которые описаны в этих статьях,я думал что появится новое событие.Но внимательно пригляделся к САБЖу и увидел,что нового события не будет.Соответственно,возникает второй вопрос,как отловить обрыв коннекта???

З.Ы. Может не мучаться с IBX,а у китайцев взять FibPlus???Говорят,что там-то есть такое событие(это я про обрыв).


 
jack128 ©   (2004-07-13 20:34) [1]


> Но внимательно пригляделся к САБЖу и увидел,что нового события
> не будет.Соответственно,возникает второй вопрос,как отловить
> обрыв коннекта???


Открываю http://www.ibase.ru/devinfo/ibx_connect.txt и что же я вижу?
А вижу я следующее:
------начало цитаты------------------
К сожалению, в конце процедуры TIBDatabase.InternalClose уже не будет
работать IBDatabaseError. Я поместил туда простой эксепшн:

 if FLostConnection then          // все-таки надо что-то сообщить
   raise Exception.Create("Connection lost!");  // ivan_ra

Правильней будет форматировать его как это делается в IBDatabaseError,
но в принципе, юзеру и так должно быть понятно: программу надо завершать
или подключаться по новой
------------конец цитаты-------------------------------------------
не думаю, чтоо нужно иметь семь пядей во лбу, чтобы догадаться как сделать событие OnConnectionLost ....


 
GanibalLector ©   (2004-07-13 20:51) [2]

2 jack128
М-да...я видел то.Но не придал особого значения.

>не думаю, чтоо нужно иметь семь пядей во лбу, чтобы догадаться как сделать событие OnConnectionLost ....
Пардон,но не знаю как.Подскажи.

З.Ы. Пардон конечно,но занимаюсь самообразованием(по книжкам и т.д)...Поэтому такие вопросы.


 
jack128 ©   (2004-07-13 21:14) [3]


> Пардон конечно,но занимаюсь самообразованием(по книжкам
> и т.д)...
я тоже. Надо заметить, что большенство обитателей форума(исключая майско-декабрьские наплывы студентов) не учились программированию в ВУЗе.


> Пардон,но не знаю как.Подскажи.

type
 TIbDataBase = class
 private
   FOnConnectionLost: TNotifyEvent;
 protected
   procedure DoConnectionLost; dynamic;
 published
   property OnConnectionLost: TNotifyEvent read FOnConnectionLost write FOnConnectionLost;
 end;

procedure TIbDataBase.DoConnectionLost;
begin
 if Assigned(FOnConnectionLost) then
   FOnConnectionLost(Self);
end;

теперь вызываешь процедуру  DoConnectionLost в том месте где ivan_ra поднял исключение. Только учти, весьма вероятно, что в этом событии ты НЕ сможешь по новой подключиться к базе. Зависит от кода, который вызывает InternalClose...


 
GanibalLector ©   (2004-07-13 21:39) [4]

Большое спасибо.Ща попробую.



Страницы: 1 вся ветка

Текущий архив: 2004.08.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
1-1090272049
кактусбел
2004-07-20 01:20
2004.08.08
как найти все фаилы определенного типа в каталоге


1-1090574579
Юрий Ж.
2004-07-23 13:22
2004.08.08
Всплываюий Panel


8-1085146010
tse
2004-05-21 17:26
2004.08.08
mp3


3-1089957600
Pipl
2004-07-16 10:00
2004.08.08
Ошибка при выполнении динамического запроса


4-1086328608
atruhin
2004-06-04 09:56
2004.08.08
Работа с GUI из сервиса