仍然是“无法为更新行集定位:一些值可能已在最后读取后改变” 呵呵,检查一下你的表中有没有主关键字?ADO都是依靠主键来寻找的,这是ADO内部的工作原理问题。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.“检查一下你的表中有没有主关键字?” 已经设置自动id为主键2.“由于更新的记录存在有两条完全相同的记录。 ” 不可能,.addnew以后进行修改就经常出问题。 是不是使用了DataGrid控件,该控件经常有此错误提示。 我也试过: .open .addnew 新加入数据 .update .close .open..... 修改数据 .update也是有可能出现“无法为更新行集定位:一些值可能已在最后读取后改变”各种游标和locktype我都试过。都不稳定。我希望各位高手能帮我想个稳定的办法。 如果不帮定到datagrid控件也会出同样的问题。 我也问过这个问题,这有可能是ado的bug,后来我不得不多次requery,期望有更好的答案!! 我认为这是因为表中设置有默认值,当ADDNEW后UPDATE,没有输入的字段会自动取默认值填充,实际数据就与RECORDSET中的数据不一样了,因此再修改就有这样的提示。我的方法,在ADDNEW的UPDATE后加一句:Recordset.Resync adAffectCurrent使数据同步。 “因为表中设置有默认值,当ADDNEW后UPDATE,没有输入的字段会自动取默认值填充”不可能,我在.addnew的时候已经把所有的值都先写进去了,用户没有输的都填0,或者空字符串。数据库中没有设置默认值。 检查一下你数据库各字段的验证条件,如是否允许为NULL、为空等。 自动编号字段addnew后无法自动取得自动生成的值,sqlserver可以通过把查询放在存储过程解决,Access不知有什么好办法,recordset的CursorType属性设为adOpenDynamic(动态游标)试试看 我以前碰到同样地错误提示,采取的办法是加一刷新的方法(.refresh),将ADO内部数据缓冲区内容提交到数据库,并清空数据缓冲区,便于添加新的记录。 有没有自动编号的字段都会出现同样的状况。数据库本身没有设置任何的验证条件。加了 .refresh 也存在同样的问题。使用动态游标也不行。有没有其他能使操作稳定的办法? 我也提一个问题:rs.openrs.addnewrs.update时出现错误错误提示:实时错误'-2147217864(80040e38)'无法为更新行集定位:一些值已在读取后改变。为什么?! 讨论过多次了http://www.csdn.net/expert/topic/461/461157.shtm Requery最然很有效,但的确是很笨的办法,速度让人受不了 注意要使用客户端游标。如果你是自己生成的RecordSet对象然后绑定到控件一定要使用客户端有标,否则不行。建议你操作时采用SQL,不要采用RecordSet.AddNew等方法,容易出问题,采用SQL自己写麻烦较大,不过稳定。 求一个金额小写转大写的代码 》》》高手请进:把一个VC的视频采集压缩程序改成VB的,压缩后生成的文件只有0字节 谁能帮我总结一下vb6语句的所有简化形式 如何用timer判断超时后立即停止inet操作并执行next i 向高手求助,VB中数据环境怎样刷新 一个问题? Adodc1.RecordSource怎样使用? 请问能否用vba发送邮件?急 急!!!高分征ActiveReport注册码/注册机 求助,如何通过两个不同列的单元格定位某一行,并获得其行数 怎么样取得目前连接状态 VB中能否使用函数指针?
2.“由于更新的记录存在有两条完全相同的记录。 ” 不可能,.addnew以后进行修改就经常出问题。
.open
.addnew
新加入数据
.update
.close
.open.....
修改数据
.update
也是有可能出现“无法为更新行集定位:一些值可能已在最后读取后改变”各种游标和locktype我都试过。都不稳定。我希望各位高手能帮我想个稳定的办法。
我的方法,在ADDNEW的UPDATE后加一句:Recordset.Resync adAffectCurrent
使数据同步。
不可能,我在.addnew的时候已经把所有的值都先写进去了,用户没有输的都填0,或者空字符串。
数据库中没有设置默认值。
recordset的CursorType属性设为adOpenDynamic(动态游标)试试看
数据库本身没有设置任何的验证条件。
加了 .refresh 也存在同样的问题。
使用动态游标也不行。有没有其他能使操作稳定的办法?
rs.addnew
rs.update时
出现错误错误提示:
实时错误'-2147217864(80040e38)'
无法为更新行集定位:一些值已在读取后改变。
为什么?!
http://www.csdn.net/expert/topic/461/461157.shtm
客户端有标,否则不行。
建议你操作时采用SQL,不要采用RecordSet.AddNew等方法,容易出问题,采用SQL自己写
麻烦较大,不过稳定。