Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.10.26;
Скачать: CL | DM;

Вниз

Транзакции   Найти похожие ветки 

 
Dmitry.0xDEADFA11   (2013-11-05 16:08) [0]

Многопоточное приложение, нужно ли ADOConnection1.RollbackTrans; брать в try..except.

 
try
   // ...
 except
   if ADOConnection1.InTransaction then
     ADOConnection1.RollbackTrans;
   // FreAndNil(...)
   // ...
 end;


 
DVM ©   (2013-11-05 18:09) [1]

Еще в один try..except.???

А что ты собираешься сделать в except ...end, если при роллбэке будет исключение?


 
Dmitry.0xDEADFA11   (2013-11-05 18:23) [2]

А что ты собираешься сделать в except ...end

- будет пустым. Вообще это нужно, чтобы на случай ошибки при отмене транзакции освободить айтемсы и линксы, чтобы не было утечек.

try
  // ...
except
  if ADOConnection1.InTransaction then
    try
      ADOConnection1.RollbackTrans;
    except
    end;
  FreAndNil(Items);
  FreAndNil(Links);
end;


 
DVM ©   (2013-11-05 19:05) [3]

Есть же finally


 
Ega23 ©   (2013-11-05 22:02) [4]


>  освободить айтемсы и линксы, чтобы не было утечек.


obj := TMyObject.Create;
try
 try
   DoSomething;
 except
   DoOnException;
   raise; // if need
 end;
finally
 obj.Free;
end;



Страницы: 1 вся ветка

Текущий архив: 2014.10.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.005 c
15-1394183090
Kerk
2014-03-07 13:04
2014.10.26
Appmethod


2-1383653282
Dmitry.0xDEADFA11
2013-11-05 16:08
2014.10.26
Транзакции


1-1328523971
Дмитрий
2012-02-06 14:26
2014.10.26
XE2 C++ Firemonkey stdcall - Помогите решить проблему.


2-1383329935
dmitryl
2013-11-01 22:18
2014.10.26
dbisam


15-1394806551
7even
2014-03-14 18:15
2014.10.26
стили в firemonkey