Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.27;
Скачать: CL | DM;

Вниз

Как поймать обрыв коннекта?   Найти похожие ветки 

 
Девушка ©   (2007-09-13 12:51) [0]

Добрый день!
Пишу клиентское приложение для бд InterBase,
использую стандартные компоненты вкладки INterBase.

Вопрос:
как поймать обрыв соединения с базой во время работы пользователя, и вместо того чтобы говорить что все - пришло ему нехорошо - взять - ди и переподключится :)
?


 
Sergey13 ©   (2007-09-13 13:12) [1]

> [0] Девушка ©   (13.09.07 12:51)

На ibase.ru были статейки на эту тему.
Почему бы пользователю, которому сказано, "пришло ему нехорошо" просто не взять, да и перезапустить программу в штатном режиме.
ИМХО самое приемлемое и простое решение.


 
Anatoly Podgoretsky ©   (2007-09-13 13:15) [2]

Так и сказать и вот Оно пришло, попробуйте позже может Оно уйдет.
Логика программы может быть настолько сложной, что просто восстановление соединения не поможет, надо много инициализировать с нуля.
А вот сообщение пользователю и администратору должно быть дружественным и каждому свое.


 
Девушка ©   (2007-09-14 13:49) [3]


> просто не взять, да и перезапустить программу в штатном
> режиме.

так и делаем... но данные пользователя теряются.... не грузить же все в ClientDataSet...


 
Девушка ©   (2007-09-14 13:51) [4]


> Так и сказать и вот Оно пришло, попробуйте позже может Оно
> уйдет.
> Логика программы может быть настолько сложной, что просто
> восстановление соединения не поможет, надо много инициализировать
> с нуля.
> А вот сообщение пользователю и администратору должно быть
> дружественным и каждому свое.


т.е. копать в сторону ручного вылавливания потери коннекта и восстановления соединения с учетом обновления данных...

FIBPlus - не сделаю чать работы за меня? :-[


 
Desdechado ©   (2007-09-14 13:53) [5]

> так и делаем... но данные пользователя теряются...
Может, лечить причину, а не следствие?


 
Девушка ©   (2007-09-14 13:56) [6]


> Может, лечить причину, а не следствие?

всмысле обрыв соединения??????????
запрещать падение сети???


 
Desdechado ©   (2007-09-14 14:04) [7]

> запрещать падение сети???
Ни запрещать, а не допускать.


 
Sergey13 ©   (2007-09-14 14:07) [8]

> [3] Девушка ©   (14.09.07 13:49)
> но данные пользователя теряются

Какие данные? Почему теряются?


 
Anatoly Podgoretsky ©   (2007-09-14 14:20) [9]

Все таки лучше запрещать, так надежнее.


 
Девушка ©   (2007-09-14 14:22) [10]


> Anatoly Podgoretsky ©   (14.09.07 14:20) [9]
> Все таки лучше запрещать, так надежнее.


:)))))))))))))))))))))))))))))))


 
Девушка ©   (2007-09-14 14:23) [11]


> Какие данные? Почему теряются?

вводил человек кучу данных, решил их сохранить ,а тут сетка падала оказывается.. и программа ему вежливо предлагает перезапустить её.... ужос


 
Ega23 ©   (2007-09-14 14:27) [12]


> вводил человек кучу данных, решил их сохранить ,а тут сетка
> падала оказывается.. и программа ему вежливо предлагает
> перезапустить её.... ужос


Update по одной записе делай.


 
Lacmus ©   (2007-09-14 14:30) [13]

>Девушка ©   (14.09.07 14:23) [11]

Использовать обработчик OnPostError ?


 
Anatoly Podgoretsky ©   (2007-09-14 15:11) [14]

> Девушка  (14.09.2007 14:23:11)  [11]

Записывать по одной, при обрыве локальное сохранение, при восстановление вежливое предложение восспользоваться сохраненым.


 
Sergey13 ©   (2007-09-14 15:23) [15]

> [11] Девушка ©   (14.09.07 14:23)

Тут надо очень конкретно разбираться куда вводил, что за данные вводил. Я к тому, что восстановив соединение, может быть достаточно проблемматично попасть в ту же дырку, куда стреляла до обрыва. БД будет уже может быть в совершенно другом состоянии.


 
Desdechado ©   (2007-09-14 15:29) [16]

> БД будет уже может быть в совершенно другом состоянии.
Однозначно, если не однопользовательская.
Уже могли и справочники поредактировать, и поудалять/поизменять то, от чего зависели вводимые данные.


 
Девушка ©   (2007-09-19 13:03) [17]


> > БД будет уже может быть в совершенно другом состоянии.

ну это может быть и без обрыва...


 
Девушка ©   (2007-09-19 13:06) [18]


>
> Update по одной записе делай.

очень уж пользователи хотят чтоб была кнопочка "ОТМЕНА"...
что можно было не сразу в базе изменения делать


 
Anatoly Podgoretsky ©   (2007-09-19 13:17) [19]

> Девушка  (19.09.2007 13:06:18)  [18]

Могила, день работы и все насмарку.
А записи по базе прошли? Тогда еще и них тоже самое.


 
Sergey13 ©   (2007-09-19 13:39) [20]

> [17] Девушка ©   (19.09.07 13:03)
> ну это может быть и без обрыва&#133

Может, да не так. Без обрыва лечится на раз.

> [18] Девушка ©   (19.09.07 13:06)
> очень уж пользователи хотят чтоб была кнопочка «ОТМЕНА»&#133
> что можно было не сразу в базе изменения делать

Это надо в сторону [псевдо] 3-х звенки копать.

Но я бы посоветовал приучать пользователей к порядку.


 
Petr V. Abramov ©   (2007-09-19 23:27) [21]

> Уже могли и справочники поредактировать, и поудалять/поизменять то, от чего зависели вводимые данные.
это может быть и после перекура юзера при целехоньком коннекте. Решение, наверное, такое (сам на этот счет думаю):
если с клиента был DML или блокировка -  ессно, с начала транзакции все пропадет, к великому горю юзера. Безгеморройно отследить, был ли DML или блокировка, мешают вызовы хранимок :), пока не знаю, как без выполнения допзапросов понять, меняли ли они систему.



Страницы: 1 вся ветка

Текущий архив: 2008.01.27;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.011 c
15-1198132117
I
2007-12-20 09:28
2008.01.27
наиболее функиональный выход в irc через jabber клиент


11-1182819162
SPeller_work
2007-06-26 04:52
2008.01.27
Реализация интерфейсов


15-1198205404
Slider007
2007-12-21 05:50
2008.01.27
С днем рождения ! 21 декабря 2007 пятница


15-1198337868
Evgeniy
2007-12-22 18:37
2008.01.27
Что такое BigInt?


2-1198511187
@!!ex
2007-12-24 18:46
2008.01.27
Вопрос про многопоточность.