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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.10.2009, 11:35   #1  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
;)
Цитата:
Сообщение от ZVV Посмотреть сообщение
Нет, всё работает штатно, а вы ожидали другого результата?
Если человек знает про эту особенность, то он ничего не ожидает, а просто держит ее в голове

X++:
TempDummyTable t;
 ;
t.ttsbegin;

   t.Field1="1";
   t.Field2="2";
   t.insert();

   t.Field1="1";
   t.Field2="4";
   t.insert();

t.ttscommit;
В таком случае пример, который Вы привели выше, как правильный, в случае ошибки при втором инсерте транзакции никак не спасают, ибо первый инсерт там останется
Старый 13.10.2009, 11:54   #2  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Lemming Посмотреть сообщение
В таком случае пример, который Вы привели выше, как правильный, в случае ошибки при втором инсерте транзакции никак не спасают, ибо первый инсерт там останется
А, вы в этом смысле...
Ну во первых это не был полный пример кода, а не более чем шаблон, в первую очередь с упором на синтаксис.
А во вторых, даже если считать это законченным примером, в случае ошибки при втором инсерте ввиду отсутствия обработчика ошибок функция завершится с ошибкой и область видимости временной табличной переменной закончится автоматически, поэтому "первый инсерт" ни фига ни разу там не останется.
Но а вообще, конечно да, основная причина использования транзакций для временных таблиц - это именно откат (t.ttsAbort) в случае необходимости, а не фиксация... Я так понял вы это, в частности, хотели подчеркнуть?

Тема ушла в офтоп...
__________________
Zhirenkov Vitaly
Старый 13.10.2009, 12:16   #3  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Цитата:
Сообщение от ZVV Посмотреть сообщение
Но а вообще, конечно да, основная причина использования транзакций для временных таблиц - это именно откат (t.ttsAbort) в случае необходимости, а не фиксация... Я так понял вы это, в частности, хотели подчеркнуть?
Признаться, я даже не помню где бы мне явно приходилось вызывать метод ttsabort. Просто я хотел обратить внимание автора, чей код я процитировал своим первым сообщением в этой ветке, что стоит иметь ввиду, несколько неожиданную(ИМХО), особенность транзакций в работе с временными таблицами. Самой фичей равнодушия вр. таблиц к транзакциям, на практике, я воспользовался всего один раз: использовал ее как кэш уже обработанных операций, что бы в случае ошибки не потерять уже готовые транзакции и в обработчике исключения перелить что успел обработать в постоянную таблицу.

p.s. Знатный оффтопик получился
Теги
временная таблица, транзакции

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
И снова Query и временные таблицы Def DAX: Программирование 19 08.12.2006 15:46
Временные таблицы в отчете Прокопьева DAX: Программирование 25 02.10.2006 14:54
Временные таблицы в отчетах konfet DAX: Программирование 5 19.01.2005 11:32
Временные таблицы vasiliy DAX: Программирование 6 09.11.2004 11:04
Временные таблицы в запросе Dron AKA andy DAX: Программирование 4 06.09.2002 12:14

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

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

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