Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

решение проблемы обрыва коннекта в IBX [D5, IB или FB]


GanibalLector ©   (2004-07-13 20:21:00) 

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

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


GanibalLector   (2004-07-13 21:39:00) [1]

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


jack128   (2004-07-13 21:14:00) [2]


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


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

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 20:51:00) [3]

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

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

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


jack128   (2004-07-13 20:34:00) [4]


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


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

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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо