db.BeginTrans
  sql_str = "select top 1 * from [uer] where zt='3'"
  Set rs = New Recordset
  rs.Open sql_str, db, adOpenStatic, adLockOptimistic
   
  If rs.RecordCount > 0 Then
      rs.Update "zt", "2"
      db.CommitTrans
  Else db.RollbackTrans
  End If我这个程序需要能够使多用户同时间对一个表中的不同行的数据进行修改,不允许一行数据同时被多个用户进行编辑修改。上面这段代码是我简化给大家看的,在我的程序中会反复调用这样类似的语句来从SQL Server获取数据。
但是在实际使用的过程中,普遍的客户端会不定时的弹出:运行时错误:-2147217864(80040e38)无法为更新定位行,一些值可能已在最后一次读取后已修改。
调试时,程序在rs.update语句处出错,不知道是什么原因,请大家帮忙,我已经快被它烦死了