注册 登录
编程论坛 VFP论坛

备注字段超出容量限制……

cssnet 发布于 昨天 12:37, 24 次点击
备注字段的容量限制是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命令。

0 回复
1