开过一个帖子,可能问题表述的不清楚。我把过程详细说一下。我有一个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)与库建立连接
(2)用库连接指针执行一个SQL的插入字段的命令,在表中新建了一个字段F。
(3)用一个记录集R1指针打开这个表
(4)逐条读取记录集R1中的记录,每读一条记录,就要产生一个计算结果,然后我把这个计算结果写到(2)中新建的字段F中。但是,问题就很让人费解的出现了,我循环读取记录集的过程肯定是没有错误,却出现了死循环,而且,那个数据库越来越大,直到吃光我的硬盘为止。我计算过,倘若这个库处理完毕,最多有20M那么大!
详细的代码见:http://community.csdn.net/Expert/topic/3496/3496931.xml?temp=.7354547
--------------------------看看你的代码,有没有一句
->MoveNext()或者你把死循环的代码段贴出来看看
m_pRecordset0->MoveNext();以上代码有可能在Update后,recordset的当前游标发生改变,可能回到top。
最好不先update,最后一块update,
如果你更新一条记录就update一次整个表,效率也是个问题。
还有点意见,就是你这一片代码可以用一条Sql语句来实现,如果你的Sql语句学得好的话。
直接执行SQL语句....
m_pRecordset0->Update();
我用另外一种方法尝试了一下:
我又新建了一个表,把计算得到的结果放入新建的表中,竟然比放入原来的表中速度快了何止一倍!
其中原因小弟百思不得其解。请各位大侠指教!!!