Вниз
Скачать: CL | DM;

Неявно стартуемые транзакции   Найти похожие ветки 

← →
Hermit   (2001-12-05 11:38) [0]

Никак немогу разобраться с субжем.
Имею Query, свойства которого CachedUpdates и RequestLive установлены в True и на события AfterDelete и AfterPost навешена процедура UpdateTable, приведенная ниже.

procedure TDataMod.UpdateTable(DataSet: TDataSet);
begin
with DataSet as TDBDataSet do
begin
Database.StartTransaction;
try
ApplyUpdates;
Database.Commit;
except
Database.Rollback;
CancelUpdates;
raise;
end;
CommitUpdates;
end;
end;

Все это прекрасно работает, но после перевода Query в режим редактирования и последующем вызове ApplyUpdates появляется ошибка "A user transaction is already in progress".
Очевидно, что при вызове Query.Edit неявно стартует транзакция, но почему при вызове Query.Insert и последующем подтверждении изменений такой ошибке не возникает?


← →
User_OKA   (2001-12-05 14:33) [1]

А если перед Database.StartTransaction проверять свойство InTransaction?
Например,
if not TIBTransaction.InTransaction then Database.StartTransaction;
Если неявная транзакция пошла, то StartTransaction выполняться не будет.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
14-22409
Vadim
2001-11-12 13:56
2002.01.08
А может, не будем бить друг друга по рукам?


4-22460
Dimich
2001-11-01 08:49
2002.01.08
Люди-HELP!!! Дисер горит!!!


3-21940
Serik
2001-12-05 09:15
2002.01.08
InterBase & VisualC++


14-22337
Alexandr
2001-11-05 13:20
2002.01.08
Print Server DP-101(D-Link) и печать из-под DOS


1-22226
Kost
2001-12-15 13:06
2002.01.08
Почему не работает этот простой код ...




   Наверх