Форум: "Базы";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];
Вниз
Теория коннекта Найти похожие ветки
← →
Санек (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.014 c