××××一个棘手的数据库访问报错,高分求救!!!!××××

lhh 2003-04-02 08:55:58
Set adoTempRS = New Recordset
adoTempRS.Open " select * from CZT09 where XTDWDM='" & strERPDWDM & "' and CZSCDH='" & adoGGRS.Fields("S_gcggtzd_ph").Value & "' and CZPROD='" & adoGGMXRS.Fields("S_gcggtzdmx_zj").Value & "' and SSCJDM='" & adoGGMXRS.Fields("S_gcggtzdmx_cj").Value & "' and CZRWBH='" & adoGGMXRS.Fields("S_gcggtzdmx_orwh").Value & "' and CZSEQ=" & adoGGMXRS.Fields("S_gcggtzdmx_wlxh").Value & "", HZerpcnn, adOpenDynamic, adLockOptimistic
iCount = 0
While Not adoTempRS.EOF
iCount = iCount + 1
adoTempRS.Fields("CZRNBR").Value = iCount
adoTempRS.Update
adoTempRS.MoveNext
Wend
在update 后再movenext ,有时会报错::"无法为更新行集定位:一些值可能已在最后读取后改变",但有时又不报,是在那个时候还有其他人也在访问该记录吗?请各位帮忙,歇谢!!!
...全文
36 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lihh 2003-07-09
  • 打赏
  • 举报
回复
其实就是因为你的程序在修改该数据时,该数据刚刚被别人改过,请改变打开方式或者修改前再次打开以减少错误发生,我以前也经常发现这个问题。
lhh 2003-04-02
  • 打赏
  • 举报
回复
To:lihonggen0(李洪根,用.NET,标准答案来了) ,根据你的方法还是报错,位置为adoTempRS.Update,错误报告为:“eof或bof有一个是真,或者当前记录已被删除,所需操作需要一个当前记录”,请各位再好好看看,ok?谢谢!
liufeng_125 2003-04-02
  • 打赏
  • 举报
回复
是的,最好能用批更新
vansoft 2003-04-02
  • 打赏
  • 举报
回复
UP
lihonggen0 2003-04-02
  • 打赏
  • 举报
回复
Rs.Open "select * from employees", CN, adOpenDynamic, adLockBatchOptimistic
MXHCXY 2003-04-02
  • 打赏
  • 举报
回复
同意楼上的看法。
lihonggen0 2003-04-02
  • 打赏
  • 举报
回复
无法为更新行集定位:一些值可能已在最后读取后改变

有两条相同的记录时会产生此错误,还有就是并发冲突



建议你用数据批更新,最后update
lihonggen0 2003-04-02
  • 打赏
  • 举报
回复
iCount = 0
While Not adoTempRS.EOF
iCount = iCount + 1
adoTempRS.Fields("CZRNBR").Value = iCount

adoTempRS.MoveNext
Wend


adoTempRS.Update

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧