Главная страница
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.025 c
4-1088166460
Дмитрий2004
2004-06-25 16:27
2004.08.08
Как можно узнать FPS


8-1085542829
Rentgen
2004-05-26 07:40
2004.08.08
Звуковой буфер


1-1090911200
faost
2004-07-27 10:53
2004.08.08
ActionToolBar с градиентной заливкой


1-1090313419
KosilkA
2004-07-20 12:50
2004.08.08
string и record


3-1089655610
Forelli
2004-07-12 22:06
2004.08.08
Работа СУБД без InterBase и Delphi.