两个用户用ADO同时读取修改SQL同一个表同一条记录时出错,请教是不是要修改连接参数?
两个用户用ADO同时读取修改SQL同一个表同一条记录时出错,请问是不是要修改连接参数??
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
两个用户我都用这句连接SQL
hr = m_pConnection-> Open( "driver={SQL Server};Server=192.168.0.10;DATABASE=XXX;UID=user;PWD=xxx ", " ", " ",adModeUnknown);
在查询修改时,我都用这句打开表
m_pRecordset-> Open(s2,m_pConnection.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
然后就是同时读取修改同一个表同一个记录(在原值上减数),并在修改后使用
m_pRecordset-> Update();
结果是一个用户修改成功,另一个没有成功
请问是不是我的语句参数有问题? 如果改? 把adLockOptimistic改成adLockPessimistic行否? 或还是检测m_pRecordset-> Open()是否成功?请高手帮帮忙,急啊,多谢!
------解决方案--------------------
使用动态游标adOpenDynamic,锁定类型adLockPessimistic才可以
------解决方案--------------------
楼上正解
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
两个用户我都用这句连接SQL
hr = m_pConnection-> Open( "driver={SQL Server};Server=192.168.0.10;DATABASE=XXX;UID=user;PWD=xxx ", " ", " ",adModeUnknown);
在查询修改时,我都用这句打开表
m_pRecordset-> Open(s2,m_pConnection.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
然后就是同时读取修改同一个表同一个记录(在原值上减数),并在修改后使用
m_pRecordset-> Update();
结果是一个用户修改成功,另一个没有成功
请问是不是我的语句参数有问题? 如果改? 把adLockOptimistic改成adLockPessimistic行否? 或还是检测m_pRecordset-> Open()是否成功?请高手帮帮忙,急啊,多谢!
------解决方案--------------------
使用动态游标adOpenDynamic,锁定类型adLockPessimistic才可以
------解决方案--------------------
楼上正解