![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Транзакции
Dmitry.0xDEADFA11 © (2013-11-05 16:08:00)Многопоточное приложение, нужно ли
ADOConnection1.RollbackTrans;брать в try..except.
try
// ...
except
if ADOConnection1.InTransaction then
ADOConnection1.RollbackTrans;
// FreAndNil(...)
// ...
end;
Ega23 (2013-11-05 22:02:00) [1]
> освободить айтемсы и линксы, чтобы не было утечек.
obj := TMyObject.Create;
try
try
DoSomething;
except
DoOnException;
raise; // if need
end;
finally
obj.Free;
end;
DVM (2013-11-05 19:05:00) [2]Есть же finally
Dmitry.0xDEADFA11 (2013-11-05 18:23:00) [3]
А что ты собираешься сделать в except ...end
- будет пустым. Вообще это нужно, чтобы на случай ошибки при отмене транзакции освободить айтемсы и линксы, чтобы не было утечек.
try
// ...
except
if ADOConnection1.InTransaction then
try
ADOConnection1.RollbackTrans;
except
end;
FreAndNil(Items);
FreAndNil(Links);
end;
DVM (2013-11-05 18:09:00) [4]Еще в один try..except.???
А что ты собираешься сделать в except ...end, если при роллбэке будет исключение?