Текущий архив: 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)
> ну это может быть и без обрыва…
Может, да не так. Без обрыва лечится на раз.
> [18] Девушка © (19.09.07 13:06)
> очень уж пользователи хотят чтоб была кнопочка «ОТМЕНА»…
> что можно было не сразу в базе изменения делать
Это надо в сторону [псевдо] 3-х звенки копать.
Но я бы посоветовал приучать пользователей к порядку.
← →
Petr V. Abramov © (2007-09-19 23:27) [21]> Уже могли и справочники поредактировать, и поудалять/поизменять то, от чего зависели вводимые данные.
это может быть и после перекура юзера при целехоньком коннекте. Решение, наверное, такое (сам на этот счет думаю):
если с клиента был DML или блокировка - ессно, с начала транзакции все пропадет, к великому горю юзера. Безгеморройно отследить, был ли DML или блокировка, мешают вызовы хранимок :), пока не знаю, как без выполнения допзапросов понять, меняли ли они систему.
Страницы: 1 вся ветка
Текущий архив: 2008.01.27;
Скачать: CL | DM;
Память: 0.52 MB
Время: 0.011 c