Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.016 c
3-43335
Expo
2004-02-13 15:24
2004.03.14
Дата в RxQuery


3-43249
Belkova
2004-02-13 12:03
2004.03.14
DBGrid


3-43403
ivb2001
2004-02-11 15:15
2004.03.14
Locate в InterBase


6-43731
IrviS
2004-01-05 14:31
2004.03.14
Загрузить gif с веб ресурса в Image


7-43916
Lisa
2003-12-16 17:04
2004.03.14
имя CD




   Наверх