Foxpro中MEMO字段的容量有多大
分析存放MEMO字段内容的.fpt文件的结构可以发现,.fpt文件里每个MEMO字段的开头有两个4字节的数据,第一个4字节数据表示MEMO字段的类型;第二个4字节数据表示该MEMO字段的字节数,因此,理论上MEMO字段的最大长度:16进制表示为FFFFFFFF,即16的8次方减1,10进制为4,294,967,295,即4G。也就是说,在磁盘空间允许的情况下,Foxpro中每个MEMO字段可存储多达4G的数据或图象。
那么,为什么大数据进入MEMO字段后出现了被截断成小于64K的现象呢?分析工作中使用大于64K数据的情况后得知,导致错误的原因是使用存取大数据的方法不正确。Foxpro提供了多种方式存储MEMO字段,如可使用内存变量的方式,如REPLACE命令或SCATTER MEMVAR MEMO命令等;也可使用文件传输的方式,如APPEND MEMO XX FROM命令等存储MEMO字段。在使用内存变量方式存取MEMO字段时,由于Foxpro规定内存变量的长度必须小于64K,当数据大于64K时,内存变量便将大于64K的数据截断成小于64K的数据,结果导致了上述错误。因此,在对MEMO字段存入大于64K的数据时,必须使用文件传输方式APPEND MEMO XX FROM (文件名)来实现。