Visual FoxPro 使用表存储数据,并根据存储数据的不同定义了不同的文件类型,作为表文件保存的文件类型有:
由于上述文件实际上就是表,因此能够以浏览 .dbf 文件的方式使用和浏览这些文件。
表文件由头记录及数据记录组成。头记录定义该表的结构并包含与表相关的其他信息。头记录由文件位置 0 开始。数据记录1紧接在头记录之后(连续的字节),包含字段中实际的文本。
有关各种文件类型的表结构的详细内容,请参阅“表文件的表结构”。
记录的长度(以字节为单位)等于所有字段定义的长度之和。表文件中存储整数时低位字节在前。
字节偏移 | 说明 |
0 | 文件类型 0x02FoxBASE 0x03FoxBASE+/dBASE III PLUS,无备注 0x30Visual FoxPro 0x43dBASE IV SQL 表文件,无备注 0x63dBASE IV SQL 系统文件,无备注 0x83FoxBASE+/dBASE III PLUS,有备注 0x8BdBASE IV 有备注 0xCBdBASE IV SQL 表文件,有备注 0xF5FoxPro 2.x(或更早版本)有备注 0xFBFoxBASE |
1 – 3 | 最近一次更新的时间(YYMMDD) |
4 – 7 | 文件中的记录数目 |
8 – 9 | 第一个数据记录的位置 |
10 – 11 | 每个数据记录的长度(包括删除标记) |
12 – 27 | 保留 |
28 | 表的标记 0x01具有 .cdx 结构的文件 0x02文件包含备注。 0x04文件是数据库(.dbc) 请注意,这个字节可以包含任何上面值的和。例如,0x03 表明表具有结构化 .cdx 和一个备注字段。 |
29 | 代码页标记 |
30 – 31 | 保留,包含 0x00 |
32 – n | 字段子记录 字段的数目决定了字段子记录的数目。表中每个字段都对应一个字段子记录。 |
n+1 | 头记录终止符(0x0D) |
n+2 到 n+264 | 此范围内的 263 个字节包含后链信息(相关数据库 (.dbc) 的相对路径)。如果第一个字节为 0x00,则该文件不与数据库关联。因此数据库文件本身总是包含 0x00。 |
1 头记录中的第 8 到第 9 个字节指示数据文件中数据的起始位置。数据记录从删除标记字节开始。如果此字节为 ASCII 空格 (0x20),该记录没有删除标记,如果第一字节为星号 (0x2A),该记录有删除标记。在标记之后是字段记录中所命名各字段中的数据。
字节偏移 | 说明 |
0 - 10 | 字段名(最多 10 个字符 —若少于 10 则用空字符 (0x00) 填充) |
11 | 字段类型 C–字符型 Y–货币型 N–数值型 F–浮点型 D–日期型 T–日期时间型 B–双精度型 I–整型 L–逻辑型 M–备注型 G–通用型 C–字符型(二进制) M–备注型(二进制) P–图片型 |
12 - 15 | 记录中该字段的偏移量 |
16 | 字段长度(以字节为单位) |
17 | 小数位数 |
18 | 字段标记 0x01系统列(用户不可见) 0x02可存储 null 值的列 0x04二进制列(只适于字符型和备注型) |
19 – 32 | 保留 |
有关对每个记录中字符的限制以及字段数目的最大值等详细内容,请参阅“Visual FoxPro 系统容量”。
除非在文件中添加下列功能,否则 Visual FoxPro 将不修改按 FoxPro 2.x 文件格式保存的文件标头:
提示 可以使用下面的公式求出表文件中字段的数目:(x – 296/32)
公式中,x
表示第一个记录的位置(表头记录的第 8 到第 9 个字节),296 表示 263(后链信息)+ 1(头记录终止符)+ 32(第一个字段子记录),32 是字段子记录的长度。