![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
уведомление из FireBird приложения [D7, FB2.1]
Karburator © (2008-12-17 06:41:00)Здравствуйте, идет долгая работа хранимой процедуры, как мне посылать в приложение (написанное на делфи) уведомление об обработке следующей сотни записей? И как ловить это уведомление в приложении?
PEAKTOP (2008-12-17 17:56:00) [1]> (уж не знаю, ввели ли возможность коммита внутри ХП в двойке, раньше не было)
COMMITа - пока нет, зато можно выполнить кусок кода внутри ХП, триггера или PSQL-блока в другой транзакции, и даже в другом подключении. Если этот блок кода выполнится успешно, то автономной транзакции наступит COMMIT, иначе - ROLLBACK
http://firebirdsql.su/doku.php?id=autonomous_transaction
http://firebirdsql.su/doku.php?id=execute_statement
Правильный$Вася (2008-12-17 11:16:00) [2]
> А если у меня запускаются последовательно несколько тяжелых
> ХПшек внутри одной ХПшки на сервере, то стало быть если
> после каждой подтверждать транзакцию
то в этом случае нафиг не нужна та самая ХП-вызывалка со всей мутотней с временными записями
гораздо удобнее вызывать эти ХП из клиента по очереди и индицировать вызовы в окошке
кроме того, это можно сделать, не завершая транзакции после каждой ХП, если логика работы так требует
(уж не знаю, ввели ли возможность коммита внутри ХП в двойке, раньше не было)
Сергей М. (2008-12-17 11:12:00) [3]
> Karburator (17.12.08 10:36) [8]
Это уж тебе решать насчет подтверждения ТА ..
Но если она подтверждена, то и таблица не нужна - достаточно post_event
Karburator (2008-12-17 10:36:00) [4]> Можно и просто туда-сюда погонять ползунок какого-нить "бара" - юзеру этого будет вполне достаточно для успокоения.
:))
А если у меня запускаются последовательно несколько тяжелых ХПшек внутри одной ХПшки на сервере, то стало быть если после каждой подтверждать транзакцию и по совету заносить значение в таблицу отображающую количество завершенных ХП и которую постоянно читать клиентом, то я частично решу проблему уведомления клиента о работе сервера?
Сергей М. (2008-12-17 09:40:00) [5]
> Karburator (17.12.08 09:21) [2]
Покажи юзеру анимашку, просто развлеки его на эту минуту.
Можно и просто туда-сюда погонять ползунок какого-нить "бара" - юзеру этого будет вполне достаточно для успокоения.
Сергей М. (2008-12-17 09:38:00) [6]
> после подтверждения транзакции
+1
А доее подтверждения клиентомговорить о проценте обработанности чего-то там на сервере говорить попросту бессмысленно.
Sergey13 (2008-12-17 09:28:00) [7]Самое простое, имхо, в ХП писать некое значение в некую таблицу и читать его от туда в приложении.
Johnmen (2008-12-17 09:28:00) [8]Это занятие бестолковое. Ибо евент всё одно придет после подтверждения транзакции.
Karburator (2008-12-17 09:23:00) [9]вот именно для того чтобы знать
Karburator (2008-12-17 09:21:00) [10]ну как же, если операция работы с бд длится хотя бы минуты, то думаю для пользователя нужно обязательно организовать в клиентской части отображение прогресса с ходом процесса
Сергей М. (2008-12-17 08:50:00) [11]
> как мне посылать в приложение .. уведомление
> об обработке следующей сотни записей
А собссно зачем ?
Мне как потенциальному пользователю клиентской части твоего приложения абсолютно индифферентно что там и как делает сервер, мне нужно лишь знать что "система не зависла" и идет выполнение затребованной мной операции..