为什么我启用了ADOQuery的缓存模式后(LockType设为ltBatchOptimistic),更新时一直提示出错!但是数据还是会添加到数据中.提示为:无法为更新行集定位:一些值可能在最后读取后改变.

解决方案 »

  1.   

    就是在 UpdateBatch()的时候出错,不过数据还是添加到了数据库.真想不通!!!
      

  2.   

    上面的
    先Post再UpdateBatch()
    是非常错误的
    你就用UpdateBatch(参数如下)
    arCurrent
    arFiltered
    applied.
    arAll
    arAllChapters
      

  3.   

    不POST怎么添加记录啊,如果添加一条用一次UpdateBatch方法,那跟没有用缓存更新有什么区别
      

  4.   

    你的 是什么数据库?
    以前我用 Access7.0 的数据库更新后 ID 不能自动更新
    后来升级到 Access2000 就正常了。
      

  5.   

    数据库你用SQL server 或 Orcal
      

  6.   

    用了POST,那么就把那条数据提交上去,然后再用UpdateBatch当然出错啦。
    在BatchUpdate模式下调用UpdateBatch就把所有到目前为止修改,插入的数据更新到数据库
    ,不用再调用什么post的。
      

  7.   

    我的LockType设为ltBatchOptimistic的,也就是缓存更新.用缓存更新模式,在客户端添加记录的时候当然得用Post,不然怎么添加啊?
      

  8.   

    "我的LockType设为ltBatchOptimistic的,也就是缓存更新.用缓存更新模式,在客户端添加记录的时候当然得用Post,不然怎么添加啊?"
    用UpdateBatch批量提交!去下载李唯的Delphi 5.X ADO/MTS/COM+高级程序设计篇 看看吧