点击或拖拽改变大小

Functions.VoDbSetLocate 方法

X#
指定定位条件的代码块。

命名空间:  XSharp.RT
程序集:  XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法
 FUNCTION VoDbSetLocate(
	cbForCondition AS USUAL
) AS LOGIC
查看代码

参数

cbForCondition
类型:__Usual
定义范围内每条记录必须满足的条件的代码块。
如果未指定范围,cbForCondition 将默认范围更改为所有记录。
代码块应包含逻辑表达式。
它对应于 DBLocate() 或 VODBLocate() 的第一个参数。
它在被下一个 VODBSetLocate() 覆盖之前一直有效。

返回值

类型:Boolean
如果成功则返回 TRUE;否则返回 FALSE。
备注
VODBSetLocate() 允许您更改定位条件。一旦您发出 LOCATE 命令、DBLocate() 或 VODBLocate(),您可以继续搜索,但使用不同的条件。 默认情况下,此函数在当前选定的工作区上操作。
可以通过在别名表达式中指定来使其在未选定的工作区上操作。
请注意,此函数不调用错误处理程序,因此如果失败,不会产生运行时错误消息或创建错误对象。因此,检查返回值以确定函数是否成功可能很重要。
全局结构 StrucErrInfo 将包含有关发生的任何错误的必要信息。
示例
以下示例展示了如何在两个不同且独立的条件下进行搜索:
X#
 1FUNCTION Locators() AS LOGIC
 2    LOCAL cbForCondition, cbWhileCondition, nNext, ;
 3            uRecId, lRest
 4    USE test
 5    cbForCondition := {||Proper(ALLTRIM(Name)) == ;
 6            "Charly"}
 7    cbWhileCondition := {||TRUE}    // 处理到 EOF
 8    nNext := -1            // 范围为全部
 9    uRecId := NIL            // 保持为 NIL
10    lRest := FALSE        // 从文件顶部开始搜索
11    // 搜索 Charly
12    DBLocate(cbForCondition, cbWhileCondition, ;
13        nNext, uRecId, lRest)
14    ? Found(), RECNO(), Name
15    // 指定第二个名字;搜索 Odile
16    VODBSetLocate({||Proper(ALLTRIM(Name))=="Odile"})
17    CONTINUE
18    ? Found(), RECNO(), Name
19    DBCloseArea()
20    RETURN Found()
参见