多用户update数据时,不能保证完整性
DataModule1.database1.StartTransaction;
with qryfree do
begin
close;
sql.clear;
sql.add('Update MZJCK set JIESUANZT=1 Where DJH= :DJH ');
parameters.ParamByName('DJH').value:=djhid;
execsql;
close;
sql.clear;
sql.add('Update MZCKDKHZ set JIESUANZT=1 Where DJH= :DJH ') ;
parameters.ParamByName('DJH').value:=djhid;
execsql;
close;
sql.clear;
sql.add('Update MZCKDK set JIESUANZT=1 Where DJH= :DJH ') ;
parameters.ParamByName('DJH').value:=djhid;
execsql;
end;
DATAMODULE1.Database1.Commit;
except
DATAMODULE1.Database1.Rollback;
application.MessageBox('数据保存错误.检查输入.','提示',mb_iconinformation+mb_ok);
exit;
end;
在上面的程序段执行后,三个数据表(SQL SERVER 20000)MZJCK、MZCKDK、MZCKDKHZ中的JIESUANZT都应为1,但说不定哪一天会出现mzjck中的JIESUANZT=1,而MZCKDK,MZCKDKHZ中的不为1,但程序运行时一点出错信息都没有。
三个表中,MZJCK中数据量是MZCKDKHZ的50%,MZCKDKHZ是购MZCKDK的50%,但更新不应和数据量的大小有关,是不是在更新时,有别的用户正在操作这三个表,才造成有的数据没有更新?
是什么原因,怎样解决呀???