| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 325 人关注过本帖
标题:备注字段超出容量限制……
只看楼主 加入收藏
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:452
专家分:370
注 册:2013-10-4
结帖率:100%
收藏
 问题点数:0 回复次数:4 
备注字段超出容量限制……
备注字段的容量限制是2GB,想要超出,那还不容易:

use myTestDbf
scan
     for i = 1 to 1000
         lcLine = "巴拉巴拉.........一行挺长的文本,大概有1KB"
          * myMemo是备注字段
          replace myMemo with myMemo + lcline + chr(13) + chr(10)
    endfor i
endscan

假设myTestDbf只有1000行记录,len(cLine)也只有1KB,这么循环一下子,可能会迅速让备注字段超出2GB的容量限制!
随手Pack一下,会发觉备注字段其实只有1--2MB!
这才反应过来,正确做法是:

scan
     lcMemo = ""
     for i = 1 to 1000
         cLine = "巴拉巴拉.........一行挺长的文本"
         lcMemo = lcMemo + lcline + chr(13) + chr(10)
    endfor i
    replace myMemo with lcMemo
endscan

估计原因是:备注字段的每一次写入,都是在尾部累加,VFP在内部维护链表,但不清理存储空间,直至发出Pack命令。

搜索更多相关主题的帖子: 容量 超出 限制 备注 字段 
4 天前 12:37
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10644
专家分:43272
注 册:2014-5-20
收藏
得分:0 
好像是用了ADDITIVE选项
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

lcLine = "巴拉巴拉.........一行挺长的文本,大概有1KB" + chr(13) + chr(10)
CREATE TABLE tt (myMemo M)
APPEND BLANK
for i = 1 to 5
    replace myMemo with myMemo + PADL(i,2,"0")+lcline
endfor i
USE
run notepad.exe tt.fpt

3 天前 08:24
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:452
专家分:370
注 册:2013-10-4
收藏
得分:0 
以下是引用吹水佬在2025-8-16 08:24:57的发言:
好像是用了ADDITIVE选项


在几个表中搜索文本,找到了,就随手插到一个临时表的Memo中,留待后续处理。
只是简单的replace命令,没有用到任何ADDITIVE选项。
代码运行了一小会儿,VFP突然跳出错误提示:
“备注字段超出限制。”
莫名惊诧!心道:就这一点点文本,应该远不至于会到2GB的程度!
再一看.fpt,确已膨胀到了2GB。
……于是便有了顶楼的灵魂拷问。


3 天前 18:41
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10644
专家分:43272
注 册:2014-5-20
收藏
得分:0 
replace myMemo with myMemo + lcline
就好像:
replace myMemo with lcline ADDITIVE

3 天前 19:43
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:452
专家分:370
注 册:2013-10-4
收藏
得分:0 
以下是引用吹水佬在2025-8-16 19:43:11的发言:

replace myMemo with myMemo + lcline
就好像:
replace myMemo with lcline ADDITIVE


有道理哦,这分析确实是!
3 天前 22:24
快速回复:备注字段超出容量限制……
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017109 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved