Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];




Вниз

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


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 выполняться не будет.




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];




Наверх






Память: 0.74 MB
Время: 0.023 c
1-22219           dimonf                2001-12-16 17:23  2002.01.08  
Как сделать, чтобы Canvas прорисовывался при любых монипуляцих с окном


1-22251           Dreamer               2001-12-17 14:17  2002.01.08  
Подскажите начсет TLIST


1-22209           Kost                  2001-12-14 14:10  2002.01.08  
Пользовался кто нибудь функцией PaintTo для прорисовки WinControl ов на канвас битмэпа? Помогите! У меня ничего не получается.


1-22074           Bb                    2001-12-17 21:28  2002.01.08  
HELP!!!!


1-22249           Eugene Zelikovsky     2001-12-17 13:53  2002.01.08  
Как обождать какое-то время не используя TTimer