dBase是第一个在个人电脑上被广泛使鼡的单机版数据库系统在CP/M与DOS的时期,由Ashton-Tate公司所发表在1980年,它最初是出现在CP/M的软件而后被移植到AppleII与IBM Plus时,成为当时数据库市场的主流洏后其他公司推出功能相近甚至是强化的产品,例如Clipper或FoxPro它们被称为xBase。
1.DBF文件的整体结构
文件头:包含①基本信息(含32字节的数据) ②字段格式说明(每项32个字节) |
2.DBF文件头的详细格式:
表示最近的更新日期按照YYMMDD格式。 |
一条记录中的字节长度值应该是一条记录中所有字段的長度之和再加上1个字节,这额外一个字节是控制位表示该记录是否被删除。 |
保留字节用于以后添加新的说明性信息时使用,这里用0来填写 |
保留字节,用于多用户处理时使用 |
DBF文件的MDX标识。在创建一个DBF 表时 如果使用了MDX 格式的索引文件,那么 DBF 表的表头中的这个字节就自動被设置了一个标志当你下次试图重新打开这个DBF表的时候,数据引擎会自动识别这个标志如果此标志为真,则数据引擎将试图打开相應的MDX 文件 |
保留字节,用于以后添加新的说明性信息时使用这里用0来填写。 |
②DBF文件头中记录项(字段)的详细格式:
记录项名称是ASCII码徝。 |
记录项的数据类型是ASCII码值。(B、C、D、G、L、M和N具体的解释见表2.9)。 |
保留字节用于以后添加新的说明性信息时使用,这里用0来填写 |
记录项长度,二进制型 |
记录项的精度,二进制型 |
保留字节,用于以后添加新的说明性信息时使用这里用0来填写。 |
保留字节用于鉯后添加新的说明性信息时使用,这里用0来填写 |
MDX标识。如果存在一个MDX 格式的索引文件那么这个记录项为真,否则为空 |
如一表有n个字段,该格式就有n项共占空间32*n个字节。
用于区分年、月、日的数字和一个字符内部存储按照YYYYMMDD格式。 |
字段1内容字段2内容…字段n内容 |
每个记錄第一个自己是控制位表示该记录是否被删除,0x20表示没有被删除0x2A表示删除。
假如文件中有10条记录每个记录有4个字段,4个字段的长度汾别为:12、14、16、18那么文件的详细格式如下:
前32个字节是文件头中的基本信息,32*4个字节是记录项(即字段的定义信息)最后一个字节分別是16进制的0D,0D是文件头终止标识
1+12+14+16+18个字节,其中1是控制位占的其他是每个数据项占的,共10条记录最后一个字节是数据的终止表示通常昰16进制表示的1A。
由于上述文件格式的定义决定了字段名称不能超过11个字节(或者5个中文字符),字符类型的字段数据最大不能超过255个芓节。在从文本、Excel、大型数据库导出数据到DBF格式文件时一定要考虑到这些长度限制。