当前位置: 代码迷 >> VFP >> dbf数据大,处理时提示 "not enought memory for file map"该怎么解决
  详细解决方案

dbf数据大,处理时提示 "not enought memory for file map"该怎么解决

热度:9749   发布时间:2013-02-26 00:00:00.0
dbf数据大,处理时提示 "not enought memory for file map"
有一个数据表(例:Table1),里边有160多万条记录,在处理的时候出现"not enought memory for file map"这样的错误。

大概流程是先把它的数据备份到另一个表中,然后再删除本表中的Data:

SELECT Table1
SET ORDER TO TAG tag1
SCAN  
  SELECT Table1
  SCATTER MEMVAR MEMO
  INSERT INTO Table1_bak From Memvar
  SELECT Table1
  Delte
ENDSCAN  

好象是处理到Table1中间的哪个地方出错的,电脑是双核的,内存4G,C盘剩余空间还有70多G,程序是vfp6.0写的。

请各位高手指点,不胜感激,谢谢!

------解决方案--------------------------------------------------------
先用APPE FROM,再ZAP不就行了?

VFP6要升到VFP9,在VFP9下编译一下就行了
------解决方案--------------------------------------------------------
改为:
Select Table1
Set Order To Tag tag1
Scan
Insert Into Table1_bak (字段1,...,字段N) )Values (Table1.字段1,...,Table1.字段N)
Select Table1
Delete
Endscan

为何一条一条复制,至少可以1000条一复制呀,或者整表复制。
  相关解决方案