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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.11.2021, 15:44   #27  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Данные на формах редактируются в другом UserConnection. Когда вы смотрите в Аксапте активных пользоватей, то для тех, кто работает с формами, видно два разных SPID.
Метод write на датасурсе формы использует один UserConnection. А когда вы пишете в коде ttsbegin - ttscommit, то это применяется ко второму UserConnection. Поэтому когда внутри write выскакивает ошибка, то откатывается транзакция того UserConnection, который дла формы. А для того UserConnection'а, для которго написан в коде ttsbegin - для того транзакция не откатывается. И поэтому ttsLevel не сбрасывается.
А try - catch сбрасывает ttsLevel для того ttsbegin, который написан внутри кода для вашего UserConnection.
Этим самым и отличаюстя write на источнике данных формы от write на обычной табличной переменной. Ваш ttsbegin-ttscommit не действует на источник данных формы.
Если убрать try-catch, то выполнение кода внутри метода write источника данных сразу же прекращается, и не доходит до вызова ttscommit.
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/

Последний раз редактировалось Ace of Database; 02.11.2021 в 15:59.
За это сообщение автора поблагодарили: Pandasama (2).
Теги
стек вызовов, транзакции

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ttsbegin и зацикливание While select Perc DAX: Программирование 4 21.11.2014 08:55
Win2008 и вызов методов COM-объектов AndyD DAX: Программирование 13 06.02.2012 15:22
Падает стандартный импорт с ошибкой "Вызов ttscommit без вызова ttsbegin" skof DAX: Администрирование 6 19.01.2012 17:12
dynamics-ax-dev: CLR Errors & ttsbegin/ttscommit Blocks Blog bot DAX Blogs 0 02.11.2010 18:05
ttsbegin ttscommit and changecompany() Volodymyr DAX: Программирование 9 29.08.2008 15:36

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

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

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