DESCENDING( ) 函 数
返回 逻辑值 指定是否使用 DESCENDING 关键字创建了索引标记 或在 USE SET INDEX 或 SET ORDER 等命令中是否包含了 DESCENDING 关键字
语 法
DESCENDING([ CDXF ileNam e,] nIndexNumber [, nWorkArea |
cTableAlias ])
返 值 类 型逻辑值 参 数 描 述
CDXFileName
可 用 CDXFileName 指 定 一 个 复 合 索 引 文 件 名 所 指 定 的 复 合 索 引 文 件 可 以是 和 表 一 起 自 动 打 开 的 结 构 复 合 索 引 文 件 或 者 是 一 个 独 立 的 复 合 索 引 文件
nIndexNumber
数 值 型 表 达 式 nIndexNumber 指 定 DESCENDING( ) 测 试 的 索 引 标 识 或 索 引 文件 nIndexNumber 通 常 是 一 个 从 1 开 始 且 以 1 为 单 位 递 增 的 整 数 代 表 了 各
个 索 引 标 识
如果 nIndexNumber 为 1 就为 . idx 主控单项索引文件或主控索引标识 如果存在 返回一个值
随着 nIndexNumber 递增 可以为结构复合索引文件 如果存在 中的每个标识返回值 为标识返回的值按照它们在结构复合索引文件中创建的顺序返回
为结构复合索引文件中的所有标识返回了值以后 再为所有打开的独立复合索引文件中的每个标识返回值 为标识返回的值按照它们在独立复合索引文件中创建的顺序返回
如果 nIndexNumber 大于打开的单项索引 . idx 文件和结构复合以及独立复合索引标识的总数 就返回空字符串
n W o rkArea | cTableAlias
为 在 非 当 前 工 作 区 的 索 引 文 件 或 标 识 返 回 值 nWorkArea 指 定 工 作 区 号
cTableAlias 指 定 表 别 名
如果没有指定的表别名 Visual FoxPro 将产生错误信息
说 明
可以用两种方法对一个表中的记录进行降序排列
-
可
以 在 INDEX 命 令 中 包 含 DESCENDING 关 键 字 实 现 在 复 合 索 引 . cdx 中 创建 一 个 降 序 索 引 标 识
-
可
以 在 USE SET INDEX 或 SET ORDER 中 包 含 DESCENDING 关 键 字
指 定 主 控 索 引 标 识 或 主 控 单 项 索 引 (. idx ) 文 件 为 降 序 索 引
DESCENDING ( ) 可以确定一个索引标识是否以降序创建 如果所指定的索引标识是用 DESCENDING 关键字创建的 则 DESCENDING( ) 返回 真 (.T.)
DESCENDING ( ) 也可以确定主控索引标识或主控索引文件是否为降序 如果指定的主控索引标识或一个单项索引 (.IDX) 文件在 USE SET INDEX 或 SET ORDDER 中包含了 DESCENDING 关键字 DESCENDING( ) 就返回 真 (.T.)
如果不包含任何可选的参数 DESCENDING ( ) 就为主控索引标识或主控索引文件返回一个值 如果不包含任何可选的参数 且主控索引标识或 .IDX 文件无效 例如 执行了 SET ORDER TO 按物理记录顺序对表排序 DESCENDING( ) 返回 假
(.F.)
示 例
以下示例打开了 testdata 数据库中 customer 表 使用 FOR ... ENDFOR 创建循环语句 在其中包含检查 customer 结构化索引中每个索引标记的降序状态 显示每个结构化索引标记的名称和它们的降序状态
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata') USE Customer && 打开 customer 表CLEAR
FOR nCount = 1 TO 254
IF !EMPTY(TAG(nCount)) && 检查索引中的标记
? TAG(nCount) + ' Descending? ' && 显示标记名称
?? nCount && 显示降序状态
ELSE
EXIT && 当不再发现标记时退出循环语句
ENDIF ENDFOR
请 参 阅
INDEX , SET INDEX , SET ORDER , USE