powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Селективная процедура, меняющая данные
6 сообщений из 6, страница 1 из 1
Селективная процедура, меняющая данные
    #38546421
Kotъ-Begemotъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я правильно понимаю, что если у меня есть селективная процедура, внутри которой меняются данные, и возвращается результат (код), выполняющаяся в "короткой" пишущей транзакции, то мне надо:

1. Выполнить её (без автокоммита) типа как SELECT ... FROM MY_STOREDPROC
2. Считать результат
3. Закоммитить (в результате чего датасет закроется, и код уже не получишь)?
...
Рейтинг: 0 / 0
Селективная процедура, меняющая данные
    #38546430
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kotъ-Begemotъ,

зачем SELECT делать

старт транзакции
Код: sql
1.
2.
EXECUTE PROCEDURE MY_STOREDPROC
RETURNING_VALUES NEW_ID


получаем код
делаем коммит
...
Рейтинг: 0 / 0
Селективная процедура, меняющая данные
    #38546431
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kotъ-Begemotъ,

по п.3 есть Commit, а есть и CommitRetaining. Зачем еще раз получать результат после п.2?
...
Рейтинг: 0 / 0
Селективная процедура, меняющая данные
    #38546437
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kotъ-Begemotъ,

может я не понял чего. Если процедура возвращает всегда 1 строку, то SELECT не нужен достаточно EXECUTE PROCEDURE. Если несколько, то без SELECT конечно не обойтись, но тут ожидает засада, т.к. если результат окажется не дофетченным, то и все модификации не пройдут. Во втором случае выкрутиться конечно можно если все результаты предварительно сложить в GTT, а потом делать из неё SELECT ... INTO ... SUSPEND;
...
Рейтинг: 0 / 0
Селективная процедура, меняющая данные
    #38546470
Kotъ-Begemotъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, спасибо! Действительно EXECUTE с RETURNING_VALUES то, что нужно!
...
Рейтинг: 0 / 0
Селективная процедура, меняющая данные
    #38546503
Kotъ-Begemotъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я просто, честно говоря, про эту опцию у EXECUTE и забыл совсем. Всё как-то больше были или чисто селективные процедуры, не модифицирующие данные, либо модифицирующие, но без вывода за ненадобностью, вот и "отстал от жизни" :-)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Селективная процедура, меняющая данные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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