28.06.2005, 16:33 | #1 |
Участник
|
Вопрос следующий.
В методе есть транзакция, которая в свою очередь вызывает метод, в котором также существует транзакция: ========================= Метод-1 ... ttsbegin .... (вызов метода-2) .... ttscommit ========================= Метод-2 ... ttsbegin ... ttscommit Что произойдет при откате транзакции внутри метода-2? Откатится ли транзакция метода-1? |
|
28.06.2005, 17:39 | #2 |
Участник
|
Откатится. Мало того, если в методе-2 был try-catch, то оно не отработает.
|
|
29.06.2005, 10:48 | #3 |
Участник
|
Цитата:
Сообщение от Wamr
Откатится. Мало того, если в методе-2 был try-catch, то оно не отработает.
Спасибо! А то были сомнения... |
|
27.09.2006, 17:52 | #4 |
Участник
|
Вопрос по этой же теме
у меня например есть два метода m1 и m2 m1() { ttsbegin; m2(); <some_update_operation> ttscommit; } m2() { <few_insert_update_operations> } Вопрос вот в чем если у меня произошла ошибка в методе два (не прошел запрос insert) пройдем ли запрос в методе один и (или) выполнится ли откат? ВОпрос 2 - в каком (примерное) случае такое может произойти - запрос из метода 1 прошел а из метода два нет? Заранее спасибо за ответ |
|
28.09.2006, 12:31 | #5 |
Участник
|
А.Еременко, Р.Шашков:
"В Х++ вложенность транзакций условна. Изменения в БД для всех уровней транзакций будут зафиксированы после успешного завершения последней транзакции, т.е. после выполнения последнего ttscommit. Если одна из транзакций аннулирована, отменены будут все вложенные транзакции, даже уже завершенные. " |
|