环境:delphi XE7 +SQL 2008
问题:关于delphi数据库多用户操作问题问题描述:
delphi使用控件:TADOConnection + TADOQuery + TDataSource + cxgrid + cxdbedit
ADOQuery.LockType:=adLockOptimistic;每次只能对一条记录进行“增删改”;增/改的过程: 单击按钮“新增”
dm.ADOConnection1.BeginTrans;
with dm.ADOQuery1 do
begin
open;
Edit;
append;
end;
----------需要一段时间来输入----------
等待用户在界面上更改数据,使用的是数据绑定控件:cxdbedit
单击按钮“保存”
dm.ADOQurry1.post;
dm.ADOConnection1.CommitTrans;
问题:由于多用户同时操作,且该过程话费时间比价久;
致使记录A提交数据库的时候“记录已经被更改” ,导致数据保存失败。
尤其用户多的情况下。 若使用 ADOQuery.LockType:=adLockPessimistic ;
致使更改数据的时候,别的用户无法使用访问该数据,其他用户等待时间过长
多用户系统,更新字段,该用哪种方法比较合适?
问题:关于delphi数据库多用户操作问题问题描述:
delphi使用控件:TADOConnection + TADOQuery + TDataSource + cxgrid + cxdbedit
ADOQuery.LockType:=adLockOptimistic;每次只能对一条记录进行“增删改”;增/改的过程: 单击按钮“新增”
dm.ADOConnection1.BeginTrans;
with dm.ADOQuery1 do
begin
open;
Edit;
append;
end;
----------需要一段时间来输入----------
等待用户在界面上更改数据,使用的是数据绑定控件:cxdbedit
单击按钮“保存”
dm.ADOQurry1.post;
dm.ADOConnection1.CommitTrans;
问题:由于多用户同时操作,且该过程话费时间比价久;
致使记录A提交数据库的时候“记录已经被更改” ,导致数据保存失败。
尤其用户多的情况下。 若使用 ADOQuery.LockType:=adLockPessimistic ;
致使更改数据的时候,别的用户无法使用访问该数据,其他用户等待时间过长
多用户系统,更新字段,该用哪种方法比较合适?
当然只能对一条进行增删改了。
或者是执行SQL语句,“update table set 。”, 让数据库自己决定谁来更改。