dBase是第一个在个人电脑上被广泛使用的单机版数据库系统,在CP/M与DOS的时期,由Ashton-Tate公司所发表。在1980年,它最初是出现在CP/M的软件,而后被移植到Apple II与IBM PC的DOS上。在dBase III与dBase III Plus时,成为当时数据库市场的主流,而后其他公司推出功能相近甚至是强化的产品,例如Clipper或FoxPro,它们被称为xBase。
1.DBF文件的整体结构
文件头:包含①基本信息(含32字节的数据) ②字段格式说明(每项32个字节) 0D值的间隔符 记录1 记录2 记录3 … … … 记录n 1A结束符号 2.DBF文件头的详细格式: ①基本信息 在文件中的位置 0 1-3 4-7 8-9 1个字节 3个字节 1个32位数 1个16位数 表示当前的版本信息 表示最近的更新日期,按照YYMMDD格式。 文件中的记录条数。 文件头中的字节数。 内容 说明 DBaseIII的文件格式说明
10-11 12-13 14 15 16-27 28 1个16位数 2个字节 1个字节 1个字节 12个字节 1个字节 一条记录中的字节长度。 保留字节,用于以后添加新的说明性信息时使用,这里用0来填写。 表示未完成的操作。 dBASE IV编密码标记。 保留字节,用于多用户处理时使用。 DBF文件的MDX标识。在创建一个DBF 表时 ,如果使用了MDX 格式的索引文件,那么 DBF 表的表头中的这个字节就自动被设置了一个标志,当你下次试图重新打开这个DBF表的时候,数据引擎会自动识别这个标志,如果此标志为真,则数据引擎将试图打开相应的MDX 文件。 29 30-31 1个字节 2个字节 Language driver ID. 保留字节,用于以后添加新的说明性信息时使用,这里用0来填写。 ②DBF文件头中记录项(字段)的详细格式:
位置 0-10 11 12-15 16 17 18-19 20 21-30 31 内容 11个字节 1个字节 4个字节 1个字节 1个字节 2个字节 1个字节 10个字节 1个字节 记录项名称,是ASCII码值。 记录项的数据类型,是ASCII码值。(B、C、D、G、L、M和N,具体的解释见表2.9)。 保留字节,用于以后添加新的说明性信息时使用,这里用0来填写。 记录项长度,二进制型。 记录项的精度,二进制型。 保留字节,用于以后添加新的说明性信息时使用,这里用0来填写。 工作区ID。 保留字节,用于以后添加新的说明性信息时使用,这里用0来填写。 MDX标识。如果存在一个MDX 格式的索引文件,那么这个记录项为真,否则为空。 说明 如一表有n个字段,该格式就有n项,共占空间32*n个字节。 ③ DBF文件中的数据类型:
代码 数据类型 允许输入的数据 DBaseIII的文件格式说明
B C D G 二进制型 字符型 日期型 (General or OLE) N L 数值型(Numeric) 逻辑型(Logical) M (Memo) 各种字符。 - . 0 1 2 3 4 5 6 7 8 9 ? Y y N n T t F f (? 表示没有初始化)。 各种字符。 各种字符。 用于区分年、月、日的数字和一个字符,内部存储按照YYYYMMDD格式。 各种字符。 ④记录数据 序号 1 2 3 … n 控制位 20 20 20 20 20 内容 字段1内容字段2内容…字段n内容 控制位表示该记录是否被删除。同学们可结合sdbf程序来了解。 举例说明:
假如文件中有10条记录,每个记录有4个字段,4个字段的长度分别为:12、14、16、18,那么文件的详细格式如下:
文件头占32+32*4+2个字节:
前32个字节是文件头中的基本信息,32*4个字节是记录项(即字段的定义信息),最后两个字节分别是16进制的0D 和20,0D代表上文表格中说明的记录项终止标识。20代表一个空格。 数据信息占(12+14+16+18)*10+1个字节:
12+14+16+18个字节代表一条记录,共10条记录。最后一个字节是数据的终止表示通常是16进制表示的1A
补充说明:
由于上述文件格式的定义,决定了字段名称不能超过11个字节(或者5个中文字符),字符类型的字段,数据最大不能超过255个字节。在从文本、Excel、大型数据库导出数据到DBF格式文件时,一定要考虑到这些长度限制。
因篇幅问题不能全部显示,请点此查看更多更全内容