SCAN ... E N D S C A N 命 令

SCAN ... E N D S C A N 命 令 - 图1SCAN ... E N D S C A N 命 令 - 图2在当前选定的表中移动记录指针 并对每一个满足指定条件的记录执行一组命令

语 法

SCAN [NOOPTIMIZE]

[ Scope ] [FOR lExpression1 ] [ W H ILE lExpression2 ] [ Commands ]

[LOOP]

[EXIT] ENDSCAN

参 数 描 述

NOOPTIMIZE

SCAN ... E N D S C A N 命 令 - 图3防 止 SCAN 的 Rushmore 优 化

SCAN ... E N D S C A N 命 令 - 图4SCAN ... E N D S C A N 命 令 - 图5SCAN ... E N D S C A N 命 令 - 图6SCAN ... E N D S C A N 命 令 - 图7SCAN ... E N D S C A N 命 令 - 图8SCAN ... E N D S C A N 命 令 - 图9SCAN ... E N D S C A N 命 令 - 图10SCAN ... E N D S C A N 命 令 - 图11SCAN ... E N D S C A N 命 令 - 图12SCAN ... E N D S C A N 命 令 - 图13有 关 详 细 内 容 请 参 阅 稍 后 的 SET OPTIMIZE 命 令 和 M icrosoft Visual FoxPro 6.0 中 文 版 程 序 员 指 南 第 十 五 章 优 化 应 用 程 序 中 的 掌 握Rushmore 技 术

Scope

SCAN ... E N D S C A N 命 令 - 图14SCAN ... E N D S C A N 命 令 - 图15指 定 扫 描 记 录 的 范 围 只 有 范 围 之 内 的 记 录 才 可 能 扫 描 到 Scope 子 句 有

SCAN ... E N D S C A N 命 令 - 图16SCAN ... E N D S C A N 命 令 - 图17SCAN ... E N D S C A N 命 令 - 图18ALL NEXT nRecords RECORD nRecordNumber 和 REST

SCAN ... E N D S C A N 命 令 - 图19SCAN ... E N D S C A N 命 令 - 图20SCAN ... E N D S C A N 命 令 - 图21SCAN 的默认范围是所有记录 ALL

FOR lExpression1

SCAN ... E N D S C A N 命 令 - 图22SCAN ... E N D S C A N 命 令 - 图23SCAN ... E N D S C A N 命 令 - 图24SCAN ... E N D S C A N 命 令 - 图25SCAN ... E N D S C A N 命 令 - 图26只 有 使 表 达 式 lExpression1 计 算 为 真 (.T.) 的 记 录 才 对 其 执 行 命 令 包含 FOR 子 句 可 以 筛 选 出 不 想 扫 描 的 记 录

SCAN ... E N D S C A N 命 令 - 图27当表达式 lExpression1 是可优化表达式时 Rushmore 将优化 SCAN ... FOR 命令创

SCAN ... E N D S C A N 命 令 - 图28SCAN ... E N D S C A N 命 令 - 图29SCAN ... E N D S C A N 命 令 - 图30建的查询 为使系统获得最佳性能 应在 FOR 子句中使用可优化的表达式

SCAN ... E N D S C A N 命 令 - 图31SCAN ... E N D S C A N 命 令 - 图32SCAN ... E N D S C A N 命 令 - 图33有关详细内容 请参阅稍后的 SET OPTIMIZE 命 令 和 SCAN ... E N D S C A N 命 令 - 图34 M icrosoft Visual FoxPro

SCAN ... E N D S C A N 命 令 - 图35SCAN ... E N D S C A N 命 令 - 图36SCAN ... E N D S C A N 命 令 - 图37SCAN ... E N D S C A N 命 令 - 图38SCAN ... E N D S C A N 命 令 - 图39SCAN ... E N D S C A N 命 令 - 图406.0 中 文 版 程 序 员 指 南 第 十 五 章 优 化 应 用 程 序 中 的 掌 握 Rushmore 技术

W H ILE lExpression2

SCAN ... E N D S C A N 命 令 - 图41SCAN ... E N D S C A N 命 令 - 图42SCAN ... E N D S C A N 命 令 - 图43SCAN ... E N D S C A N 命 令 - 图44SCAN ... E N D S C A N 命 令 - 图45SCAN ... E N D S C A N 命 令 - 图46SCAN ... E N D S C A N 命 令 - 图47SCAN ... E N D S C A N 命 令 - 图48指 定 一 个 逻 辑 表 达 式 lExpression2 作 为 执 行 命 令 的 条 件 只 要 逻 辑 表 达 式 计算 为 真 就 对 记 录 执 行 命 令 直 至 遇 到 使 表 达 式 不 为 真 (.T.) 的 记 录为 止

Command s

SCAN ... E N D S C A N 命 令 - 图49指 定 要 执 行 的 Visual FoxPro 命 令

LOOP

SCAN ... E N D S C A N 命 令 - 图50把 控 制 权 直 接 返 回 到 SCAN 命 令 LOOP 可 以 放 在 SCAN 到 ENDSCAN

SCAN ... E N D S C A N 命 令 - 图51之 间 的 任 何 地 方

EXIT

SCAN ... E N D S C A N 命 令 - 图52SCAN ... E N D S C A N 命 令 - 图53把 程 序 的 控 制 权 从 SCAN ... ENDSCAN 循 环 语 句 中 交 给 ENDSCAN 下 面 的命 令 EXIT 可 以 放 在 SCAN 到 ENDSCAN 之 间 的 任 何 地 方

ENDSCAN

SCAN ... E N D S C A N 命 令 - 图54标 志 SCAN 过 程 的 结 束

说 明

SCAN ... E N D S C A N 命 令 - 图55SCAN ... E N D S C A N 命 令 - 图56SCAN ... E N D S C A N 命 令 - 图57SCAN ... E N D S C A N 命 令 - 图58SCAN 命令自动将记录指针移到下一条满足指定条件的记录 并执行相应的命令块 可以在 ENDSCAN 同一行的后面加一些注释 注释在程序编译和执行时不起作用

示 例

SCAN ... E N D S C A N 命 令 - 图59以下 示例 使用了 SCAN ... ENDSCAN 循环语句显示位于瑞典 (Sweden) 的公司

CLOSE DATABASES

OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && 打开 Customer 表CLEAR

SCAN FOR UPPER(country) = 'SWEDEN'

? contact, company, city

ENDSCAN

请 参 阅

DO CASE ... ENDCASE , DO WHILE ... ENDDO , FOR ... ENDFOR