Functions.OrdKeyVal 方法 | |
获取当前记录在控制顺序中的键值。
命名空间:
XSharp.RT
程序集:
XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法 FUNCTION OrdKeyVal(
uOrder,
cIndexFile
) AS USUAL CLIPPER
[ClipperCallingConventionAttribute(new string[] { ... })]
public static __Usual OrdKeyVal(
__Usual uOrder = default,
__Usual cIndexFile = default
)
查看代码参数
- uOrder (Optional)
- 类型:__Usual
- cIndexFile (Optional)
- 类型:__Usual
返回值
类型:
__Usual
当前记录的键值。
返回值的数据类型与创建顺序时使用的键表达式的数据类型相同。
使用 ValType() 或 UsualType() 来确定数据类型。
OrdKeyVal() 在以下情况下返回 NIL:
没有控制顺序
记录指针位于文件末尾(EOF() 返回 TRUE)
此记录没有定义键(例如,您已将记录指针定位到不符合顺序条件或超出其指定范围的记录)
备注
键值是从控制顺序中检索的,而不是从数据库文件中检索。
这使得检索更快,因为没有时间花费在读取实际记录上。
提示:OrdKeyVal() 很快,但如果您多次使用该值,存储结果在局部变量中会更快。
然后使用局部变量,而不是对同一记录多次调用 OrdKeyVal()。
默认情况下,此函数在当前选定的工作区上操作。
可以通过在别名表达式中指定来使其在未选定的工作区上操作。
示例
此示例显示了顺序中所有键的值,而无需将单个记录读入内存:
1FUNCTION DisplayKeys()
2 LOCAL cKey, cFirst, cLast
1USE customer
2
3
4INDEX ON LastName + FirstName TO lastfir
1DO WHILE !Customer->EOF()
2 cKey := Customer->OrdKeyVal()
3
4 cLast := LEFT(cKey, 20)
5
6 cFirst := RIGHT(cKey, 20)
7
8 ? cLast, cFirst
9 Customer->DBSkip()
10ENDDO
参见