Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.45 MB
Время: 0.01 c
1-43515
Charly22
2004-02-28 17:38
2004.03.14
Использование словарей


1-43551
Fants
2004-02-27 19:07
2004.03.14
TreeView


1-43599
Zelius
2004-03-02 13:33
2004.03.14
Вопрос по TActionManager


14-43863
VID
2004-02-20 19:04
2004.03.14
Зацените плиз


3-43270
Zilog
2004-01-23 13:25
2004.03.14
DBGrid - напонятный глюк.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский