S E E K 命 令

SEEK
在表中搜索首次出现的一个记录
这个记录的索引关键字必须与指定的表达式匹配
语 法
SEEK eExpression
[ORDER nIndexNumber | IDXIndexFileName
| [TAG] TagName [OF CDXFileNam e ] [ASCENDING | DESCENDING]]
[IN n W orkArea | cTableAlias ]
参 数 描 述
eExpression

指
定 SEEK 搜 索 的 索 引 关 键 字 eExpression 可 以 是 空 字 符 串
ORDER nIndexNumber
指 定
用 来 搜 索 关 键 字 的 索 引 文 件 或 索 引 标 识 编 号
nIndexNumber 指 出 了 索



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







如
果 存 在
中 的 标 识 进 行 编 号 其 顺 序 与 创 建 它 们 的 顺 序 相 同 最 后
对所 有 打 开 的 独 立 .CDX 文 件 进 行 编 号 其 顺 序 也 与 创 建 的
顺 序 相 同 有 关 索引 编 号 的 详 细 内 容 请 参 阅 SET ORDER
ORDER IDXIndexFileName
指 定
一 个 用 来 搜 索 关 键 字 的 .ID X 文 件
ORDER [TAG] TagName [OF CDXFileNam e ]


指
定 用 来 搜 索 索 引 关 键 字 的 .CDX 文 件 中 的 标 识 标 识 名 称 可
能 在 一 个 结构 .CDX 文 件 中 也 可 以 在 任 何 其 他 打 开 的 独 立
.CDX 文 件 中

如
果 在 几 个 打 开 的 独 立 .CDX 文 件 中 存 在 相 同 标 识 名 称 则 应
使 用 O F CDXFileName 指 出 包 含 所 用 标 识 的 .CDX 文 件

注
意 如 果 存 在 相 同 的 .ID X 文 件 和 标 识 名 称 时 .ID X 文 件 具
有 优 先 权
ASCENDING
指 定
按 升 序 搜 索 表
DESCENDING
指 定
按 降 序 搜 索 表
IN n W orkArea
指 定
要 搜 索 的 表 所 在 的 工 作 区 编 号
IN cTableAlias
指 定
要 搜 索 的 表 的 别 名

如果省略了
IN nWorkArea 和 IN cTableAlias 则在当前选定的工作区中搜索
说 明

只能在索引过的表中使用
SEEK 命令 并且只能搜索索引关键字 除非 SET EXACT

的设置为
OFF 否则匹配指的是完全匹配













如果
SEEK 找到了与索引关键字相匹配的记录 则 RECNO 返回匹配记录的记录号
FOUND 返回 真 (.T.) EOF 返回 假 (.F.)




如果找不到相匹配的关键字
则 RECNO 将表中记录的个数加 1 然后返回 FOUND









返回
假 (.F.) EOF 返回 真 (.T.)



如果
SET NEAR 设置为 ON
则记录指针指向与索引关键字最相匹配的那个记录的后面一个记录 如 果 SET
NEAR 设置为 OFF 则记录指针指向文件尾 在这两种



情况下
RECNO 都返回与关键字最匹配的记录号
示 例



在下列
示例 中 打 开 了 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

DISPLAY FIELDS c ompany, contact ENDIF
请 参 阅



EOF
, FOUND
, INDEX , INDEXSEEK
, LOCATE , RECNO
, SEEK

, SET EXACT , SET NEAR
