AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.12.2011, 10:17   #1  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,514 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Мне кажется, что ставить ttsbegin/ttscommit внутри update - не очень хорошая идея.
Как правило, исполнять в одной транзакции надо не только внутреннюю логику update, но и внешние действия. А если там транзакция уже открыта, то внутри update она не нужна.
Словом, автору бы лучше найти ttscommit, подтверждающий выполнение update, а уже после него делать действия. Хотя у меня есть сомнения, что ему на самом деле надо что-то делать именно после ttscommit, а не после update.
__________________
С уважением,
Вячеслав
Старый 01.12.2011, 10:41   #2  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от pitersky Посмотреть сообщение
Мне кажется, что ставить ttsbegin/ttscommit внутри update - не очень хорошая идея.
При необходимости ставить ttsbegin/ttscommit внутри update это как раз хорошая идея. Никакой метод (update или любой другой) не должен думать о необходимости открытия транзакции при его вызове. Если логика самого метода предполагает, что некоторый код в нем должен выполняться в рамках транзакции, то ttsbegin/ttscommit там должен быть. Для примера см. InventTable.update(), InventTrans.update() и прочие таблицы. Правда к вопросу топикстартера это не относится.
Старый 01.12.2011, 13:24   #3  
egorych is offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Регистрация: 09.11.2006
Адрес: Краснодарский край
Цитата:
Сообщение от oip Посмотреть сообщение
При необходимости ставить ttsbegin/ttscommit внутри update это как раз хорошая идея.
То, что разработчики напихали во все возможные места ttsbegin не является правильным для использования! Это имело бы смысл, если бы СУБД поддерживали параллельные транзакции в 1 сессии! Но это не так!
У МССКЛ присутствую т.н. "именованные" транзакции, но логика их работы абсолютно не такая, как кажется - не получится откатить 1 транзакцию и оставить активными другие!
В Оракле есть т.н. автономные транзакции, которые работают независимо, но это опять же не наш случай!
Так что мая ИМХА - если update должен работать внутри транзакции, то об этом должен позаботиться ВЫЗЫВАЮЩИЙ, а не надеяться на то, что где-то, кто-то стартанёт её !
__________________
Axapta 3.0 sp - хз какой, kr2
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Display метод временной таблицы выполняется в компании DAT S.Kuskov DAX: Программирование 4 15.04.2011 20:11
DAX 2009,5.0.1000.52 SP1 в таблице smmBusRelTable отсутствует метод convert2Customer Murlin DAX: Программирование 8 11.11.2009 16:23
Дисплей метод таблицы который вызывается из ГРИДА 3oppo DAX: Программирование 10 23.05.2006 06:47
display метод с параметром Андре DAX: Программирование 5 11.01.2006 19:04
Передача массива VARIANTов в Automation метод Maximin DAX: Программирование 0 09.10.2002 19:31
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:52.