Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проверка состояния соединения, microsoft sql server 
:(
    Опции темы
0x00
Дата 23.7.2010, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 3.4.2006

Репутация: нет
Всего: нет



У oracloвских компонент есть beforedisconnect событие, посмотрите может и в ADO они есть, посоветовал бы смотреть в их сторону.
PM MAIL   Вверх
mrbrooks
Дата 23.7.2010, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



народ. читайте документацию. я это еще во втором посте написал.

курим хелп, пепел вдыхаем

Цитата(0x00 @  23.7.2010,  09:12 Найти цитируемый пост)
У oracloвских компонент есть beforedisconnect событие, посмотрите может и в ADO они есть, посоветовал бы смотреть в их сторону. 


у них у всех папа с мамой один. конечно же есть.
PM MAIL   Вверх
t4aynik
Дата 23.7.2010, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.6.2010

Репутация: нет
Всего: нет



Цитата(0x00 @  23.7.2010,  08:12 Найти цитируемый пост)
У oracloвских компонент есть beforedisconnect событие, посмотрите может и в ADO они есть, посоветовал бы смотреть в их сторону.

а толку с него? оно отработает перед запуском дисконнекта, а если произошел разрыв соединения, а само приложение не видит что коннект потерян, и узнает, что проблема только при обращении к соединению...
PM MAIL   Вверх
mrbrooks
Дата 23.7.2010, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Цитата(t4aynik @  23.7.2010,  13:15 Найти цитируемый пост)
а само приложение не видит что коннект потерян

поясни?
PM MAIL   Вверх
t4aynik
Дата 26.7.2010, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.6.2010

Репутация: нет
Всего: нет



допустим связано два компа, не напрамую кабелями а например через два коммутатора. Когда они непрерывно передают данные друг другу то тут все понятно, соединение пропало ошибка передачи данных. Если рвется коннект между компом и коммутатором, в частности физически, тоже более менее просто - ОС чаще всего видит проблему как отключение кабеля (частность). А вот если проблема на линии случилась гдето между коммутаторами, как операционка и приложение узнают что случилась беда? пока не будут переданы какие либо данные никто ничего не узнает. т.е. фактически коннект разорван, а никакого события а ля OnDisconnect не случится. И мы получаем все ту же ошибку при отсылке данных. Которую мы должны корректно отработать - перехватить в исключении и сделать разрыв/уничтожение текущего соединения, и создать его заново. Сторона которая должна получать данные в этом плане проигрывает - т.к. об ошибке она может так просто не узнать. Для таких проблем умные люди придумали keep alive - служебные пакеты, что передаются операционкой автоматически раз в заданный переиод простоя соединения, с дальнешими попытками восстановления соединения при возникновении проблемы. Если восстановить не получилось - передает приложению ошибку, чтоб то не потело, не мучалось и не ждало свой таймаут. (в винде по дефолту отключено) Это общая идея для сокетов. 
В плане соединений БД почти никаких отличий вроде как нет - то же сокет соедние, только спрятанное в средства работы с БД, кроме как поддержки keep alive средствами БД, но вроде как далеко не везде.  Засим предлагаю еще раз запихнуть все ваши обращения к БД в исключения. Так будет надежнее всего, даже есть есть какие-нибудь средства для контроля состояния коннекта, вы будет сами контролировать все проблемы с соединением. 
ЗЫ.: В билдере по дефолту появляется сообщение об ошибке даже если она произошла в исключении, это отключаемо.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1246 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.