如何在MS FoxPro中程序化给CDX索引文件添加索引键?
在MS FoxPro中程序化添加CDX索引键的方案
FoxPro本身没有和Clipper的sx_KeyAdd或addkey()完全对应的集成函数,但可以通过内置命令实现等效功能——往CDX复合索引文件中添加新的索引项(即TAG),具体方法如下:
标准索引添加方式
利用FoxPro原生的INDEX ON命令,这是操作CDX索引的核心方法:- 若要往结构CDX(和表同名的CDX文件,自动随表打开)中添加索引:
INDEX ON 你的字段名 TAG 索引标识名 [FOR 筛选条件] - 若要往独立CDX(自定义命名的CDX文件)中添加索引:
INDEX ON 你的字段名 TAG 索引标识名 OF 你的索引文件名.CDX [FOR 筛选条件]
执行该命令后,新的索引会直接追加到指定的CDX文件中,效果和
sx_KeyAdd一致。- 若要往结构CDX(和表同名的CDX文件,自动随表打开)中添加索引:
程序化动态生成索引
如果需要根据变量动态指定索引字段或标识名,可以用名称表达式(比宏替换更安全)实现:lcKeyExpr = "订单日期 + 客户编号" && 自定义索引表达式 lcTagName = "订单客户索引" && 自定义索引标识名 lcCdxFile = "订单索引.CDX" && 目标CDX文件名 INDEX ON (lcKeyExpr) TAG (lcTagName) OF (lcCdxFile)额外说明
- 若要修改已有的索引,需要先删除旧的索引标识:
DELETE TAG 旧索引标识名 [OF 索引文件名.CDX],再重新创建新索引。 - FoxPro的CDX是复合索引文件,每个索引对应一个独立的TAG,添加新索引本质就是新增TAG,这和你在Clipper中用
sx_KeyAdd操作FoxPro索引的逻辑完全匹配。
- 若要修改已有的索引,需要先删除旧的索引标识:
内容的提问来源于stack exchange,提问作者MedHome
相关产品推荐
相关产品推荐

