1000分外加一套foxpro巅峰之作的《迷你库存管理系统》相送

henrynj 2002-12-06 05:59:33
最近我在一个的pda的应用,查找时由于数据量太大,速度很慢, 无法忍受 我曾考虑过先为数据建立索引,把索引调到内存中,用折半查,找到记录号后,再去8M卡上读记录,
但这又会花费pda的一笔额外的开销不知各位高手注意过没有,foxpro的.cdx就是一个很好的动态的查找数据结构,现在关键就是我不太清楚.cdx文件存储结格式和所用的数据结构.恳请各路高手帮帮我!
唉....程序员苦命啊!
...全文
33 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoniaoleyuan 2002-12-28
  • 打赏
  • 举报
回复
up
Hawkxp 2002-12-11
  • 打赏
  • 举报
回复
压缩索引内部结点记录

字节偏移 说明
00 - 01 结点属性(下列某一数值或它们的和):
a.0 – 索引结点
b.1 – 根结点
c.2 – 叶结点
02 - 03 现有关键字的数目(0,1 或更多)
04 - 07 当前结点的左结点指针(在同一层次上;如果不存在,则为 - 1)
08 - 11 当前结点的右结点指针(在同一层次上;如果不存在,则为 - 1)
12 - 511 最多有 500 个字符,其中包括关键字长度的值,用四字节的十六进制数表示(按照一般的自左而右的格式存储):
此结点总是包含索引关键字、记录编号及内联索引指针2。
字节 02 - 03 指定的数决定键值/四字节十六进制数组合出现的次数。


压缩索引外部结点记录

00 - 01 结点属性(下列某一数值或它们的和):
0 – 索引结点
1 – 根结点
2 – 叶结点
02 - 03 现有关键字的数目(0,1 或更多)
04 - 07 当前结点的左结点指针(在同一层次上;如果不存在,则为 - 1)
08 - 11 当前结点的右结点指针(在同一层次上;如果不存在,则为 - 1)
12 - 13 结点上可用的自由空间
14 - 17 记录号掩码
18 重复字节计数掩码
19 后缀字节计数掩码
20 用作记录号的比特位数
21 用作重复计数的比特位数
22 用作后缀计数的比特位数
23 包含记录号、重复计数及后缀计数的字节数
24 - 511 索引关键字的信息2
2 每项均由记录号、重复字节计数及后缀字节计数组成,并且都为压缩形式。关键字文本放置在结点的逻辑末尾,向后起作用,适用于当前的各个关键字项。
Hawkxp 2002-12-11
  • 打赏
  • 举报
回复
压缩索引头记录

字节偏移 说明
00 - 03 指向根结点的指针
04 - 07 指向自由结点列表的指针(如果不存在,则为 – 1 )
08 - 11 保留供内部使用
12 - 13 关键字长度
14 索引选项(下列某一数值或它们的和)
1–唯一索引
8–索引包含 FOR 子句
32 –压缩索引格式
64 –复合索引标头
15 索引签名
16 - 19 保留供内部使用
20 - 23 保留供内部使用
24 - 27 保留供内部使用
28 - 31 保留供内部使用
32 - 35 保留供内部使用
36 - 501 保留供内部使用
502 - 503 升序或降序
0 = 升序
1 =降序
504 - 505 保留供内部使用
506 - 507 FOR 表达式池长度1
508 - 509 保留供内部使用
510 - 511 关键字表达式池长度1
512 - 1023 关键字表达式池(未编译)
1 该信息追踪关键字表达式池中使用的空间。
Hawkxp 2002-12-11
  • 打赏
  • 举报
回复
所有复合索引(.cdx)均为压缩索引(idx)。

存在一种追踪 .cdx 文件中所有标识的文件结构。该结构与压缩索引文件的结构只有一点不同:该结构中最低层的叶结点指向复合索引中的标识。

索引中所有标识均有各自的完整结构,并与 .idx 文件的压缩索引结构等价。

压缩索引头记录

字节偏移 说明
00 - 03 指向根结点的指针
04 - 07 指向自由结点列表的指针(如果不存在,则为 – 1 )
08 - 11 保留供内部使用
12 - 13 关键字长度
14 索引选项(下列某一数值或它们的和)
1–唯一索引
8–索引包含 FOR 子句
32 –压缩索引格式
64 –复合索引标头
15 索引签名
16 - 19 保留供内部使用
20 - 23 保留供内部使用
24 - 27 保留供内部使用
28 - 31 保留供内部使用
32 - 35 保留供内部使用
36 - 501 保留供内部使用
502 - 503 升序或降序
0 = 升序
1 =降序
504 - 505 保留供内部使用
506 - 507 FOR 表达式池长度1
508 - 509 保留供内部使用
510 - 511 关键字表达式池长度1
512 - 1023 关键字表达式池(未编译)
1 该信息追踪关键字表达式池中使用的空间。


压缩索引内部结点记录

字节偏移 说明
00 - 01 结点属性(下列某一数值或它们的和):
a.0 – 索引结点
b.1 – 根结点
c.2 – 叶结点
02 - 03 现有关键字的数目(0,1 或更多)
04 - 07 当前结点的左结点指针(在同一层次上;如果不存在,则为 - 1)
08 - 11 当前结点的右结点指针(在同一层次上;如果不存在,则为 - 1)
12 - 511 最多有 500 个字符,其中包括关键字长度的值,用四字节的十六进制数表示(按照一般的自左而右的格式存储):
此结点总是包含索引关键字、记录编号及内联索引指针2。
字节 02 - 03 指定的数决定键值/四字节十六进制数组合出现的次数。


压缩索引外部结点记录

00 - 01 结点属性(下列某一数值或它们的和):
0 – 索引结点
1 – 根结点
2 – 叶结点
02 - 03 现有关键字的数目(0,1 或更多)
04 - 07 当前结点的左结点指针(在同一层次上;如果不存在,则为 - 1)
08 - 11 当前结点的右结点指针(在同一层次上;如果不存在,则为 - 1)
12 - 13 结点上可用的自由空间
14 - 17 记录号掩码
18 重复字节计数掩码
19 后缀字节计数掩码
20 用作记录号的比特位数
21 用作重复计数的比特位数
22 用作后缀计数的比特位数
23 包含记录号、重复计数及后缀计数的字节数
24 - 511 索引关键字的信息2
2 每项均由记录号、重复字节计数及后缀字节计数组成,并且都为压缩形式。关键字文本放置在结点的逻辑末尾,向后起作用,适用于当前的各个关键字项。

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧