Главная страница
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
14-43893
Тимохов
2004-02-20 15:31
2004.03.14
Что с датой на сервере?


9-43236
Unknown user
2003-07-24 19:27
2004.03.14
Быстрый вывод в OpenGL.


1-43574
Delph
2004-02-27 16:29
2004.03.14
Alignment и TEdit


7-43921
guru-ru
2003-12-13 09:17
2004.03.14
Проблемы с COM


3-43246
SM
2004-02-18 16:43
2004.03.14
Как в IB в таблице или просмотре создать Lookup поле