I D X C O L L A T E 函 数 - 图1I D X C O L L A T E 函 数 - 图2I D X C O L L A T E 函 数

I D X C O L L A T E 函 数 - 图3返回索引或索引标识的排序序列

语 法

IDXCOLLATE([ cCDXFileName ,] nIndexNumber [, nWorkArea |

cTableAlias ])

返 值 类 型

字符型

参 数 描 述

cCDXFileName

I D X C O L L A T E 函 数 - 图4I D X C O L L A T E 函 数 - 图5I D X C O L L A T E 函 数 - 图6指 定 复 合 索 引 文 件 名 该 复 合 索 引 文 件 可 以 是 随 表 自 动 打 开 的 结 构 复 合 索 引文 件 也 可 以 是 独 立 的 复 合 索 引 文 件

nIndexNumber

I D X C O L L A T E 函 数 - 图7I D X C O L L A T E 函 数 - 图8I D X C O L L A T E 函 数 - 图9I D X C O L L A T E 函 数 - 图10I D X C O L L A T E 函 数 - 图11I D X C O L L A T E 函 数 - 图12I D X C O L L A T E 函 数 - 图13I D X C O L L A T E 函 数 - 图14指 定 索 引 或 索 引 标 识 IDXCOLLATE 返 回 其 排 序 序 列 当nIndexNumber 从 1 递 增 到 打 开 的 索 引 文 件 和 索 引 标 识 总 数 时IDXCOLLATE 按 如 下 次 序 返 回 索 引 或 索 引 标 识 的 排 序 序 列

  1. I D X C O L L A T E 函 数 - 图15I D X C O L L A T E 函 数 - 图16I D X C O L L A T E 函 数 - 图17I D X C O L L A T E 函 数 - 图18

    先 返 回 单 项 索 引 .IDX 文 件 如 果 有 此 类 文 件 打 开 的 排 序 序 列 返 回的 排 序 序 列 取 决 于 USE 或 SET INDEX 中 包 含 的 单 项 索 引 文 件 的 序 列

  2. I D X C O L L A T E 函 数 - 图19I D X C O L L A T E 函 数 - 图20I D X C O L L A T E 函 数 - 图21

    后 返 回 结 构 复 合 索 引 如 果 存 在 I D X C O L L A T E 函 数 - 图22 中 标 识 的 排 序 序 列 标 识 的 排 序 序 列按 照 标 识 在 结 构 复 合 索 引 中 创 建 的 次 序 返 回

  3. I D X C O L L A T E 函 数 - 图23I D X C O L L A T E 函 数 - 图24

    后 返 回 打 开 的 独 立 复 合 索 引 中 标 识 的 排 序 序 列 标 识 的 排 序 序 列 按 照 标识 在 独 立 的 复 合 索 引 中 创 建 的 顺 序 返 回

I D X C O L L A T E 函 数 - 图25I D X C O L L A T E 函 数 - 图26I D X C O L L A T E 函 数 - 图27如果 nIndexNumber 大于打开的单项索引文件 结构复合索引标识和独立的复合索引标识的总数目 则返回空字符串

n W o rkArea

I D X C O L L A T E 函 数 - 图28I D X C O L L A T E 函 数 - 图29I D X C O L L A T E 函 数 - 图30指 定 表 的 工 作 区 IDXCOLLATE 函 数 返 回 该 表 的 索 引 文 件 和 索 引 标 识

I D X C O L L A T E 函 数 - 图31的 排 序 序 列

I D X C O L L A T E 函 数 - 图32I D X C O L L A T E 函 数 - 图33I D X C O L L A T E 函 数 - 图34I D X C O L L A T E 函 数 - 图35如果指定的工作区中没有打开的表 IDXCOLLATE 函数将返回空字符串

cTableAlias

I D X C O L L A T E 函 数 - 图36I D X C O L L A T E 函 数 - 图37I D X C O L L A T E 函 数 - 图38I D X C O L L A T E 函 数 - 图39指 定 表 的 别 名 IDXCOLLATE 返 回 该 表 的 索 引 文 件 和 索 引 标 识 的 排 序序 列

I D X C O L L A T E 函 数 - 图40I D X C O L L A T E 函 数 - 图41如果指定的表别名不存在 Visual FoxPro 产生错误信息

说 明

I D X C O L L A T E 函 数 - 图42I D X C O L L A T E 函 数 - 图43I D X C O L L A T E 函 数 - 图44I D X C O L L A T E 函 数 - 图45I D X C O L L A T E 函 数 - 图46I D X C O L L A T E 函 数 - 图47IDXCOLLATE 函数可以返回多项复合索引文件中每一标识的排序序列 这样只需使用一系列的 SET COLLATE 和 INDEX 命令 就可以完全删除一个索引文件 然后再正确地重建这个索引文件

I D X C O L L A T E 函 数 - 图48I D X C O L L A T E 函 数 - 图49I D X C O L L A T E 函 数 - 图50I D X C O L L A T E 函 数 - 图51附注 REINDEX 的某些功能并不需要 IDXCOLLATE 因为其排序序列信息已经存放在索引和索引标识中

I D X C O L L A T E 函 数 - 图52I D X C O L L A T E 函 数 - 图53I D X C O L L A T E 函 数 - 图54I D X C O L L A T E 函 数 - 图55I D X C O L L A T E 函 数 - 图56有关 Visual FoxPro 国际化支持的详细内容 请参阅 Microsoft Visual FoxPro 6.0 中文版程序员指南 I D X C O L L A T E 函 数 - 图57 的第 十八章 开发国际化应用程序

示 例

I D X C O L L A T E 函 数 - 图58下面示例先打开 testdata 数据库的 customer 表 然后使用 FOR...ENDFOR 创建一个循

I D X C O L L A T E 函 数 - 图59I D X C O L L A T E 函 数 - 图60I D X C O L L A T E 函 数 - 图61I D X C O L L A T E 函 数 - 图62I D X C O L L A T E 函 数 - 图63环 在该循环中应用 IDXCOLLATE 函数来显示 customer 结构索引中每个索引标识的排序序列 每个结构索引标识的名称和它的排序序列一起显示

CLOSE DATABASES

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

CLEAR

FOR nCount = 1 TO 254

IF !EMPTY(TAG(n Count)) && 检查索引标识

I D X C O L L A T E 函 数 - 图64I D X C O L L A T E 函 数 - 图65I D X C O L L A T E 函 数 - 图66I D X C O L L A T E 函 数 - 图67I D X C O L L A T E 函 数 - 图68I D X C O L L A T E 函 数 - 图69I D X C O L L A T E 函 数 - 图70I D X C O L L A T E 函 数 - 图71? TAG(nCount) + ' ' && 显示标识名

?? nCount && 显示排序序列

ELSE

EXIT && 在找到所有的标识之后退出循环

ENDIF ENDFOR

请 参 阅

SET COLLATE