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

Вниз

Теория коннекта   Найти похожие ветки 

 
Санек ©   (2004-02-13 18:16) [0]

Каким образом можно проверить есть ли коннект с сервером ? Как при обрыве коннекта определить что он оборвался ? Как при обрыве правильно его восстановить и где ?


 
Семен Сорокин ©   (2004-02-13 18:28) [1]

Каким образом можно проверить есть ли коннект с сервером ?
TDatabase.Connected, TADOConnection.Connected
Как при обрыве коннекта определить что он оборвался ? Как при обрыве правильно его восстановить и где ?
несколько сложнее, но может анализировать Exception в Application.onException, и пытаться реконнектиться.
А что часто коннект пропадает? Имхо, это надуманная проблема, если сбой в сети - ну перезапустит пользователь программу.


 
just me   (2004-02-13 18:41) [2]

Не все так просто. TADOConnection.Connected чудненько возвращает True, если после установления соединения его принудительно разорвать.
И проблема эта не всегда надуманная, например если коннекция рвется у сервера приложений. Тут пользователю трудно что-либо перезапустить.


 
Санек ©   (2004-02-13 18:45) [3]

Я всё это прекрасно понимаю и полностью согласен с just me, только есть же какие то разработки или идеи, не хочется изобретать велосипед


 
Санек ©   (2004-02-13 19:54) [4]

При проверке коннекта можно делать какой нибудь простой запрос и если ошибка, то значит коннекта нет. При потере коннекта можно обрабатывать код ошибки ADO - 2147467259 - он соответствует потери соединения и снова подключаться. - Это мои идеи, есть в них разум ? или можно проще ? или это вообще не правильно ? Подскажите пожалуйста, дайте дельный совет.


 
Digitman ©   (2004-02-14 11:44) [5]


> можно делать какой нибудь простой запрос и если ошибка,
> то значит коннекта нет


самая разумная идея ... в условиях когда сервер является удаленным и ВНЕ зависимости от типа сервера (неважно, MS SQL это, IB или еще какой-то)

потеря коннекта вполне м.б. связана с физическим отказом сет.транспорта, это означает НЕполучение клиентской стороной никаких сообщений с серверной стороны , в рез-те чего клиент находится в неведении о состоянии сервера .. отсюда вывод : "прощупать" сервер посылкой любого сообщения ему (хоть запрос , хоть еще что-то) ; TDI вернет отказ, в рез-те чего кл.задечые будет возвращен соотв.код ошибки


 
Digitman ©   (2004-02-14 11:45) [6]


> можно делать какой нибудь простой запрос и если ошибка,
> то значит коннекта нет


самая разумная идея ... в условиях когда сервер является удаленным и ВНЕ зависимости от типа сервера (неважно, MS SQL это, IB или еще какой-то)

потеря коннекта вполне м.б. связана с физическим отказом сет.транспорта, это означает НЕполучение клиентской стороной никаких сообщений с серверной стороны , в рез-те чего клиент находится в неведении о состоянии сервера .. отсюда вывод : "прощупать" сервер посылкой любого сообщения ему (хоть запрос , хоть еще что-то) ; TDI вернет отказ, в рез-те чего кл.задаче будет возвращен соотв.код ошибки


 
Johnmen ©   (2004-02-15 02:13) [7]

>Digitman ©

Полностью согласен...



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
4-43944
yorik
2004-01-07 16:04
2004.03.14
создание файла


3-43335
Expo
2004-02-13 15:24
2004.03.14
Дата в RxQuery


14-43827
snake1977
2004-02-22 18:17
2004.03.14
ORACLE


14-43761
Soi
2004-02-19 11:23
2004.03.14
Глючит OUTLOOK


3-43318
DimaF
2004-02-15 22:24
2004.03.14
TIBTable