语法
SCAN [NOOPTIMIZE]
[Scope] [FOR lExpression1] [WHILE lExpression2]
[Commands]
[LOOP]
[EXIT]
ENDSCAN
参数
NOOPTIMIZE
关闭对 SCAN 命令的 Rushmore 优化。有关详细内容,请参阅 SET OPTIMIZE
和深入了解 Rushmore 技术主题,或者《开发指南》第十五章“优化应用程序”。
Scope
指定扫描记录的范围。只有范围之内的记录才可能扫描到。范围子句有 ALL,NEXT nRecords,RECORD nRecordNumber 和 REST。有关范围子句的详细内容,请参阅Scope
子句主题或《开发指南》第二章“语言概述”。
SCAN 的默认范围是所有记录(ALL)。
FOR lExpression1
只有使表达式 lExpression1 计算为“真”(.T.)的记录,才对其执行命令。包含 FOR 子句可以筛选出不想扫描的记录。
当表达式 lExpression1 是可优化表达式时,Rushmore 将优化 SCAN ... FOR 命令创建的查询。为使系统获得最佳性能,应在 FOR 子句中使用可优化的表达式。有关详细内容,请参阅
SET OPTIMIZE 和深入了解 Rushmore
技术主题,或《开发指南》第十五章“优化应用程序”。
WHILE lExpression2
指定一个逻辑表达式 lExpression2 作为执行命令的条件。只要逻辑表达式计算为“真”,就对记录执行命令,直至遇到使表达式不为“真”(.T.) 的记录为止。
Commands
指定要执行的 Visual FoxPro 命令。
LOOP
把控制权直接返回到 SCAN 命令。LOOP 可以放在 SCAN 到 ENDSCAN 之间的任何地方。
EXIT
把程序的控制权从 SCAN ... ENDSCAN 循环语句中交给 ENDSCAN 下面的命令。EXIT 可以放在 SCAN 到 ENDSCAN
之间的任何地方。
ENDSCAN
标志 SCAN 过程的结束。
说明
SCAN 命令自动将记录指针移到下一条满足指定条件的记录,并执行相应的命令块。
可以在 ENDSCAN 同一行的后面加一些注释。注释在程序编译和执行时不起作用。