SET RELATION 命 令
在两个打开的表之间建立关系
语 法
SET RELATION TO
[eExpression1 INTO nWorkArea1 | cTableAlias1
[, eExpression2 INTO nWorkArea2 | cTableAlias2 ...] [IN nWorkArea | cTableAlias]
[ADDITIVE]]
参 数 描 述
eExpression1

指
定 用 来 在 父 表 和 子 表 之 间 建 立 关 系 的 关 系 表 达 式 关 系
表 达 式 通 常 是 子 表主 控 索 引 的 索 引 表 达 式




子
表 的 索 引 可 以 是 单 项 索 引 ( .IDX) 多 项 结 构 复 合 索 引
(.CDX) 或 独 立 复 合索 引 如 果 是 复 合 索 引 应 指 定 适 当 的 索
引 标 识 来 排 序 子 表 SET ORDER 可用 来 指 定 排 序 子 表 的 索 引
标 识





例
如 考 虑 说 明 部 分 描 述 的 customer 和 orders
两 表 假 定 子 表 orders 已 经 建立 索 引 并 且 使 用 如 下
命 令 用 顾 客 编 号 进 行 排 序
SET ORDER TO TAG cust_id




要
在 customer 和 orders 两 表 的 顾 客 编 号 上 建
立 关 系 应 选 择 包 含 父 表 customer 的工 作 区 或 使 用
IN 子 句 来 指 定 父 表 的 工 作 区 或 别 名 然 后 发 出 SET RELATION
命 令 用 如 下 关 系 表 达 式 指 定 索 引 表 达 式
SET RELATION TO cust_id INTO orders









除
非 关 系 表 达 式 是 数 值 型 的 否 则 子 表 必 须 建 立 索 引 如 果
发 出 包 含 非 数 值关 系 表 达 式 的 SET RELATION 命 令 时 子 表 没
有 使 用 索 引 进 行 排 序 V isual FoxPro 显 示 错 误 信 息 如 果
eExpression1 是 数 值 型 表 达 式 那 么 当 记 录 指针 在 父 表 中 移
动 时 将 计 算 此 表 达 式 然 后 子 表 的 记 录 指 针 移 到 记 录 编
号为 eExpression1 的 记 录 上
INTO nWorkArea1 | cTableAlias1
指 定
子 表 的 工 作 区 编 号 ( nWorkArea1 ) 或 子 表 的 表 别 名 (
cTableAlias1 ) eExpression2 INTO nWorkArea2 | cTableAlias2 ...
指 定
其 他 关 系 表 达 式 (eExpression2 ) 和 子 表 建 立 另 一 个 父 表
和 子 表 之 间 的


关
系 在 一 条 SET RELATION 命 令 中 可 以 创 建 单 个 父 表 与 多 个 子
表 之 间 的关 系 但 是 各 个 关 系 之 间 要 用 逗 号 隔 开

nWorkArea2
指 定 工 作 区 编 号 cTableAlias2 指 定 子 表 的 别 名
IN nWorkArea
指 定
父 表 的 工 作 区
IN cTableAlias



指
定 父 表 的 别 名 IN 子 句 允 许 创 建 关 系 时 不 必 首 先 选 择 父
表 工 作 区 如 果SET RELATION 命 令 中 省 略 了 nWorkArea 和
cTableAlias 父 表 必 须 在 当前 选 定 的 工 作 区 中 打 开
ADDITIVE



保
留 当 前 工 作 区 中 所 有 已 存 在 的 关 系 并 创 建 指 定 的 新 关
系 如 果 命 令 中 不 包括 ADDITIVE 子 句 将 断 开 当 前 工 作 区 中 的
所 有 关 系 然 后 再 创 建 指 定 的关 系
在两个打开的表之间建立关系
说 明








在
建 立 关 系 之 前 必 须 打 开 一 个 表 父 表
而 且 还 必 须 在 另 一 个 工 作 区 内打 开 其 他 表 子 表
相
关 的 各 表 通 常 有 一 个 相 同 的 字 段 例 如 假 定 表
customer 包 含 顾 客 信 息 有 顾 客 姓 名 地 址 和 唯 一 的
顾 客 编 号 等 字 段 表 orders 包 含




订
货 信 息 也 有 顾 客 编 号 字 段 同 时 还 有 日 期 和 发 货 信 息 等
字 段 SET RELATION 通 过 相 同 的 字 段 即 顾 客 编 号 字 段 来 联 系
两 个 表 要 建 立 这 种


关
系 子 表 必 须 在 公 共 字 段 上 建 立 索 引 建 立 关 系 后 不 论 何
时 在 父 表 customer





中
移 动 记 录 指 针 到 指 定 顾 客 编 号 的 记 录 上 时 子 表
orders 中 的 记 录 指 针 也 将 同 时 移 到 相 同 顾 客 编
号 的 记 录 上 如 果 子 表 中 找 不 到 相 匹 配 的 记 录 子 表 中的 记
录 指 针 将 停 在 表 尾 不 带 任 何 参 数 的 SET RELATION TO 命 令 将
移 去当 前 选 定 工 作 区 中 的 所 有 关 系 可 用 SET RELATION OFF 移
去 指 定 的 父 子关 系
请 参 阅
INDEX , RELATION ( ) , SET ORDER , SET RELATION OFF , SET SKIP ,
TARGET( )
