Главная страница
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.004 c
15-1394792422
Dimka Maslov
2014-03-14 14:20
2014.10.26
Что будет если...


15-1394821001
MS-DOS user
2014-03-14 22:16
2014.10.26
Сервис int 21h/0Ah, шаблоны


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


15-1394183090
Kerk
2014-03-07 13:04
2014.10.26
Appmethod


15-1394621616
Demo
2014-03-12 14:53
2014.10.26
Готовые решения