回 帖 发 新 帖 刷新版面

主题:VF 多字段索引

现有一个CJ表,以XM+STR(YW,3)做索引,并已经打开,现查询姓名张三,语文成绩为140这条记录,SEEK后表达式该怎么写?查询姓名李四,语文成绩90这条记录,SEEK后表达式怎么写?SEEK "张三"+"140" SEEK "李四"+" 90"查不到,请各位大侠帮助一下初学者。

回复列表 (共2个回复)

沙发

CREATE TABLE cjk (xm c(8),yw n(3))
INSERT INTO cjk (xm,yw) VALUES ('张三',140)
INSERT INTO cjk (xm,yw) VALUES ('李四',90)
INSERT INTO cjk (xm,yw) VALUES ('大刀王五',999)
INDEX ON ALLTRIM(xm)+ALLTRIM(STR(yw)) TAG xm_yw
SET ORDER TO XM_YW   && XM+STR(YW)
SEEK '张三'+'140'
?FOUND()

以上命令测试成功

要点:
1、使用alltrim()函数去掉空格
2、使用SET ORDER TO正确设置当前顺序(或者说索引)

其实记录数很少的话还是使用LOCATE 命令方便点,这个与索引无关,只是缺点是效率低。

建议使用SQL中的SELECT命令来查找记录,我N年都不用SEEK和LOCATE了

板凳

XM+STR(YW,3)

你用的是XM,这个是字段的全长。

SEEK "张三"+"140"  你这个“张三”并不等于全长的字段,找不到是正常的。




我来回复

您尚未登录,请登录后再回复。点此登录或注册