主题:表没有设置排序索引
sleepingsleeping
[专家分:150] 发布于 2009-01-14 19:27:00
表已经建立了索引,但当我用seek进行查找的时候,提示的错误为:表没有设置排序索引
请问是什么原因?是不是要设置成主索引??
回复列表 (共6个回复)
沙发
cbl518 [专家分:57140] 发布于 2009-01-14 21:15:00
SEEK 命令,只能在进行了索引的表中 ,且仅可以搜索索引关键字。
板凳
foxdb [专家分:1830] 发布于 2009-01-14 23:47:00
1、 如果表已经建立了索引 SEEK 前必须用 SET ORDER TO *** 来指定表的主控索引文件(.IDX)或标识(.CDX)
2、 由于 .IDX 文件首先被编号,因此发出命令 SET ORDER TO 1 将使 title.idx 成为主控索引,而发出 SET ORDER TO 2 则使 rating.idx 成为主控索引。
3、指定 .CDX 文件中的一个标识作为主控索引标识。标识名可以来自结构 .CDX 文件或任何打开的独立 .CDX 文件。
如果在各打开的独立 .CDX 文件中存在相同的标识名,应使用 OF CDXFileName 来指定包含此标识的 .CDX 文件。
4、比如,.CDX 文件里有“编号”(主索引)“身份证号码”这两个索引标识,身份证号码变量为:M_ID 如果你要SEEK 身份证号码 那么就应该这样:
SET ORDER TO 身份证号码
SEEK M_ID
IF FOUND()=.T.
?MESSAGEBOX('身份证已找到!',36,'信息提示!')
ELSE
?MESSAGEBOX('身份证号码不存在!',36,'信息提示!')
ENDIF
3 楼
cbl518 [专家分:57140] 发布于 2009-01-15 09:06:00
一张表可以同时打开多个索引文件。但只只能指定一个主控索引文件) 确定了表中记录的显示或访问顺序。
SET ORDER 允许您指定主控索引文件或标识。
某些命令(如 SEEK) 只能用主控索引文件或标识搜索记录。
通俗来讲:再打开表的多个索引中,只能指定一个索引,为当前索引(主控索引文件或主控标识)。
4 楼
sleepingsleeping [专家分:150] 发布于 2009-01-15 10:23:00
谢谢各位老师,问题解决了,原因就是我没有设置主控索引.非常感谢你们.
祝大家新年快乐.
5 楼
fyyylyl [专家分:8550] 发布于 2009-01-15 10:26:00
使用SEEK()函数就可不必指定当前索引。
6 楼
sleepingsleeping [专家分:150] 发布于 2009-01-16 10:19:00
是用的SEEK命令,但需要设定主索引,不然程序找不以排序索引的.
我来回复