|
![]() |
#1 |
северный Будда
|
Мне кажется, что ставить ttsbegin/ttscommit внутри update - не очень хорошая идея.
Как правило, исполнять в одной транзакции надо не только внутреннюю логику update, но и внешние действия. А если там транзакция уже открыта, то внутри update она не нужна. Словом, автору бы лучше найти ttscommit, подтверждающий выполнение update, а уже после него делать действия. Хотя у меня есть сомнения, что ему на самом деле надо что-то делать именно после ttscommit, а не после update.
__________________
С уважением, Вячеслав |
|
![]() |
#2 |
Axapta
|
При необходимости ставить ttsbegin/ttscommit внутри update это как раз хорошая идея. Никакой метод (update или любой другой) не должен думать о необходимости открытия транзакции при его вызове. Если логика самого метода предполагает, что некоторый код в нем должен выполняться в рамках транзакции, то ttsbegin/ttscommit там должен быть. Для примера см. InventTable.update(), InventTrans.update() и прочие таблицы. Правда к вопросу топикстартера это не относится.
|
|
![]() |
#3 |
Участник
|
Цитата:
У МССКЛ присутствую т.н. "именованные" транзакции, но логика их работы абсолютно не такая, как кажется - не получится откатить 1 транзакцию и оставить активными другие! В Оракле есть т.н. автономные транзакции, которые работают независимо, но это опять же не наш случай! Так что мая ИМХА - если update должен работать внутри транзакции, то об этом должен позаботиться ВЫЗЫВАЮЩИЙ, а не надеяться на то, что где-то, кто-то стартанёт её !
__________________
Axapta 3.0 sp - хз какой, kr2 |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|