Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Селективная процедура, меняющая данные / 6 сообщений из 6, страница 1 из 1
02.02.2014, 17:42:41
    #38546421
Kotъ-Begemotъ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Селективная процедура, меняющая данные
Я правильно понимаю, что если у меня есть селективная процедура, внутри которой меняются данные, и возвращается результат (код), выполняющаяся в "короткой" пишущей транзакции, то мне надо:

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

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

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


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

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

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


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