回 帖 发 新 帖 刷新版面

主题:表没有设置排序索引

表已经建立了索引,但当我用seek进行查找的时候,提示的错误为:表没有设置排序索引
请问是什么原因?是不是要设置成主索引??

回复列表 (共6个回复)

沙发

SEEK 命令,只能在进行了索引的表中 ,且仅可以搜索索引关键字。

板凳

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 楼

一张表可以同时打开多个索引文件。但只只能指定一个主控索引文件) 确定了表中记录的显示或访问顺序。

SET ORDER 允许您指定主控索引文件或标识。

某些命令(如 SEEK) 只能用主控索引文件或标识搜索记录。


通俗来讲:再打开表的多个索引中,只能指定一个索引,为当前索引(主控索引文件或主控标识)。

4 楼

谢谢各位老师,问题解决了,原因就是我没有设置主控索引.非常感谢你们.
祝大家新年快乐.

5 楼

使用SEEK()函数就可不必指定当前索引。

6 楼


是用的SEEK命令,但需要设定主索引,不然程序找不以排序索引的.

我来回复

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