adoquery的updatebatch问题,(行句柄引用了一个已被删除的行或被标识为删除的行)

时间:2022-09-21 16:09:24
当adoquery采用批量更新方式,且加事务时,当updatebatch出现错误时,如行句柄引用了一个已被删除的行或被标识为删除的行
这时候记录的updatestatus变为usUnmodified,在网上查了说是一个ado的bug,不知道该如何操作好,请有碰到的大侠给下具体代码

13 个解决方案

#1


帮顶一个

#2


有没有给表设置主键?

#3


其他用户是不是有修改数据存在并发问题?如果是,要修改BatchUpdate的方式,只使用表主键作为条件

:)具体的属性忘记了。

#4


主键这些都有的,有人说放到xml文件里来解决此bug,但不知道如何操作,或者有没有其它的变通方法

#5


d6是听说过ado有bug,如果是d6,有升级包的。

#6


我怎么觉得批量更新和一条一条post的效率差不多啊

#7



不一定是BUG。

说一些平时的经验,

1。经常是由于你的表结构中有一些值是设置了比如  Default 0 这些,当 dataset POST时,并未
  传递值给指定的表,而是通过表结构中的约束生成默认值,就可能出现这种情况。、 
  
解决方法:把默认值在DATASET的 NewRecord中写一次。或者表结构中不要带有这些

2. 没有设置主键,在ADO2.6 后一般没什么问题

3. 多用户操作,数据更新了。 最好更新 DATASET.refresh.

#8


我碰到的问题跟这个帖子的问题一样的
http://topic.csdn.net/t/20030807/12/2119176.html
当服务忙的时候经常出现“行句柄引用了一个已被删除的行或被标识为删除的行”
或者说如何才能手动控制updatestatus属性?

#9


你的表设置主键了吗?

#10


有设置了的

#11


学习了。。。。

#12


这个问题也是最近才碰到的,以前因为服务器比较快,一直没有出现此问题,看来以后得抛弃delphi,改用.net了

#13


UpdateStatus与Post都是存储数据到数据库中的吗?相当于SQL Server2000中的Insert吗?

#1


帮顶一个

#2


有没有给表设置主键?

#3


其他用户是不是有修改数据存在并发问题?如果是,要修改BatchUpdate的方式,只使用表主键作为条件

:)具体的属性忘记了。

#4


主键这些都有的,有人说放到xml文件里来解决此bug,但不知道如何操作,或者有没有其它的变通方法

#5


d6是听说过ado有bug,如果是d6,有升级包的。

#6


我怎么觉得批量更新和一条一条post的效率差不多啊

#7



不一定是BUG。

说一些平时的经验,

1。经常是由于你的表结构中有一些值是设置了比如  Default 0 这些,当 dataset POST时,并未
  传递值给指定的表,而是通过表结构中的约束生成默认值,就可能出现这种情况。、 
  
解决方法:把默认值在DATASET的 NewRecord中写一次。或者表结构中不要带有这些

2. 没有设置主键,在ADO2.6 后一般没什么问题

3. 多用户操作,数据更新了。 最好更新 DATASET.refresh.

#8


我碰到的问题跟这个帖子的问题一样的
http://topic.csdn.net/t/20030807/12/2119176.html
当服务忙的时候经常出现“行句柄引用了一个已被删除的行或被标识为删除的行”
或者说如何才能手动控制updatestatus属性?

#9


你的表设置主键了吗?

#10


有设置了的

#11


学习了。。。。

#12


这个问题也是最近才碰到的,以前因为服务器比较快,一直没有出现此问题,看来以后得抛弃delphi,改用.net了

#13


UpdateStatus与Post都是存储数据到数据库中的吗?相当于SQL Server2000中的Insert吗?