S E E K 命 令

S E E K 命 令 - 图1S E E K 命 令 - 图2SEEK 在表中搜索首次出现的一个记录 这个记录的索引关键字必须与指定的表达式匹配

语 法

SEEK eExpression

[ORDER nIndexNumber | IDXIndexFileName

| [TAG] TagName [OF CDXFileNam e ] [ASCENDING | DESCENDING]]

[IN n W orkArea | cTableAlias ]

参 数 描 述

eExpression

S E E K 命 令 - 图3S E E K 命 令 - 图4指 定 SEEK 搜 索 的 索 引 关 键 字 eExpression 可 以 是 空 字 符 串

ORDER nIndexNumber

S E E K 命 令 - 图5指 定 用 来 搜 索 关 键 字 的 索 引 文 件 或 索 引 标 识 编 号 nIndexNumber 指 出 了 索

S E E K 命 令 - 图6S E E K 命 令 - 图7S E E K 命 令 - 图8S E E K 命 令 - 图9引 文 件 在 USE 和 SET INDEX 命 令 中 列 出 的 编 号 首 先 按 照 USE 或 SET INDEX 中 的 顺 序 对 打 开 的 .ID X 文 件 进 行 编 号 然 后 对 结 构 .CDX 文 件

S E E K 命 令 - 图10S E E K 命 令 - 图11S E E K 命 令 - 图12S E E K 命 令 - 图13S E E K 命 令 - 图14S E E K 命 令 - 图15S E E K 命 令 - 图16S E E K 命 令 - 图17如 果 存 在 S E E K 命 令 - 图18 中 的 标 识 进 行 编 号 其 顺 序 与 创 建 它 们 的 顺 序 相 同 最 后 对所 有 打 开 的 独 立 .CDX 文 件 进 行 编 号 其 顺 序 也 与 创 建 的 顺 序 相 同 有 关 索引 编 号 的 详 细 内 容 请 参 阅 SET ORDER

ORDER IDXIndexFileName

S E E K 命 令 - 图19指 定 一 个 用 来 搜 索 关 键 字 的 .ID X 文 件

ORDER [TAG] TagName [OF CDXFileNam e ]

S E E K 命 令 - 图20S E E K 命 令 - 图21S E E K 命 令 - 图22指 定 用 来 搜 索 索 引 关 键 字 的 .CDX 文 件 中 的 标 识 标 识 名 称 可 能 在 一 个 结构 .CDX 文 件 中 也 可 以 在 任 何 其 他 打 开 的 独 立 .CDX 文 件 中

S E E K 命 令 - 图23S E E K 命 令 - 图24如 果 在 几 个 打 开 的 独 立 .CDX 文 件 中 存 在 相 同 标 识 名 称 则 应 使 用 O F CDXFileName 指 出 包 含 所 用 标 识 的 .CDX 文 件

S E E K 命 令 - 图25S E E K 命 令 - 图26注 意 如 果 存 在 相 同 的 .ID X 文 件 和 标 识 名 称 时 .ID X 文 件 具 有 优 先 权

ASCENDING

S E E K 命 令 - 图27指 定 按 升 序 搜 索 表

DESCENDING

S E E K 命 令 - 图28指 定 按 降 序 搜 索 表

IN n W orkArea

S E E K 命 令 - 图29指 定 要 搜 索 的 表 所 在 的 工 作 区 编 号

IN cTableAlias

S E E K 命 令 - 图30指 定 要 搜 索 的 表 的 别 名

S E E K 命 令 - 图31S E E K 命 令 - 图32如果省略了 IN nWorkArea 和 IN cTableAlias 则在当前选定的工作区中搜索

说 明

S E E K 命 令 - 图33S E E K 命 令 - 图34只能在索引过的表中使用 SEEK 命令 并且只能搜索索引关键字 除非 SET EXACT

S E E K 命 令 - 图35S E E K 命 令 - 图36的设置为 OFF 否则匹配指的是完全匹配

S E E K 命 令 - 图37S E E K 命 令 - 图38S E E K 命 令 - 图39S E E K 命 令 - 图40S E E K 命 令 - 图41S E E K 命 令 - 图42S E E K 命 令 - 图43S E E K 命 令 - 图44S E E K 命 令 - 图45S E E K 命 令 - 图46S E E K 命 令 - 图47S E E K 命 令 - 图48S E E K 命 令 - 图49S E E K 命 令 - 图50如果 SEEK 找到了与索引关键字相匹配的记录 则 RECNO 返回匹配记录的记录号 FOUND 返回 真 (.T.) EOF 返回 假 (.F.)

S E E K 命 令 - 图51S E E K 命 令 - 图52S E E K 命 令 - 图53S E E K 命 令 - 图54S E E K 命 令 - 图55如果找不到相匹配的关键字 则 RECNO 将表中记录的个数加 1 然后返回 FOUND

S E E K 命 令 - 图56S E E K 命 令 - 图57S E E K 命 令 - 图58S E E K 命 令 - 图59S E E K 命 令 - 图60S E E K 命 令 - 图61S E E K 命 令 - 图62S E E K 命 令 - 图63S E E K 命 令 - 图64S E E K 命 令 - 图65返回 假 (.F.) EOF 返回 真 (.T.)

S E E K 命 令 - 图66S E E K 命 令 - 图67S E E K 命 令 - 图68S E E K 命 令 - 图69如果 SET NEAR 设置为 ON 则记录指针指向与索引关键字最相匹配的那个记录的后面一个记录 如 果 SET NEAR 设置为 OFF 则记录指针指向文件尾 在这两种

S E E K 命 令 - 图70S E E K 命 令 - 图71S E E K 命 令 - 图72S E E K 命 令 - 图73情况下 RECNO 都返回与关键字最匹配的记录号

示 例

S E E K 命 令 - 图74S E E K 命 令 - 图75S E E K 命 令 - 图76S E E K 命 令 - 图77在下列 示例 中 打 开 了 customer 表并基于 company 字段建立了索引 使用 SEEK 命令查找索引表达式 该表达式匹配包含在变量 gcSeekVal 中的值

CLOSE DATABASES

OPEN DATABASE (HOME(2) + 'Data\testdata')

USE customer ORDER company && 打开 Customer 表

SET EXACT OFF

STORE 'B' TO gcSeekVal

SEEK gcSeekVal IF FOUND S E E K 命 令 - 图78 S E E K 命 令 - 图79

DISPLAY FIELDS c ompany, contact ENDIF

请 参 阅

S E E K 命 令 - 图80S E E K 命 令 - 图81S E E K 命 令 - 图82S E E K 命 令 - 图83EOF S E E K 命 令 - 图84 , FOUND S E E K 命 令 - 图85 , INDEX , INDEXSEEK S E E K 命 令 - 图86 , LOCATE , RECNO S E E K 命 令 - 图87 , SEEK

S E E K 命 令 - 图88S E E K 命 令 - 图89 , SET EXACT , SET NEAR