Beh*_*ooz 1 database-design dbase
如您所知,没有用于dBase的x64驱动程序。
“ http://msdn.microsoft.com/zh-cn/vfoxpro/bb190289.aspx ”
我试图制作一个。
它比ODBC快得多。但是只有一个问题。
我无法确定是否删除了一行。
如果删除了记录,则每个记录的第一个字节(不是标题或字段描述,而是实际的记录数据)将包含一个星号(*),否则将包含一个空格(“”)。
这是我在Wotsit.org上找到的,可能会有所帮助:
-------------------------------------------------- -------------------------- Xbase语言中.dbf文件的一般格式96年11月18日 -------------------------------------------------- -------------------------- 适用于/受以下机构支持: 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标头(大小可变,取决于字段数) ================================================== ===== 字节大小内容描述适用于(支持) ---- + ---- + -------- + ---------------------------- +- --------------------------- 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 具有.dbv和.dbt备忘录FS的0xB3 具有.dbt备忘FS,D3,D4,D5,Fb,Fp,CL的0x83 具有D4格式D4,D5的.dbt备注的0x8B 带SQL表D4,D5的0x8E 0xF5,带有.fmp备忘录Fp 01 3 YYMMDD最后更新的数字全部 04 4 ulong全部文件中的记录数 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 USA 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)全部 内存D3中的12 4 n,n,n,n fld地址 从记录开始Fp的n,n,0,0偏移 0,0,0,0被忽略FS,D4,D5,Fb,CL 16 1个字节字段长度,bin(请参见2b)全部\ FS,CL:对于C字段类型, 17 1字节十进制计数,bin全部/都用于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字符ASCII(OEM代码页字符)全部 休息=空间,而不是\ 0项。 n = 1..64kb(使用分位数)FS n = 1..32kb(使用分位数)Fp,CL n = 1..254全部 D 8总共8个数字(0..9) YYYYMMDD格式 F 1..n ASCII数字(-.0123456789)FS,D4,D5,Fp 可变位置 float.point n = 1..20 N 1..n个数字的ASCII数字(-.0123456789) 修复posit / no float.point 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二进制int最大+/- 32767 FS 4 4 long int二进制int最大+/- 2147483647 FS 8 8双二进制带符号双IEEE FS 3.每个Dbf记录(固定长度) ================== 字节大小描述适用于(受支持) ------ + ---- + -------------------------------------- + -------------------------- 0 1已删除标志“ *”或未删除“”全部 1..n 1 .. x倍字段内容,固定全部 长度,未终止。 对于n,请参见(2)字节10..11
归档时间: |
|
查看次数: |
2201 次 |
最近记录: |