Functions.VoDbEval 方法 | |
对匹配指定范围和/或条件的每条记录评估代码块。
命名空间:
XSharp.RT
程序集:
XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法 FUNCTION VoDbEval(
cbExecute AS USUAL,
cbForCondition AS USUAL,
cbWhileCondition AS USUAL,
nNext AS USUAL,
nRecord AS USUAL,
lRest AS LOGIC
) AS LOGIC
public static bool VoDbEval(
__Usual cbExecute,
__Usual cbForCondition,
__Usual cbWhileCondition,
__Usual nNext,
__Usual nRecord,
bool lRest
)
查看代码参数
- cbExecute
- 类型:__Usual
对匹配范围和条件的每条记录执行的代码块。 - cbForCondition
- 类型:__Usual
定义范围内每条记录必须满足的条件的代码块,以便进行处理。 - cbWhileCondition
- 类型:__Usual
定义每条记录必须满足的另一个条件的代码块,以便进行处理。 一旦遇到导致条件失败的记录,操作就会终止。
如果未指定范围,cbWhileCondition 会将默认范围更改为 lRest。
您可以使用这三个互斥参数之一来定义范围。
默认是所有记录。
- nNext
- 类型:__Usual
要处理的记录数,从 nRecord 开始。 指定 0 以忽略此参数。 - nRecord
- 类型:__Usual
要处理的单个记录号。指定 0 以忽略此参数。 - lRest
- 类型:Boolean
TRUE 仅处理从 nStart 到文件末尾的记录。 FALSE 处理所有记录。
返回值
类型:
Boolean
如果成功则返回 TRUE;否则返回 FALSE。
备注 提示: |
---|
nNext、nRecord 和 lRest 参数是互斥的。您不应同时传递这三个参数。
如果您传递 cbWhile 参数,那么它也会控制范围行为。
|
VODBEval() 类似于 DBEval(),但具有强类型特性。
然而,此函数不调用错误处理程序,因此不会在失败时产生运行时错误消息或创建错误对象。因此,检查返回值以确定函数是否成功可能很重要。
全局结构 StrucErrInfo 将包含有关发生的任何错误的必要信息。有关更多信息,请参见 DBEval()。
示例
此示例使用 VODBEval() 实现 Count() 函数,该函数计算工作区中匹配指定范围的记录数。
范围作为数组传递给 Count()。
一组常量定义了范围数组的元素:
1
2DEFINE FOR_COND := 1 AS SHORTINT
3DEFINE WHILE_COND := 2 AS SHORTINT
4DEFINE NEXT_SCOPE := 3 AS SHORTINT
5DEFINE REC_SCOPE := 4 AS SHORTINT
6DEFINE REST_SCOPE := 5 AS SHORTINT
7DEFINE SCOPE_ELEMENTS := 5 AS SHORTINT
8FUNCTION Start()
9
10 LOCAL mySet[SCOPE_ELEMENTS]
11 LOCAL myCount AS LONGINT
12 USE customer NEW
13 mySet[FOR_COND] := {||customer = "Smith"}
14 mySet[WHILE_COND] := {||zip > "90000"}
15 mySet[REST_SCOPE] := FALSE
16
17 myCount := Count(mySet)
18 RETURN TRUE
19FUNCTION Count(aScope) AS LONGINT
20 LOCAL nCount := 0 AS LONGINT
21 VODBEval({|| nCount++},;
22 aScope[FOR_COND],;
23 aScope[WHILE_COND],;
24 aScope[NEXT_SCOPE],;
25 aScope[REC_SCOPE],;
26 aScope[REST_SCOPE])
27 RETURN nCount
参见