首页 百科知识 索引的永久关系和临时索引的使用

索引的永久关系和临时索引的使用

时间:2024-10-21 百科知识 版权反馈
【摘要】:注意:如果发出SET ORDER TO 0命令,则所有索引文件仍保持打开。如果索引编号大于所有索引文件的索引标识数,则VFP显示出错。SEEK命令在一张表中利用主控索引或指定索引搜索首次出现的一个记录,这个记录的索引关键字必须与指定的表达式相匹配。

3.4.4 索引的使用

一、设置主控索引

一张打开的表可以同时打开多个索引文件(独立或复合的),但要决定显示或访问表中记录的顺序,需要设置一个索引作为主控索引。它可以是一个独立索引(.idx)文件,也可以是复合索引(.cdx)文件中的一个标识(主控标识)。

在复合索引的多个索引中,在某一个时刻只有一个索引对表起作用,该索引标识称为主控索引标识。

结构复合索引文件是随表的打开而自动打开的,但复合索引中的任何一个索引都不会被自动设置为主控标识,此时,表中的记录仍按记录的物理顺序显示和访问。除非在打开表时指定某一索引标识为主控标识,或者在表打开后,再用其他命令设置主控索引。

1.打开表的同时指定主控索引

(1)指定复合索引文件的主控标识。命令格式如下:

USE表文件名ORDER[TAG]标识名[OF cdx文件名]

(2)指定独立索引文件为主控索引文件。命令格式如下:

USE表文件名ORDER idx文件名

(3)按照索引编号指定主控索引。命令格式如下:

USE表文件名ORDER索引编号

说明:索引编号的方式是,先编号.idx索引文件;然后对结构复合索引文件中的标识编号;最后对任何非结构复合索引文件的标识按其创建顺序编号。

2.打开表后再设置主控索引

在界面方式下,在“数据工作期”窗口中,单击“属性”按钮,打开“工作区属性”窗口,在“索引顺序”下拉列表中指定主控索引。

也可以用如下命令设置主控索引:

SET ORDER TO[索引编号|idx文件|[TAG]TAG名[Ofcdx文件]

[IN工作区|别名][ASCENDING|DESCENDING]

注意:如果发出SET ORDER TO 0命令,则所有索引文件仍保持打开。但是,表中所有记录的显示和访问顺序是记录号顺序而不是索引顺序。SET ORDER TO命令与SET ORDER TO 0命令完全一样。如果索引编号大于所有索引文件的索引标识数,则VFP显示出错。

二、有关索引的常用函数

(1)CDX(1)和NDX(1)函数

返回打开的结构复合索引文件件名或独立索引文件名(含路径)

(2)ORDER()和SYS(22)函数

返回主控索引标识或独立索引标识。

(3)TAG()函数

返回复合索引文件中的索引标识名。

三、快速定位记录

表建立了索引后,可以使用FIND、SEEK命令或SEEK()函数来进行定位。

(1)FIND命令

FIND命令在一张表中利用主控索引或指定索引搜索首次出现的一个记录,这个记录的索引关键字必须与指定的表达式相匹配。

一般格式:FIND字符串

说明:FIND只能在索引过的表中使用,并且只能搜索索引关键字;如找不到相匹配的关键字,则RECNO()将返回表中记录个数+1,FOUND()返回.F.,EOF()返回.T.。

字符串可以不加引号。

(2)SEEK命令

SEEK命令在一张表中利用主控索引或指定索引搜索首次出现的一个记录,这个记录的索引关键字必须与指定的表达式相匹配。

一般格式:SEEK表达式

说明:SEEK只能在索引过的表中使用,并且只能搜索索引关键字。如找不到相匹配的关键字,则RECNO()将返回表中记录个数+1,FOUND()返回.F.,EOF()返回.T.。

字符串一定要加引号。

例如:查询xs表中"李小林"的情况。

USE XS

img146

SEEK"李小林"

DISP

也可以用FIND查询

FIND"李小林"或FIND李小林

DISP

结果为:显示"李小林"的情况。

如果

img147

SEEK"李小林"

DISP

则不能显示“李小林”的情况。而是显示“未找到”,尽管“李小林”是存在的。因为这里主控索引错了。

(3)SEEK()函数

SEEK()函数的功能等价于先执行SEEK命令,再执行FOUND()函数。

img148

另外,还可以利用索引建立表与表之间的永久关系和临时关系。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈