Мне нужно реализовать вложенные транзакции в .NET с использованием ADO.NET .
Ситуация следующая:
--> Start Process (Begin Transaction)
--> Do DB things
--> Begin Transaction for step 1
--> Step 1
--> Commit transaction for step 1
--> Begin transaction for step 2
--> Step 2
--> Rollback transaction for step 2
--> etc ...
--> Do DB things
--> End Process(Commit or Rollback ALL commited steps --> a.k.a the process)
Можно ли это сделать с помощью областей транзакции?Может ли кто-нибудь опубликовать пример?
Кроме того, мне нужно, чтобы этот процесс работал для баз данных SQL Server 2005 и Oracle 10g ... Будут ли области транзакций работать с обоими механизмами баз данных?
Редактировать: Обратите внимание, что такая ситуация может возникнуть:
Шаг 1 зафиксирован, шаг 2 откатан Шаг 3 зафиксирован.
Процесс зафиксирован
(Step1 и Step3 сохраняют данные в базе данных, step2 не )
С другой стороны ...
Step1 фиксируется, Step2 откатываетсяШаг 3 передается.
Процесс откатывается.
НЕТ ДАННЫХ СВЯЗАНО в базу данных
Примечание: Нет схемы БД или значений доменадоступны