Как отследить разрыв соединения с базой(FireBird)?

MerlinWT
Дата: 02.07.2009 16:57:31
Имеется TIBConnecte - соединение с базой на удаленном сервере. В результате сбоев в сети или работы сервера происходит потеря соединения. При этом свойство TIBConnecte.Connected остается равным True.
При попытке выполнения запроса возникает ошибка "Удаленный хост разорвал соединение..."
Можно как то предотвратить появление таких ошибок?
Dimitry Sibiryakov
Дата: 02.07.2009 17:03:17

MerlinWT
Можно как то предотвратить появление таких ошибок?

Устранять причины сбоев сети.

Posted via ActualForum NNTP Server 1.4

wellwell
Дата: 02.07.2009 17:04:22
Можно, сеть например починить.
MerlinWT
Дата: 02.07.2009 17:05:50
Dimitry Sibiryakov

MerlinWT
Можно как то предотвратить появление таких ошибок?

Устранять причины сбоев сети.


Хотелось бы ловить эти гадости именно программно. Может есть какая функция или другой какой инструмент для отслеживания реального состояния соннекта?
Dimitry Sibiryakov
Дата: 02.07.2009 17:09:27

MerlinWT

инструмент для отслеживания реального состояния соннекта?

Если вылазит ошибка при попытке послать запрос - значит коннект упал.

Posted via ActualForum NNTP Server 1.4

MerlinWT
Дата: 02.07.2009 17:11:23
Я то понимаю что коннект упал. А ПРОГРАММНО как это проверить, перед тем как зарос выполнять?
Гаджимурадов Рустам
Дата: 02.07.2009 17:21:11
Выполнить перед нужным запросом пустой запрос. :)
Кроик Семён
Дата: 02.07.2009 17:23:08
>> MerlinWT : Я то понимаю что коннект упал.
>> MerlinWT : А ПРОГРАММНО как это проверить, перед тем как зарос выполнять?


try
   exec(простой запрос типа "select 1 from dual")
except
   реакция на "потерю коннекта"      
end;
MerlinWT
Дата: 02.07.2009 17:27:48
Гаджимурадов Рустам
пустой запрос. :)


А это какой запрос пустой? Что то типа "select * from table"?... Уж слишком как то...не универсально =)
Гаджимурадов Рустам
Дата: 02.07.2009 17:34:09
MerlinWT
А это какой запрос пустой? Что то типа "select * from table"?...
Почти.
Select 1 From RDB$Database

MerlinWT
Уж слишком как то...не универсально =)

Почему это? Универсальность и простота - единственные достоинства этого метода. :)
Он просто суперуниверсален и не зависит ни от чего - ни от момента вызова, ни от
компонент доступа, ни даже от СУБД.