更新大量数据时出错,程序应该怎样改
用C++通过ado访问access数据库 
 当记录比较多,比如说几万条时,update语句出错 
 程序如下: 
 m_pRecordset-> Open( "select   *   from   table1 ",   m_pConnect.GetInterfacePtr(),   adOpenDynamic,   adLockOptimistic,   adCmdText); 
 while(!m_pRecordset-> adoEOF) 
 { 
             m_pRecordset-> PutCollect( "field1 ",   _variant_T(false)); 
             m_pRecordset-> Update(); 
             m_pRecordset-> MoveNext(); 
 } 
 程序总在第10000条左右出错,出错语句是 
             m_pRecordset-> Update(); 
 抛出异常
------解决方案--------------------可能是申请的内存块或缓冲区太小了。
------解决方案--------------------请到C++版块去问吧,用UPDATE SQL语句试试。
------解决方案--------------------检查update
------解决方案--------------------这样试试: 
 m_pConnect.execute  "update tablename set ... where ... "
------解决方案--------------------直接用UPDATE SQL语句
------解决方案--------------------循环数据集后,直接用update语句更新。   
 如:   
 循环每一条数据,针对每行记录都执行一次update:   
 update 表名 set 字段名 = 新值 where ...
------解决方案--------------------http://support.microsoft.com/kb/198633/zh-cn     
 在 Microsoft Access 2000, 您可以利用的功能, 可用于增加 MaxLocksPerFile 设置针对 MicrosoftJet 数据库引擎 4.0 编辑 Windows 注册表。 对此设置默认值是 9500。 但是, 因为每个连接该服务器的最大记录锁定是 10000 更改该值建议不要如果 Novell Netware 服务器, 之一副本位于。如果两副本是位于运行 Microsoft Windows NT 4.0 或 Microsoft Windows 95 服务器上或以后, 只受可用资源是限制最大值的设置。   
 警告 : 如果注册表编辑器使用不当, 可能会造成严重问题, 可能需要重新安装操作系统。 Microsoft 无法保证您能解决因注册表编辑器使用不当而导致问题。 需要您自担风险使用注册表编辑器。 
 1.	退出 MicrosoftAccess。 
 2.	依次单击 开始 运行 。 
 3.	在 打开 框中, 键入 regedit 。 
 4.	找到 HKEY _ LOCAL _ MACHINE 注册表文件夹。 
 5.	展开 HKEY _ LOCAL _ 直到您找到 SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 4.0 文件夹。 
 6.	单击 Jet 4.0 文件夹以查看其内容。 
 7.	选择 MaxLocksPerFile 项 ; 在 编辑 菜单上, 单击 修改 。 
 8.	在 编辑 DWORD 值 对话框中, 选择 Decimal 并增加 数值数据 框中数值。 
 9.	单击 确定 以保存 MaxLocksPerFile 设置。 
 10.	退出注册表编辑器。 
 11.	启动 MicrosoftAccess 并同步副本。
------解决方案--------------------循环数据集后,直接用update语句更新。   
 如:   
 循环每一条数据,针对每行记录都执行一次update:   
 update 表名 set 字段名 = 新值 where ...