powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / выполнении транзакции в процедуре
2 сообщений из 2, страница 1 из 1
выполнении транзакции в процедуре
    #32375910
AAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Столкнулся с такой проблемой при выполнении процедуры появляется какой то баг с запуском транзакции, а именно не выполняется оператор begin transaction, что характерно commit transaction исполняется. Вроде как понятно что проблема в совпадении слов begin у процедуры и транзакции, т.е. begin из begin transaction воспринимается как начало процедуры.
Вот хотелось бы узнать как этого можно избежать

вот такой пример:

ALTER procedure ue_trans
(In ue_nst text,
In ue_date text)
begin
begin transaction;/*ошибка*/
insert ul(nst,drg)
values (ue_nst,ue_date);
commit transaction;
end

Спасибо за внимание!
...
Рейтинг: 0 / 0
выполнении транзакции в процедуре
    #32376275
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх, когда же все приучаться писать имя и версию СУБД :)

По проблеме:
В ASA 2 диалекта - TSQL и WatcomSQL. Для TSQL есть команда явного старта транзакции BEGIN TRANSACTION, для WatcomSQL ее нет - любая команда изменения данных INSERT, UPDATE, DELETE неявно стартует транзакцию, если ее еще нет. Для обоих диалектов откат и сохранение транзакции должно быть явно выполнено с помощью операторов ROLLBACK и COMMIT. Так же для WatcomSQL есть возможность делать точки сохранения внутри транзакции, для возможности отката только нужной части транзакции 2 способами, явным, через :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
BEGIN
  SAVEPOINT <PointName>;
   -- operators
 
EXCEPTION
  WHEN OTHERS THEN
    ROLLBACK TO SAVEPOINT <PointName>;
    RESIGNAL;
END

или неявным, в виде атомарного блока:
Код: plaintext
1.
2.
3.
BEGIN ATOMIC
   -- operators
 
END
Причем оба вышепреведенных примера идентичны по способу работы.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / выполнении транзакции в процедуре
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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