powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как сделать commit в ХП?
6 сообщений из 6, страница 1 из 1
Как сделать commit в ХП?
    #39201544
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер, форумчане. Помогите разобраться.
Это мессенджер с 2-мя параметрами входящими: отправитель :precep_id, и получатель :pmy_id.

Есть такой вот код:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
begin
  FOR SELECT ... бла бла ...
    FROM ... бла бла ...
    WHERE ... бла бла ...
    ORDER BY ... бла бла ...
    INTO :msg                            // Тут вернули сообщение от отправителя получателю
  DO
    BEGIN
      execute procedure upd_message_readed(:pmy_id, :precep_id);  // Здесь ОЧЕНЬ ХОЧЕТСЯ отметить что сообщение было прочитано.
      SUSPEND;
    END
end.



Проблема в том что через IBExpert при вызове процедуры все отрабатывает как надо, если нажать COMMIT, но через Delphi+Fib не понимаю как сделать Commit, если использую не StoredProc, а DataSet.

Предполагаю, т.к. вызов ХП происходит из ХП, можно как-то коммитить и без Delphi?
...
Рейтинг: 0 / 0
Как сделать commit в ХП?
    #39201546
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чуть не забыл показать код процедуры UPD_MESSAGE_READED, вот он:

Код: plsql
1.
2.
  UPDATE chat SET Msg_state=1
  WHERE Msg_to=:puser_id AND Msg_from=:precep_id;
...
Рейтинг: 0 / 0
Как сделать commit в ХП?
    #39201564
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsitesчерез Delphi+Fib не понимаю как сделать Commi
Открой справку на TpFIBTransaction.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как сделать commit в ХП?
    #39201566
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsitesПроблема в том что через IBExpert при вызове процедуры все отрабатывает как надо, если нажать COMMIT, но через Delphi+Fib не понимаю как сделать Commit, если использую не StoredProc, а DataSet.

точно так же Transaction.Commit();

Хотя идея дурацкая. Откуда уверенность в том, что если запись отфетчена, то она обязательно прочитана?
...
Рейтинг: 0 / 0
Как сделать commit в ХП?
    #39201606
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

может идея дурацкая по реализации, но вот по смыслу... а какие могут быть гарантии что она прочитана? :) По умолчанию - была открыта, значит прочитана. В случае exception уже не важно прочитана или нет, в истории она все равно будет.
...
Рейтинг: 0 / 0
Как сделать commit в ХП?
    #39201845
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsitesможно как-то коммитить и без Delphi?
можно, но только в автономной транзакции. см. документацию на SQL Firebird:
http://www.ibase.ru/files/firebird/langref25rus/index.html#langref25-psql-operators-execstmt
with autonomous transaction.
Но это "продвинутое использование", других вариантов нет, обычный коммит с клиента из компонент.
Работать с FIBPlus и спрашивать про транзакции, когда есть весьма полная статья
http://www.devrace.com/ru/fibplus/articles/2165.php
это, извините, ни в какие ворота.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как сделать commit в ХП?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]