locate 命令

示例 请参阅

按顺序搜索表从而找到满足指定逻辑表达式的第一个记录。

语法

LOCATE FOR lExpression1
[Scope]
[WHILE ]
[NOOPTIMIZE]

参数

FOR lExpression1

LOCATE 按顺序搜索当前表以找到满足逻辑表达式 lExpression1 的第一个记录。
若 lExpression1 是可优化表达式,则 Rushmore 优化由 LOCATE FOR 创建的查询。为了获得最佳执行效果,可在 FOR 子句中使用可优化表达式。有关详细内容,请参阅 SET OPTIMIZE 和 深入了解 Rushmore 技术 或《开发指南》的第十七章,“优化应用程序”。

Scope

指定要定位的记录范围。只有范围内的记录才被定位。Scope 子句有 ALL、NEXT nRecords、RECORD nRecordNumber 和 REST。有关 Scope 子句的详细内容,请参阅 Scope 子句语言概述。包含 Scope 的命令只能在活动工作区中的表上操作。
LOCATE 的默认范围是所有 (ALL) 记录。

WHILE lExpression2

指定一个条件,只要逻辑表达式 lExpression2 计算值为“真”(.T.),就继续查找记录。

NOOPTIMIZE

关闭 LOCATE 的 Rushmore 优化。有关详细内容,请参阅 SET OPTIMIZE 和 深入了解 Rushmore 技术 或《开发指南》的第十七章,“优化应用程序”。

说明
被索引的表不必已有索引。
若 LOCATE 发现一个满足条件的记录,可使用 RECNO( ) 返回该记录号。若发现满足条件的记录,则 FOUND( ) 返回“真”(.T.),EOF( ) 返回“假”(.F.)。若 SET TALK 是 ON,则显示满足条件的记录号。
LOCATE 发现一个满足条件的记录之后,可执行 CONTINUE,从而在表的剩余部分寻找其他满足条件的记录。当执行 CONTINUE 时,搜索操作从满足条件的记录的下一条记录开始继续执行。可重复执行 CONTINUE,直到到达范围边界或表尾。

若找不到满足条件的记录,则 RECNO( ) 返回表中的记录数加 1,FOUND( ) 返回“假”(.F.),EOF( ) 返回“真”(.T.)。
LOCATE 和 CONTINUE 只能用于当前工作区。若选择了另一工作区,则当重选原来的工作区时可继续原来的搜索过程。