Re: Rollback() при исключении
От: Kostyа  
Дата: 29.01.03 11:16
Оценка:
Здравствуйте, Blackmore, Вы писали:

B>Обязательно ли вызывать OleDBTransaction.Rollback(), если был вызов OleDBTransaction.Begin(), затем изменение данных, в ходе к-рого возникло исключение? Т.е.


B>

B>
B>      System.Data.OleDb.OleDbTransaction objTr = null;

B>      try
B>      {
B>        cnShared.Open();

B>        objTr = cnShared.BeginTransaction();
B>        cmdDelete.Transaction = objTr;
B>        if (dsO.HasChanges())
B>        {
B>          daO.Update(dsO);
B>          dsO.AcceptChanges();
B>        }
B>        objTr.Commit();
B>      }
B>      catch (Exception exAny) 
B>      {
B>        objTr.Rollback();
B>        MessageBox.Show(exAny.Source);
B>      }
B>      finally
B>      {
B>        cnShared.Close();
B>      }
B>


B>Или objTr.Rollback() можно пропустить?



Если не вызывать Rollback, то транзакция будет открытой до момента
закрытия соединения, после чего сервер сам ее откатит. Соответственно
и блокировки будут висеть до закрытия соединения.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.