![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как поймать обрыв коннекта? [D7, IB 7.x]
Девушка © (2007-09-13 12:51:00)Добрый день!
Пишу клиентское приложение для бд InterBase,
использую стандартные компоненты вкладки INterBase.
Вопрос:
как поймать обрыв соединения с базой во время работы пользователя, и вместо того чтобы говорить что все - пришло ему нехорошо - взять - ди и переподключится :)
?
Petr V. Abramov (2007-09-19 23:27:00) [1]> Уже могли и справочники поредактировать, и поудалять/поизменять то, от чего зависели вводимые данные.
это может быть и после перекура юзера при целехоньком коннекте. Решение, наверное, такое (сам на этот счет думаю):
если с клиента был DML или блокировка - ессно, с начала транзакции все пропадет, к великому горю юзера. Безгеморройно отследить, был ли DML или блокировка, мешают вызовы хранимок :), пока не знаю, как без выполнения допзапросов понять, меняли ли они систему.
Sergey13 (2007-09-19 13:39:00) [2]> [17] Девушка © (19.09.07 13:03)
> ну это может быть и без обрыва
Может, да не так. Без обрыва лечится на раз.
> [18] Девушка © (19.09.07 13:06)
> очень уж пользователи хотят чтоб была кнопочка «ОТМЕНА»
> что можно было не сразу в базе изменения делать
Это надо в сторону [псевдо] 3-х звенки копать.
Но я бы посоветовал приучать пользователей к порядку.
Anatoly Podgoretsky (2007-09-19 13:17:00) [3]> Девушка (19.09.2007 13:06:18) [18]
Могила, день работы и все насмарку.
А записи по базе прошли? Тогда еще и них тоже самое.
Девушка (2007-09-19 13:06:00) [4]
>
> Update по одной записе делай.
очень уж пользователи хотят чтоб была кнопочка "ОТМЕНА"...
что можно было не сразу в базе изменения делать
Девушка (2007-09-19 13:03:00) [5]
> > БД будет уже может быть в совершенно другом состоянии.
ну это может быть и без обрыва...
Desdechado (2007-09-14 15:29:00) [6]> БД будет уже может быть в совершенно другом состоянии.
Однозначно, если не однопользовательская.
Уже могли и справочники поредактировать, и поудалять/поизменять то, от чего зависели вводимые данные.
Sergey13 (2007-09-14 15:23:00) [7]> [11] Девушка © (14.09.07 14:23)
Тут надо очень конкретно разбираться куда вводил, что за данные вводил. Я к тому, что восстановив соединение, может быть достаточно проблемматично попасть в ту же дырку, куда стреляла до обрыва. БД будет уже может быть в совершенно другом состоянии.
Anatoly Podgoretsky (2007-09-14 15:11:00) [8]> Девушка (14.09.2007 14:23:11) [11]
Записывать по одной, при обрыве локальное сохранение, при восстановление вежливое предложение восспользоваться сохраненым.
Lacmus (2007-09-14 14:30:00) [9]>Девушка © (14.09.07 14:23) [11]
Использовать обработчик OnPostError ?
Ega23 (2007-09-14 14:27:00) [10]
> вводил человек кучу данных, решил их сохранить ,а тут сетка
> падала оказывается.. и программа ему вежливо предлагает
> перезапустить её.... ужос
Update по одной записе делай.
Девушка (2007-09-14 14:23:00) [11]
> Какие данные? Почему теряются?
вводил человек кучу данных, решил их сохранить ,а тут сетка падала оказывается.. и программа ему вежливо предлагает перезапустить её.... ужос
Девушка (2007-09-14 14:22:00) [12]
> Anatoly Podgoretsky © (14.09.07 14:20) [9]
> Все таки лучше запрещать, так надежнее.
:)))))))))))))))))))))))))))))))
Anatoly Podgoretsky (2007-09-14 14:20:00) [13]Все таки лучше запрещать, так надежнее.
Sergey13 (2007-09-14 14:07:00) [14]> [3] Девушка © (14.09.07 13:49)
> но данные пользователя теряются
Какие данные? Почему теряются?
Desdechado (2007-09-14 14:04:00) [15]> запрещать падение сети???
Ни запрещать, а не допускать.
Девушка (2007-09-14 13:56:00) [16]
> Может, лечить причину, а не следствие?
всмысле обрыв соединения??????????
запрещать падение сети???
Desdechado (2007-09-14 13:53:00) [17]> так и делаем... но данные пользователя теряются...
Может, лечить причину, а не следствие?
Девушка (2007-09-14 13:51:00) [18]
> Так и сказать и вот Оно пришло, попробуйте позже может Оно
> уйдет.
> Логика программы может быть настолько сложной, что просто
> восстановление соединения не поможет, надо много инициализировать
> с нуля.
> А вот сообщение пользователю и администратору должно быть
> дружественным и каждому свое.
т.е. копать в сторону ручного вылавливания потери коннекта и восстановления соединения с учетом обновления данных...
FIBPlus - не сделаю чать работы за меня? :-[
Девушка (2007-09-14 13:49:00) [19]
> просто не взять, да и перезапустить программу в штатном
> режиме.
так и делаем... но данные пользователя теряются.... не грузить же все в ClientDataSet...
Anatoly Podgoretsky (2007-09-13 13:15:00) [20]Так и сказать и вот Оно пришло, попробуйте позже может Оно уйдет.
Логика программы может быть настолько сложной, что просто восстановление соединения не поможет, надо много инициализировать с нуля.
А вот сообщение пользователю и администратору должно быть дружественным и каждому свое.