Конференция "Базы" » уведомление из FireBird приложения [D7, FB2.1]
 
  • Karburator (17.12.08 06:41) [0]
    Здравствуйте, идет долгая работа хранимой процедуры, как мне посылать в приложение (написанное на делфи) уведомление об обработке следующей сотни записей? И как ловить это уведомление в приложении?
  • Сергей М. © (17.12.08 08:50) [1]

    > как мне посылать в приложение .. уведомление
    > об обработке следующей сотни записей


    А собссно зачем ?
    Мне как потенциальному пользователю клиентской части твоего приложения абсолютно индифферентно что там и как делает сервер, мне нужно лишь знать что "система не зависла" и идет выполнение затребованной мной операции..
  • Karburator (17.12.08 09:21) [2]
    ну как же, если операция работы с бд длится хотя бы минуты, то думаю для пользователя нужно обязательно организовать в клиентской части отображение прогресса с ходом процесса
  • Karburator (17.12.08 09:23) [3]
    вот именно для того чтобы знать
  • Sergey13 © (17.12.08 09:28) [4]
    Самое простое, имхо, в ХП писать некое значение в некую таблицу и читать его от туда в приложении.
  • Johnmen © (17.12.08 09:28) [5]
    Это занятие бестолковое. Ибо евент всё одно придет после подтверждения транзакции.
  • Сергей М. © (17.12.08 09:38) [6]

    > после подтверждения транзакции


    +1

    А до ее подтверждения клиентом говорить о проценте обработанности чего-то там на сервере говорить попросту бессмысленно.
  • Сергей М. © (17.12.08 09:40) [7]

    > Karburator   (17.12.08 09:21) [2]


    Покажи юзеру анимашку, просто развлеки его на эту минуту.
    Можно и просто туда-сюда погонять ползунок какого-нить "бара" - юзеру этого будет вполне достаточно для успокоения.
  • Karburator (17.12.08 10:36) [8]
    > Можно и просто туда-сюда погонять ползунок какого-нить "бара" - юзеру этого будет вполне достаточно для успокоения.
    :))
    А если у меня запускаются последовательно несколько тяжелых ХПшек внутри одной ХПшки на сервере, то стало быть если после каждой подтверждать транзакцию и по совету заносить значение в таблицу отображающую количество завершенных ХП и которую постоянно читать клиентом, то я частично решу проблему уведомления клиента о работе сервера?
  • Сергей М. © (17.12.08 11:12) [9]

    > Karburator   (17.12.08 10:36) [8]


    Это уж тебе решать насчет подтверждения ТА ..
    Но если она подтверждена, то и таблица не нужна - достаточно post_event
  • Правильный$Вася (17.12.08 11:16) [10]

    > А если у меня запускаются последовательно несколько тяжелых
    > ХПшек внутри одной ХПшки на сервере, то стало быть если
    > после каждой подтверждать транзакцию

    то в этом случае нафиг не нужна та самая ХП-вызывалка со всей мутотней с временными записями
    гораздо удобнее вызывать эти ХП из клиента по очереди и индицировать вызовы в окошке
    кроме того, это можно сделать, не завершая транзакции после каждой ХП, если логика работы так требует
    (уж не знаю, ввели ли возможность коммита внутри ХП в двойке, раньше не было)
  • PEAKTOP © (17.12.08 17:56) [11]
    > (уж не знаю, ввели ли возможность коммита внутри ХП в двойке, раньше не было)

    COMMITа - пока нет, зато можно выполнить кусок кода внутри ХП, триггера или PSQL-блока в другой транзакции, и даже в другом подключении. Если этот блок кода выполнится успешно, то автономной транзакции наступит COMMIT, иначе - ROLLBACK

    http://firebirdsql.su/doku.php?id=autonomous_transaction
    http://firebirdsql.su/doku.php?id=execute_statement
 
Конференция "Базы" » уведомление из FireBird приложения [D7, FB2.1]
Есть новые Нет новых   [134477   +39][b:0][p:0.001]