K E Y 函 数 - 图1K E Y 函 数 - 图2K E Y 函 数

K E Y 函 数 - 图3返回索引标识或索引文件的索引关键字表达式

语 法

KEY([ CDXFileNam e,] nIndexNumber [, nWorkArea | cTableAlias ])

返 值 类 型

字符型

参 数 描 述

CDXFileName

K E Y 函 数 - 图4K E Y 函 数 - 图5K E Y 函 数 - 图6K E Y 函 数 - 图7K E Y 函 数 - 图8K E Y 函 数 - 图9指 定 复 合 索 引 文 件 的 文 件 名 KEY 函 数 将 返 回 .CDX 文 件 中 索 引 标 识 的索 引 关 键 字 表 达 式 所 指 定 的 复 合 索 引 文 件 可 以 是 和 表 一 起 自 动 打 开 的 结 构复 合 索 引 文 件 也 可 以 是 独 立 的 复 合 索 引 文 件

nIndexNumber

K E Y 函 数 - 图10指 定 要 返 回 哪 一 个 索 引 关 键 字 表 达 式

K E Y 函 数 - 图11K E Y 函 数 - 图12K E Y 函 数 - 图13K E Y 函 数 - 图14USE 和 SET INDEX 命令都支持一个索引文件列表 从中可以为一个表同时打开多个索引文件 索引文件列表中可以包含 .IDX 单项索引文件 结构复合索引文件或独立的复合索引文件等三种索引文件的任意组合

K E Y 函 数 - 图15数值表达式 nIndexNumber 指定从打开的索引文件中返回哪一个索引表达式 随着

K E Y 函 数 - 图16nIndexNumber 从 1 递增到所打开的 .IDX 单项索引文件 结构复合索引文件和独立复合

K E Y 函 数 - 图17K E Y 函 数 - 图18K E Y 函 数 - 图19K E Y 函 数 - 图20索引文件三者的总数 KEY 函数将按下列顺序依次从打开的各索引文件中返回索引表达式

  1. K E Y 函 数 - 图21K E Y 函 数 - 图22K E Y 函 数 - 图23

    先 返 回 .IDX 单 项 索 引 文 件 如 果 有 此 类 文 件 打 开 中 的 索 引 表 达 式

K E Y 函 数 - 图24各 个 单 项 索 引 文 件 在 USE 或 SET INDEX 命 令 中 的 排 列 顺 序 决 定 索 引 表 达式 的 返 回 顺 序

  1. K E Y 函 数 - 图25K E Y 函 数 - 图26K E Y 函 数 - 图27K E Y 函 数 - 图28

    次 返 回 结 构 复 合 索 引 如 果 有 中 的 每 个 标 识 的 索 引 表 达 式 多 个 标 识的 索 引 表 达 式 的 返 回 顺 序 取 决 于 各 标 识 在 结 构 复 合 索 引 中 的 创 建 顺 序

  2. K E Y 函 数 - 图29K E Y 函 数 - 图30

    后 返 回 打 开 的 独 立 复 合 索 引 中 的 每 个 标 识 的 索 引 表 达 式 多 个 标 识 的 索引 表 达 式 的 返 回 顺 序 取 决 于 标 识 在 独 立 复 合 索 引 中 创 建 的 顺 序

K E Y 函 数 - 图31K E Y 函 数 - 图32K E Y 函 数 - 图33K E Y 函 数 - 图34nIndexNumber 大于打开的索引文件总数 包括 .IDX 单项索引文件 结构复合索引文件和独立的复合索引文件 K E Y 函 数 - 图35 则返回空字符串

n W o rkArea

K E Y 函 数 - 图36K E Y 函 数 - 图37K E Y 函 数 - 图38K E Y 函 数 - 图39指 定 表 所 在 的 工 作 区 号 KEY 函 数 将 返 回 该 表 的 索 引 关 键 字 表 达 式

K E Y 函 数 - 图40K E Y 函 数 - 图41K E Y 函 数 - 图42K E Y 函 数 - 图43如果指定的工作区中没有表打开 则 KEY 函数返回空字符串

cTableAlias

K E Y 函 数 - 图44K E Y 函 数 - 图45K E Y 函 数 - 图46指 定 表 别 名 KEY K E Y 函 数 - 图47 函 数 将 返 回 该 表 的 索 引 关 键 字 表 达 式

K E Y 函 数 - 图48K E Y 函 数 - 图49若指定的表别名不存在 Visual FoxPro 将产生错误信息

K E Y 函 数 - 图50K E Y 函 数 - 图51若省略 nWorkAreacTableAlias 参数 将返回当前工作区中打开表的索引关键字表达式

说 明

K E Y 函 数 - 图52K E Y 函 数 - 图53用 INDEX 命令创建索引标识或索引文件时可指定其索引关键字表达式 当该索引标识或索引文件作为主控索引标识或主控索引文件打开时 其索引关键字表达式将决定

K E Y 函 数 - 图54表的显示或访问方式

K E Y 函 数 - 图55K E Y 函 数 - 图56K E Y 函 数 - 图57有关创建索引标识 索引文件以及索引关键字表达式的详细内容 请参阅 INDEX

示 例

K E Y 函 数 - 图58K E Y 函 数 - 图59K E Y 函 数 - 图60K E Y 函 数 - 图61K E Y 函 数 - 图62下面的示例先打开 testdata 数据库中的 customer 表 然后在 FOR ... ENDFOR 创建的循环中使用 KEY 函数来显示 customer 结构索引文件中每个索引标识的索引表达式每个结构索引标识名和它的索引表达式同时显示

CLOSE DATABASES

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

FOR nCount = 1 TO 254

IF !EMPTY(TAG(nCount)) && 检查索引文件中的标识

? TAG(nCount) + ' ' && 显示标识的名称

?? KEY ( nCount) && 显示索引表达式

ELSE

EXIT && 所有标识都搜索完以后退出循环

ENDIF ENDFOR

请 参 阅

INDEX , REINDEX , SET INDEX , SYS(14)