Show/Hide Toolbars

XSharp

Note该命令在头文件中定义,将由 X# 预处理器预处理为函数调用。如果禁用标准头文件 (-nostddefs),该命令将不可用。如果告诉编译器使用不同的标准头文件(-stddef ),则此命令也可能不可用。

用途

重建当前工作区 order 列表中的所有 order。

语法

REINDEX [EVAL <lCondition> [EVERY <nRecords>]

参数

EVAL <cbEval>以 EVERY <nInterval> 指定的时间间隔评估的代码块。 默认时间间隔为 1,这在制作状态栏或进度条以监控排序进度时非常有用。 <cbEval> 的返回值必须是逻辑值。 如果 <cbEval> 返回 FALSE,索引将停止。

 

EVERY <nInterval>数值表达式,用于确定 <cbEval> 的评估次数。 该选项通过间隔评估条件来提高性能,而不是每处理一条记录就评估一次。 如果不指定 EVAL 子句,EVERY 关键字将被忽略。

描述

REINDEX 在功能上等同于 DbReindex()。

 

注意  REINDEX 在重建索引时不会重新创建索引文件头。 因此,如果文件头损坏,REINDEX 也无济于事。 为保证索引的有效性,请务必使用 INDEX ON 代替 REINDEX 来重建损坏的索引文件

示例

下面的示例重新索引了当前工作区中的 order :

USE sales INDEX salesman, territory NEW
REINDEX

此示例使用进度条重新索引:

USE sales INDEX salesman, territory NEW
REINDEX EVAL NtxProgress() EVERY 10
 
FUNCTION NtxProgress()
 LOCAL cComplete := LTRIM(STR((RECNO() / ;
                 LastRec()) * 100))
 @ 23, 00 SAY "Indexing..." + cComplete + "%"
RETURN TRUE

 

程序集

XSharp.RT.DLL

参见

DBCreateIndex(), DbCreateOrder(), DbReindex(), INDEX, PACK, SET INDEX, USE