Здравствуйте, 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, то транзакция будет открытой до момента
закрытия соединения, после чего сервер сам ее откатит. Соответственно
и блокировки будут висеть до закрытия соединения.