2

如您所知,dBase 没有 x64 驱动程序;来自 Visual FoxPro 常见问题解答

问:Visual FoxPro 是否有计划支持 64 位版本的 Windows 操作系统?

不会。虽然 Visual FoxPro 将保持 32 位,并且本身不使用 64 位寻址;它将以 32 位兼容模式运行。

我试着做一个。

它比 ODBC 快得多,但只有一个问题:我无法确定是否删除了一行。

在 dBase 中,当您删除一行并没有真正删除它时,它只会被标记为已删除 - 我如何判断一行是否被删除?

4

1 回答 1

7

如果记录被删除,每条记录的第一个字节(不是标题或字段描述,而是实际记录数据)将包含一个星号(“*”),否则将包含一个空格(“”)。

这是我不久前在 Wotsit.org 上发现的一些内容,可能会有所帮助:

-------------------------------------------------- --------------------------
Xbase 语言中 .dbf 文件的一般格式 18-Nov-96
-------------------------------------------------- --------------------------
申请/支持:

   FS = 旗舰 D3 = dBaseIII+
   Fb = FoxBase D4 = dBaseIV
   Fp = FoxPro D5 = dBaseV
   CL = 快船


1. DBF结构
=================

字节描述
------+----------------------------------------
0..n .dbf 标头(大小见 2,字节 8)
n+1 固定长度的第一条记录(见 2&3)\
       第二条记录(大小见 2,字节 10)\ 如果 dbf 是
       ... / 不是空的
       最后记录 /
最后一个可选:0x1a(eof 字节)


2. DBF Header(大小可变,取决于字段数)
==================================================== =====

字节大小 内容 描述 适用于(支持)
----+----+--------+----------------+-- --------------------------
00 1 0x03 普通 .dbf FS、D3、D4、D5、Fb、Fp、CL
           0x04 普通 .dbf D4, D5 (FS)
           0x05 普通 .dbf D5, Fp (FS)
           0x43 与 .dbv 备忘录 var 大小 FS
           0xB3 带有 .dbv 和 .dbt 备忘录 FS
           0x83 带 .dbt 备忘录 FS、D3、D4、D5、Fb、Fp、CL
           0x8B 带有 D4 格式 D4、D5 的 .dbt 备忘录
           0x8E 与 SQL 表 D4、D5
           0xF5 带有 .fmp 备忘录 Fp
01 3 YYMMDD 最后更新位数 全部
04 4 ulong 文件中的记录数 all
08 2 ushort 标头大小,以字节为单位
10 2 ushort 记录大小,以字节为单位
12 2 0,0 全部保留
14 1 0x01 开始事务 D4、D5
           0x00 结束事务 D4、D5
           0x00 忽略 FS、D3、Fb、Fp、CL
15 1 0x01 加密 D4、D5
           0x00 正常可见全部
16 12 0 (1) 多用户环境使用 D4,D5
28 1 0x01 生产指数存在 Fp, D4, D5
           0x00 按需索引全部
29 1 n 语言驱动程序 ID D4, D5
           0x01 代码页 437 DOS 美国 Fp
           0x02 代码页 850 DOS Multi ling Fp
           0x03 代码页 1251 Windows ANSI Fp
           0xC8 代码页 1250 Windows EE Fp
           0x00 忽略 FS、D3、Fb、Fp、CL
30 2 0,0 全部保留
32 n*32 字段描述符,见 (2a) 全部
+1 1 0x0D 标头记录终止符全部


2a。dbf 标头中的字段描述符数组(每个字段固定 32 个字节)
=========================================

字节大小 内容 描述 适用于(支持)
----+----+--------+----------------+-- --------------------------
0 11 ASCI 字段名称,0x00 终止。全部
11 1 ASCI 字段类型(见 2b) 所有
12 4 n,n,n,n 内存 D3 中的 fld 地址
           n,n,0,0 从记录开始 Fp 的偏移量
           0,0,0,0 忽略 FS、D4、D5、Fb、CL
16 1 字节 字段长度,bin(见 2b) all \FS,CL:对于 C 字段类型,
17 1 字节十进制计数,bin all/both 用于 fld lng
18 2 0,0 全部保留
20 1 字节 工作区 ID D4, D5
           0x00 未使用的 FS、D3、Fb、Fp、CL
21 2 n,n 多用户 dBase D3, D4, D5
           0,0 忽略 FS、Fb、Fp、CL
23 1 0x01 设置字段 D3、D4、D5
           0x00 忽略 FS、Fb、Fp、CL
24 7 0..0 全部保留
31 1 0x01 字段位于 .mdx 索引 D4、D5
           0x00 忽略 FS、D3、Fb、Fp、CL


2b。dbf 头中的字段类型和大小,字段描述符(1 字节)
==================================================== =====

  尺寸类型描述/存储适用于(支持)
------+---------+------------------+-- --------------------------
C 1..n Char ASCII(OEM 代码页字符)全部
                 休息=空间,而不是 \0 术语。
                 n = 1..64kb(使用十进制计数)FS
                 n = 1..32kb(使用十进制计数)Fp, CL
                 n = 1..254 全部
D 8 日期 8 个 Ascii 数字 (0..9) 在所有
                 YYYYMMDD 格式
F 1..n 数字 Ascii 数字 (-.0123456789) FS, D4, D5, Fp
                 可变位置 浮点数
                 n = 1..20
N 1..n 数字 Ascii 数字 (-.0123456789) 全部
                 修复位置/无浮点数
                 n = 1..20 FS、Fp、CL
                 n = 1..18 D3、D4、D5、FB
L 1 逻辑 Ascii 字符(YyNnTtFf 空间)FS、D3、Fb、Fp、CL
                 Ascii 字符 (YyNnTtFf ?) D4, D5 (FS)
M 10 备注 10 位数字表示。一切开始
                 块位置。在 .dbt 文件中,或
                 如果备忘录中没有条目,则为 10 个空格
V 10 变量 .dbv FS 中的 bin/asc 数据
                 4bytes bin=备忘录中的起始位置
                 4bytes bin=块大小
                 1byte = 子类型
                 1 字节 = 保留 (0x1a)
                 如果 .dbv 中没有条目,则为 10 个空格
P 10 .ftp Fp 中的图片二进制数据
                 结构如 M
B 10 .dbt D5 中的二进制二进制数据
                 结构如 M
G 10 通用 OLE 对象 D5、Fp
                 结构如 M
2 2 short int binary int max +/- 32767 FS
4 4 long int binary int max +/- 2147483647 FS
8 8 双二进制有符号双 IEEE FS


3.每条Dbf记录(固定长度)
===================

字节大小 描述 适用于(支持)
------+----+---------------------------------------- +----------------------------
0 1 已删除标志“*”或未删除“”全部
1..n 1.. x-times 字段内容,全部修复
            长度,未终止。
            对于 n,请参见 (2) 字节 10..11
于 2009-12-14T19:32:51.240 回答