解决方案 »

  1.   

    错误代码是0x800A0CB3
    好像说是不支持更新操作
      

  2.   

    样例没有问题 因为它是以表的方式打开的 不存在order by的问题哪位大侠能回答一下啊??????
      

  3.   

    那就说明:以order by打开后不支持更新操作。
      

  4.   

    当然不支持
    中间两个参数换成adOpenKeyset,adLockBatchOptimistic
    (_variant_t)str,_variant_t(m_pConn,true),adOpenKeyset,adLockBatchOptimistic,adCmdText)
      

  5.   

    中间参数换成adOpenKeyset,adLockBatchOptimistic也出错
      

  6.   

    哦?
    看来的确updatebatch不能用order by
    不懂楼主为什么要order by ?
      

  7.   

    select   *   from   tablename   order   by   id 
    如果我没猜错的话,上面的语句,得到的记录集中,存在完全重复的行,如果不存在完全重复的行,updatebatch应该没有问题。另外,楼主可以这样试,用catch把错误捕捉掉(这样防止程序崩溃),然后你看数据库,其实更新的成功的(即可以达到你想要的目的,需要有一个错误),因为完全重复的行,在更新第一条的时候,就将后面所有重复的行也更新,造成了更新后面行的时候,找不到相应的行。另外,adLockBatchOptimistic参数是必须的。
      

  8.   

    select       *       from       tablename       order       by       id   
    如果我没猜错的话,上面的语句,得到的记录集中,存在完全重复的行,如果不存在完全重复的行,updatebatch应该没有问题。 另外,楼主可以这样试,用catch把错误捕捉掉(这样防止程序崩溃),然后你看数据库,其实更新是成功的(即可以达到你想要的目的,虽然有一个错误),因为完全重复的行,在更新第一行的时候,就将后面所有重复的行也更新了,造成在更新后面行的时候,找不到相应的行。 另外,adLockBatchOptimistic参数是必须的。上面的帖子,语病太多,所有重复发一次。-_-
      

  9.   

    程序里面的order by id,该id是由数据库自动维护的,绝不可能出现完全重复的行