提示:
NO user transaction is currently in progress.
commit transaction请求没有对应的begin transaction
Function DBWriteToDataBase(DataSets:Array of TBDEDataSet):Boolean;
Var
I : Integer;
begin
DmDataBase.db.StartTransaction;
try
For i := Low(DataSets) to High(DataSets) do
TBDEDataSet(DataSets[i]).ApplyUpdates;
DmDataBase.db.Commit;
Result := True;
except
DmDataBase.db.Rollback;
Result := False;
MessageHint(0,0);
Exit;
end;
For i := Low(DataSets) to High(DataSets) do
TBDEDataSet(DataSets[i]).CommitUpdates; //清除记录更改的缓存
end;
分不够再加
NO user transaction is currently in progress.
commit transaction请求没有对应的begin transaction
Function DBWriteToDataBase(DataSets:Array of TBDEDataSet):Boolean;
Var
I : Integer;
begin
DmDataBase.db.StartTransaction;
try
For i := Low(DataSets) to High(DataSets) do
TBDEDataSet(DataSets[i]).ApplyUpdates;
DmDataBase.db.Commit;
Result := True;
except
DmDataBase.db.Rollback;
Result := False;
MessageHint(0,0);
Exit;
end;
For i := Low(DataSets) to High(DataSets) do
TBDEDataSet(DataSets[i]).CommitUpdates; //清除记录更改的缓存
end;
分不够再加
Var
I : Integer;
b : boolean;
begin
DmDataBase.db.StartTransaction;
try
For i := Low(DataSets) to High(DataSets) do
TBDEDataSet(DataSets[i]).ApplyUpdates;
DmDataBase.db.Commit;
b := True;
except
DmDataBase.db.Rollback;
b := False;
MessageHint(0,0);
Exit;
end;
For i := Low(DataSets) to High(DataSets) do
TBDEDataSet(DataSets[i]).CommitUpdates; //清除记录更改的缓存
result := b;
end;
TBDEDataSet(DataSets[i]).CommitUpdates; //清除记录更改的缓存
把这句放在你的try except之间的result=true的前面试一下。
有没有类似if db.inTranction then 的函数放在
DmDataBase.db.Commit;之前