Показать сообщение отдельно
Старый 13.10.2009, 11:04   #4  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Lemming Посмотреть сообщение
Немного оффтопика, просто в глаза бросилось:

Временным таблицам фиолетово на транзакции, так что если у вас в коде идут операции только над ними, то транзакции лишние. Даже если и случится исключение, то перехватив его ссылка на временную таблицу будет содержать все то, что в нее записали.

p.s. Во всяком случае в трешке, в четверке не проверял, хотя вероятней всего оно везде едино.
Наверное нужно уточнить, что для них "фиолетово" обычные операторы транзакции. Они действительно работают только для таблиц, "замапленных" в БД.
Но для временных таблиц можно (и часто нужно) сделать свою транзакцию посредством вызовов соответсвующих методов на табличном буффере.
Т.е. вышеуказанный пример правильнее было бы написать так:
X++:
 TempDummyTable t;
 ;
t.ttsbegin;

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

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

t.ttscommit;
(Вроде раньше писал уже как-то об этом, но не смог найти тему, к сожалению)

UPD нашёл таки
__________________
Zhirenkov Vitaly
За это сообщение автора поблагодарили: S.Kuskov (1).