R E I N D E X 命 令

R E I N D E X 命 令 - 图1重建打开的索引文件

语 法

REINDEX [COMPACT]

参 数 描 述

C O M P A C T

R E I N D E X 命 令 - 图2将 普 通 的 单 索 引 ( .IDX) 文 件 转 换 为 压 缩 的 .IDX 文 件

说 明

R E I N D E X 命 令 - 图3R E I N D E X 命 令 - 图4R E I N D E X 命 令 - 图5R E I N D E X 命 令 - 图6当打开表而不打开相应的索引文件并更改索引文件的关键字段后 索引文件就变得过时 如果索引文件已过时 可以重建索引来更新这些索引文件

R E I N D E X 命 令 - 图7R E I N D E X 命 令 - 图8R E I N D E X 命 令 - 图9R E I N D E X 命 令 - 图10R E I N D E X 命 令 - 图11R E I N D E X 命 令 - 图12REINDEX 命令处理选定工作区中打开的所有索引文件 Visual FoxPro 识别每种索引文件的类别 复合索引 (.CDX 文件 结构 .CDX 文件及单索引 .IDX) 文件 并分别

R E I N D E X 命 令 - 图13R E I N D E X 命 令 - 图14R E I N D E X 命 令 - 图15重建索引 此命令更新 .CDX 文件中的所有标识 并且更新与表一起自动打开的结构 .CDX 文件

对使用包含 UNIQUE 关键字的 INDEX 命令或 SET UNIQUE ON 命令创建的索引文

R E I N D E X 命 令 - 图16R E I N D E X 命 令 - 图17R E I N D E X 命 令 - 图18R E I N D E X 命 令 - 图19R E I N D E X 命 令 - 图20件 在重建索引时 仍保持 UNIQUE 状态要重建过时的索引文件 可以执行下列命令

USE TableName INDEX OutdatedIndexNames

REINDEX

示 例

R E I N D E X 命 令 - 图21R E I N D E X 命 令 - 图22R E I N D E X 命 令 - 图23R E I N D E X 命 令 - 图24R E I N D E X 命 令 - 图25R E I N D E X 命 令 - 图26下面的示例中 ISEXCLUSIVE 验证了 customer 表是以独占的方式打开的 因为当前工作区中的索引不是以独占的方式打开的 所以没有对表做重新索引

cExclusive = SET('EXCLUSIVE') SET EXCLUSIVE OFF

SET PATH TO (HOME(2) + 'Data\')

OPEN DATA testdata && 打开 test 数据库

USE Customer && 不是以独占方式打开

USE Employee IN 0 EXCLUSIVE && 在另一个工作区以独占方式打开

R E I N D E X 命 令 - 图27R E I N D E X 命 令 - 图28R E I N D E X 命 令 - 图29R E I N D E X 命 令 - 图30R E I N D E X 命 令 - 图31IF ISEXCLUSIVE( )

&& 只能在独占方式下完成操作

ELSE

WAIT WINDOW 'The table has to be exclusively opened' ENDIF

SET EXCLUSIVE &cExclusive

请 参 阅

INDEX , SET INDEX , SET EXCLUSIV E, SET UNIQU E , SYS( ) 函 数 概 览 , USE