Текущий архив: 2003.03.17;
Скачать: CL | DM;
Вниз
Глюк в BDE при выполнении UpdateSQL.ApplyUpdates Найти похожие ветки
← →
Marenich © (2003-02-25 21:55) [0]При сабж. вылазит ошибка " Table cannot be opened for exclusive use."
Держаться больше нету сил... :)
Вот соб-но код ($DELPHI)\Demos\DB\CacheDup\CachedUp.pas:
procedure TCacheDemoForm.Button1Click(Sender: TObject);
var
i: integer;
begin
for i:=1 to 1000 do
begin
FDataSet.Append;
FDataSet.Tag:=FDataSet.Tag+1;
FDataSet["PROJ_ID"]:=IntToStr(FDataSet.Tag);
FDataSet["PROJ_NAME"]:="N"+IntToStr(FDataSet.Tag);
FDataSet.Post;
FDataSet.ApplyUpdates;
end;
end;
Примерно через 300 итераций вылазит сабж.
Есть какие-нибудь предложения как это обойти?
← →
kaif © (2003-02-26 03:20) [1]Странный код какой-то...
Зачем делать каждый раз ApplyUpdates в цикле?
А если это так необходимо по каким-то причинам, то тогда зачем вообще режим CachedUpdates применять?
И наконец, мне кажется, что ошибка вообще не имеет никакого отношения к CachedUpdates...
Предложение первое и пока единственное.
Убрать CachedUpdates и убедиться, что ошибка связана именно с этим режимом.
← →
Marenich © (2003-02-26 14:44) [2]2 kaif
Код для примера.
А реальная ситуация такова:
есть read only TQuery (SQL="SELECT * FROM "TEST.DBF" ORDER BY NAME") + TUpdateSQL.
Query1.CashedUpdate=true, т.к. в противном случае ругается, что
"Cannot modify read-only dataset.".
Нужно, чтобы любое изменение в TQuery гарантированно сохранялось в БД, что соб-но и происходит (для DBF 148 раз, для Pdx - 332 раза), а на 149 (333) раз выдает ошибку на ApplyUpdates. Использование ApplyUpdates и CommitUpdates, или Database.ApplyUpdates([Query1]) сильно тормозит и не помагает.
Страницы: 1 вся ветка
Текущий архив: 2003.03.17;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.022 c