开过一个帖子,可能问题表述的不清楚。我把过程详细说一下。我有一个ACCESS的库,库中有一个存放了数几十万条记录的表。我要使用ADO,对这个库做如下处理:
(1)与库建立连接
(2)用库连接指针执行一个SQL的插入字段的命令,在表中新建了一个字段F。
(3)用一个记录集R1指针打开这个表
(4)逐条读取记录集R1中的记录,每读一条记录,就要产生一个计算结果,然后我把这个计算结果写到(2)中新建的字段F中。但是,问题就很让人费解的出现了,我循环读取记录集的过程肯定是没有错误,却出现了死循环,而且,那个数据库越来越大,直到吃光我的硬盘为止。我计算过,倘若这个库处理完毕,最多有20M那么大!
详细的代码见:http://community.csdn.net/Expert/topic/3496/3496931.xml?temp=.7354547

解决方案 »

  1.   

    我循环读取记录集的过程肯定是没有错误,却出现了死循环
    --------------------------看看你的代码,有没有一句
    ->MoveNext()或者你把死循环的代码段贴出来看看
      

  2.   

    看了一下你的代码,问题很可能在这里:m_pRecordset0->Update();
    m_pRecordset0->MoveNext();以上代码有可能在Update后,recordset的当前游标发生改变,可能回到top。
    最好不先update,最后一块update,
    如果你更新一条记录就update一次整个表,效率也是个问题。
    还有点意见,就是你这一片代码可以用一条Sql语句来实现,如果你的Sql语句学得好的话。
      

  3.   

    最好能用SQL得到结果来取代‘循环读取记录集’
      

  4.   

    最好能用SQL得到结果来取代‘循环读取记录集'
    直接执行SQL语句....
      

  5.   

    樓主的問題,特別是你的死循环讓我很心悶你把這一句注釋了看看還是不是死循环!!
    m_pRecordset0->Update();
      

  6.   

    对不起,各位大哥们,小弟最近不能上网。谢谢各位的建议。我曾经把 m_pRecordset0->Update();注释掉过,但是不管用。
    我用另外一种方法尝试了一下:
     我又新建了一个表,把计算得到的结果放入新建的表中,竟然比放入原来的表中速度快了何止一倍!
    其中原因小弟百思不得其解。请各位大侠指教!!!