数据库database组件的问题,大家来拿分
请问用database组件能实现回滚吗?发现执行一半停止后数据也没有回滚,改了一个表,另外一个没动。 paradox数据库的
database1.Close;
database1.Connected:=false;
database1.DriverName:='STANDARD';
database1.Params.Values['path']:='.';
database1.Open;
database1.Connected:=true;
query1.Close;
query2.Close;
query1.DatabaseName:='dbwork';
query2.DatabaseName:='dbwork';
query2.SQL.Clear;
database1.StartTransaction;
try
query2.SQL.Add('update outbill set type=''9'',oprid=:oprid where outbhid=:outbhid ');
query2.ParamByName('outbhid').AsString:=trim(edit1.Text);
query2.ParamByName('oprid').AsString:=trim(gmusername);
query2.ExecSQL;
for i:=0 to R_length do
begin
clbhid:=RecordArray[i].name;
tlsl:=RecordArray[i].value;
query1.SQL.Clear;
query1.SQL.Add('update material set kcsl=kcsl+:tlsl where clbhid=:clbhid ');
query1.ParamByName('clbhid').AsString:=trim(clbhid);
query1.ParamByName('tlsl').AsFloat:=abs(tlsl);
query1.ExecSQL; //执行到这里报错 record locked by another user
end;
except
database1.Rollback;
end;
end;
另外,query在循环中报错 record locked by another user