首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

请问 DOS版的 FOXPRO 2.5 每个DBF文件最多可以有几条记录

2013-10-16 
请教 DOS版的 FOXPRO 2.5 每个DBF文件最多可以有几条记录?请教 DOS版的 FOXPRO 2.5 每个DBF文件最多可以有

请教 DOS版的 FOXPRO 2.5 每个DBF文件最多可以有几条记录?
请教 DOS版的 FOXPRO 2.5 每个DBF文件最多可以有几条记录?
[解决办法]
10亿条记录
[解决办法]
转自 VFP 自带帮助文件:
表文件结构 (.dbc, .dbf, .frx, .lbx, .mnx, .pjx, .scx, .vcx) 

Visual FoxPro 使用表来存储定义不同文件类型的数据。下面的列表包含了存储为表的文件类型:

数据库(.dbc)

表单(.scx)

标签(.lbx)

菜单(.mnx)

项目(.pjx)

报表(.frx)

表(.dbf)

可视类库(.vcx)

由于这些文件实际上是表,因此,可以用浏览任何表文件的同样方式来使用和浏览这些文件。

一个表文件由头记录和数据记录组成。头记录定义表的结构和并包含与表有关的任何其他信息。头记录开始于文件位置 0。数据记录以连续的字节跟随着头记录,并包含字段中的实际文本。

注意: 
数据文件中的数据开始于头记录 8 到 9 字节中指出的位置。数据记录以删除标记字节开始,如果该字节是一个 ASCII 空格(0x20),则该记录没有删除。如果这个首字节是一个星号(0x2A),则该记录已删除。来自字段子记录中指定字段的数据跟随着删除标记。
  

以字节为单位的记录长度,由所有字段已定义长度的和确定。表文件中的整数首先存储高位字节。

有关不同文件类型表结构的信息,请参见 表文件的表结构。


表头记录结构
偏移字节 说明 
0
 文件类型:
0x02  FoxBASE
0x03  FoxBASE+/Dbase III plus,没有备注
0x30  Visual FoxPro
0x31  Visual FoxPro,启用自动增量
0x32  Visual FoxPro,启用 Varchar、Varbinary 或 Blob
0x43  dBASE IV SQL 表文件,没有备注
0x63  dBASE IV SQL 系统文件,没有备注
0x83  FoxBASE+/dBASE III PLUS,带有备注
0x8B  dBASE IV 带有备注
0xCB  dBASE IV SQL 表文件,带有备注
0xF5  FoxPro 2.x (或以前)带有备注
0xFB  FoxBASE
 
1 - 3
 最后更新(YYMMDD)
 
4 – 7
 文件中的记录数
 
8 – 9
 第一条数据记录的位置
 
10 – 11
 一条数据记录的长度,包括删除标记
 
12 – 27
 保留
 
28
 表标记:
0x01 带有结构 .cdx 的文件
0x02 带有 Memo 字段的文件
0x04 是数据库(.dbc)的文件
该字节可以包含任何上述值的和。例如:0x03 值表示该表带有结构 .cdx 和 Memo 字段。
 
29
 代码页标记
 
30 – 31
 保留,包含 0x00
 
32 – n
 字段子记录
字段数决定了字段子记录的数量。表中的每个字段都存在一个字段子记录。
 
n+1
 头记录终止符(0x0D)
 
n+2 to n+264
 一个 263 字节的范围,包含了相关数据库(.dbc)文件相对路径的后链信息。如果第一个字节是 0x00,则该文件不于数据库关联。因此,数据库文件总是包含 0x00。
 

字段子记录结构
偏移字节 说明 
0 – 10
 带有 10 个字符最大值的字段名。如果小于 10,则用空字符(0x00)填补。
 
11
 字段类型:

W - 大二进制对象(Blob)

C – 字符型

C – 字符(二进制)(Character (binary))

Y – 货币型

B – 双精度(Double)

D – 日期型

T – 日期时间型

F – 浮点(Float)

G – 通用(General)

I – 整型(Integer)

L – 逻辑型

M – 备注型

M – 备注(二进制)(Memo (binary))

N – 数值型

P – 图片(Picture)

Q - 可变长二进制型(Varbinary)

V - 可变长字符(二进制)(Varchar (binary))

注意: 
对于每个 Varchar 和 Varbinary 字段,在最后一个系统字段(一个隐藏字段,存储所有可以为 Null 的字段的 Null 状态)中被分配一位或“varlength”位。如果 Varchar 或 Varbinary 字段可以为 Null,则 Null 位跟随在“varlength”位后。如果“varlength”位被设置为 1,实际字段值长度的长度被存储在该字段的最后字节中。否则,如果该位被设置为 0,该值的长度等于字段大小。
  
 
12 – 15
 记录中字段的偏移量
 
16
 字段长度(字节数)
 
17
 小数位数
 
18
 字段标记:
0x01 系统列(对用户不可见)
0x02 可以存储 Null 值的列
0x04 Binary 列(只用于 CHAR 和 MEMO)
0x06 (0x02+0x04) 当字段是 NULL 和 Binary(Integer、Currency 和 Character/Memo 字段)
0x0C 自动增量列
 
19 - 22
 自动增量的 Next 值
 
23
 自动增量的 Step 值
 
24 – 31
 保留
 

有关每条记录字符数限制、最多字段数等信息,请参见 Visual FoxPro 系统容量。


说明
当打开或添加字段值的自动增量时,Visual FoxPro 会修改表头。

除非在该文件中添加了下列其中一个功能,否则,Visual FoxPro 不会修改被存储为 FoxPro 2.x 文件格式的文件头:

Null 值支持

日期时间型、货币型和双精度型数据类型

被标记为 Binary 的 CHAR 或 MEMO 字段

被添加到数据库(.dbc)文件的表
提示: 
可以使用下列公式返回表文件中的字段数:(x – 296/32)。在该公式中,x 是第一条记录的位置(表头记录中的 8 到 9 字节),296 是 263 (后链信息) + 1 (头记录终止符) + 32 (第一个字段子记录),并且,32 是字段字记录的长度。
 
[解决办法]

引用:
谢谢,我的是DOS版的 FOXPRO 2.5
文件结构适用于 2.5
[解决办法]
引用:
Quote: 引用:


FOXPRO 2.X(及以下) 有备注:0xF5
FOXPRO 2.X(及以下) 有备注:0xFB 或 0x02 或 0x03 或 0x30

两个及以下?这样说有矛盾了

另外
FOXPRO 2.X 及以上不管有无备注都是 0xF5 ?
手误,更正:
FOXPRO 2.X(及以下) 有备注:0xF5
FOXPRO 2.X(及以下) 无备注:0xFB 或 0x02 或 0x03 或 0x30
及以下不矛盾,就是所以2.X及2.X下都是这样。

热点排行