SET INDEX 命令
打开一个或多个索引文件,供当前表使用。
SET INDEX TO [IndexFileList | ? ] [ORDER nIndexNumber
| IDXIndexFileName | [TAG] TagName [OF CDXFileName] [ASCENDING
| DESCENDING]] [ADDITIVE]
参数
IndexFileList
指定要打开的一个或多个索引文件。用逗号分隔列表中的多个索引文件。索引文件列表可以包含任意个 .idx 和 .cdx 索引文件名;除非有相同名称的 .idx 或 .cdx 文件存在,否则不必包含文件扩展名。索引文件列表中的第一个索引文件变为主控索引文件,它控制如何访问和显示记录。如果第一个索引文件是 .cdx 文件且没有发出 SET ORDER TO TAG 命令,则按物理记录顺序显示和访问记录。
?
显示打开对话框,从中可以打开单索个 .idx 文件。
ORDER nIndexNumber
指定主控索引文件或标识。数值表达式 nIndexNumber 指定索引文件列表中出现的索引文件。首先按索引文件列表中出现的顺序给 .Idx 文件编号。然后按照创建标识的顺序对结构索引 .cdx 文件(如果存在)中的标识进行编号。最后,按照创建文件的顺序对独立索引 .cdx 文件中的标识进行编号。有关对索引文件和标识编号的详细描述,请参见 SET ORDER。如果 nIndexNumber 为 0,则以物理顺序显示和访问表中的记录,但仍保持索引文件的打开。以物理顺序访问记录时,ORDER 0 能够更新打开的索引文件。不带附加参数的 ORDER 等价于 ORDER 0。如果 nIndexNumber 大于 .idx 文件和 .cdx 文件标识的数目,则 Visual FoxPro 将产生一条错误信息。
ORDER IDXIndexFileName
指定一个 .idx 文件作为主控索引文件。
ORDER [TAG] TagName[OF CDXFileName]
指定一个 .cdx 文件的标识(TagName)作为主控标识。标识名可以来自结构索引 .cdx 文件或任何打开的独立索引 .cdx 文件。在打开的独立索引 .cdx 文件中,如果存在相同名称的标识,则应适用 OF CDXFileName 指定标识所在的 .cdx 文件。
ASCENDING | DESCENDING
指定显示和访问表记录时,是以升序还是降序进行。索引文件或标识不做任何改变;只改变记录显示和访问的顺序。应在 ORDER 子句之后紧接着包含 ASCENDING 或 DESCENDING 子句。
ADDITIVE
指定前面所打开的一个索引文件(除了结果复合索引),在发出 SET INDEX 命令打开另一个索引文件或表文件时保持打开。不带 ADDITIVE 子句,将关闭先前打开的文件。
说明
在存在索引文件的表中,记录的显示和访问顺序,可以由某个索引文件来决定。使用 SET INDEX 可以打开单索引(.idx)和复合索引(.cdx)文件。如果表存在结构索引 .cdx 文件,则在打开表时自动打开该文件。
只有一个 .idx 文件(主控索引文件) 或 .cdx 文件中的标识(主控标识)控制表中显示和访问记录的顺序。某些命令(如 SEEK)使用主控索引文件或标识来搜索记录。
发出不带附加参数的 SET INDEX TO 命令,将关闭在当前工作区中所有打开的索引文件(除了结构索引 .cdx 文件)。
DELETE TAG 命令
从复合索引文件(.cdx)中删除一个标识或多个标识。下面是语法的 2 个版本:
DELETE TAG TagName1 [OF CDXFileName1] [, TagName2 [OF CDXFileName2]]...
DELETE TAG ALL [OF CDXFileName]
参数
TagName1 [OF CDXFileName1] [, TagName2 [OF CDXFileName2]] ...
指定要从复合索引文件中删除的标识。可以使用包含一系列用逗号隔开的标识名的 DELETE TAG 命令删除多个标识。如果在打开的多个索引文件中有 2 个或更多的同名的标识,可以通过包含 OF CDXFileName 从某一特定的索引文件中删除一个标识。
ALL [OF CDXFileName]
从复合索引文件中删除所有标识。如果当前表中有结构复合索引文件,就从该索引文件中删除所有的标识,并从磁盘上删除该索引文件,表头上标明有一个关联的结构符合索引文件存在的标记同时被删除。使用带有OF CDXFileName 的 ALL,可以从另一个打开的复合索引文件中删除所有标识,而不是从结构复合索引文件中删除标识。
说明
用 INDEX 创建的复合索引文件包含与索引项相对应的标识。DELETE TAG 由来从打开的复合索引文件中删除一个或多个标识,可以只删除在当前工作区中打开的复合索引文件的标识。如果删除了一个复合索引文件中的所有标识,文件就从磁盘上删除。
Visual FoxPro 首先在结构符合索引文件(如果打开了一个的话)中查找一个标识。如果此标识不在结构复合索引文件中,Visual FoxPro 就在其它打开的复合索引文件中查找。
如果试图删除一个主索引标识或候选索引标识,且 SET SAFETY 为 ON,Visual FoxPro 将发出警告。
可以删除啊,除了主索引删除后,可能导致本表的实体完整性受影响,数据库表的参照完整性受到影响,候选索引删除也可能会影响到本表的实体完整性外,其他索引的删除无非会产生这样两个后果:表间联系被去掉,大多数时候只是会影响到查找的速度而已上面说的主要都是结构复合索引cdx文件里面的,那个普通索引idx文件本来就是一个独立的文件,删除了也不会影响到原始表
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)