Форум: "Базы";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Внизрешение проблемы обрыва коннекта в 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.029 c