点击或拖拽改变大小

DbServer.Replace 方法

X#
用新表达式替换与指定范围匹配的所有记录的一个或多个字段。

命名空间:  XSharp.VO.SDK
程序集:  XSharp.VORDDClasses (在 XSharp.VORDDClasses.dll 中) 版本:2.22 GA
语法
 VIRTUAL METHOD Replace(
	acbExpression,
	aFieldList,
	cbForBlock,
	cbWhileBlock,
	uScope
) AS LOGIC CLIPPER
查看代码

参数

acbExpression (Optional)
类型:__Usual
单个表达式,评估后得出替换值,或评估后得出替换值的表达式数组。
aFieldList (Optional)
类型:__Usual
要包含的源文件中的字段数组。默认是所有字段。
cbForBlock (Optional)
类型:__Usual
对范围内每条记录进行评估的条件;如果为 TRUE,则包括该记录。它提供与记录处理命令的 FOR 子句相同的功能。
cbWhileBlock (Optional)
类型:__Usual
从第一条记录开始评估每条记录的条件,直到条件返回 FALSE。它提供与记录处理命令的 WHILE 子句相同的功能。
uScope (Optional)
类型:__Usual
要处理的记录范围,提供与记录处理命令的 ALL、REST 和 NEXT 子句相同的功能。
常量描述
DBSCOPEALL 作用域是表中的所有记录。这是 默认,尽管如果指定 WHILE 条件,作用域将变为 DBSCOPEREST。
DBSCOPEREST作用域是从当前位置开始的表中剩余的记录。

返回值

类型:Boolean
如果成功则返回 TRUE;否则,返回 FALSE(尽管某些记录可能仍已处理)。
备注
如果指定的范围处于活动状态,DBServer:Replace() 在操作之前发送 NotifyIntentToMove 消息。 无论成功与否,完成后都会发送 NotifyFileChange 消息。 如果未使用范围,则成功完成后,当前记录将是最后一个文件记录,DBServer:EOF 将为 TRUE。
示例
以下示例演示了如何使用 DBServer:Replace() 方法:
X#
1// 将女性员工的工资增加 100
2oDBEmp:Replace({||Salary+100}, #Salary, {||Sex="F"})
3// 从等级中减去 20,分配 100 的加薪,
4// 并为那些
5// 新分配到 Proj20 的员工建立新的加薪日期
6oDBEmp:Replace({"GRADE-20", "100", "NewDate"}, {#Grade, #Raise, #RaiseDate}, {|| NewAssignment(EmpNo) = Proj20})
7// 将所有记录的信用状态字段分配为 0
8oDBEmp:Replace(0,#CreditStatus)
参见