Functions.DbEval 方法 | |
对符合指定范围和/或条件的每条记录评估代码块。
命名空间:
XSharp.RT
程序集:
XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法 FUNCTION DbEval(
cbExecute,
cbForCondition,
cbWhileCondition,
nNext,
nRecord,
lRest,
lNoOpt
) AS LOGIC CLIPPER
[ClipperCallingConventionAttribute(new string[] { ... })]
public static bool DbEval(
__Usual cbExecute = default,
__Usual cbForCondition = default,
__Usual cbWhileCondition = default,
__Usual nNext = default,
__Usual nRecord = default,
__Usual lRest = default,
__Usual lNoOpt = default
)
查看代码参数
- cbExecute (Optional)
- 类型:__Usual
对每条符合范围和条件的记录执行的代码块。 - cbForCondition (Optional)
- 类型:__Usual
定义范围内每条记录必须满足的条件的代码块,以便进行处理。 - cbWhileCondition (Optional)
- 类型:__Usual
定义每条记录必须满足的另一个条件的代码块,以便进行处理。 一旦遇到导致条件失败的记录,操作就会终止。
如果未指定范围,cbWhileCondition 会将默认范围更改为 lRest。
您可以使用这三个互斥参数之一来定义范围。
默认是所有记录。
- nNext (Optional)
- 类型:__Usual
要处理的记录数,从 nRecord 开始。 指定 0 以忽略此参数。 - nRecord (Optional)
- 类型:__Usual
要处理的单个记录号。指定 0 以忽略此参数。 - lRest (Optional)
- 类型:__Usual
TRUE 仅处理从 nStart 到文件末尾的记录。 FALSE 处理所有记录。 - lNoOpt (Optional)
- 类型:__Usual
禁用(Rushmore)优化(尚不支持)。
返回值
类型:
Boolean
如果成功则返回 TRUE;否则返回 FALSE。
备注 提示: |
---|
nNext、nRecord 和 lRest 参数是互斥的。您不应同时传递这三个参数。
如果您传递 cbWhile 参数,那么它也会控制范围行为。
|
默认情况下,此函数在当前选定的工作区上操作。
可以通过在别名表达式中指定来使其在未选定的工作区上操作。
在每次迭代中,DBEval() 评估指定的代码块。
处理范围内或符合条件的所有记录,直到达到文件末尾。
DBEval() 类似于 AEval(),后者对数组中的每个元素执行代码。
与 AEval() 一样,DBEval() 可以用作构建处理数据库文件的命令的原语。
事实上,许多 X# 数据库处理命令都是使用 DBEval() 创建的。
示例
此示例使用 DBEval() 来增强 DBList() 函数:
1GLOBAL siFCount
2FUNCTION MyListAll(cFile AS STRING) AS LOGIC PASCAL
3 LOCAL lRetCode AS LOGIC
4 USE test
5 IF Used()
6 siFCount := FCount()
7 cbDisp := {|| ShowFields()}
8 GO TOP
9 lRetCode := DBEval(cbDisp)
10 ENDIF
11 RETURN lRetCode
12FUNCTION ShowFields() AS VOID PASCAL
13 LOCAL i AS WORD
14 IF Deleted()
15 QOut("*")
16 ELSE
17 QOut()
18 ENDIF
19 FOR i := 1 UPTO siFCount
20 QQOut(FieldGet(i))
21 QQOut(" ")
22 NEXT
参见