SQLReplaceFor

DataTable的SQLReplaceFor方法和ReplaceFor有些类似,不过ReplaceFor用于批量更新已经加载的数据,而SQLReplaceFor用于批量更新后台数据。

语法:

SQLReplaceFor(DataColName,Value,Filter,IsExpression)

DataColName: 要更新的列
Value:       更新值或表达式
Filter:      更新条件,采用的是SQL语法,和常规表达式的语法有所不同,请参考:SQL表达式的语法差异
IsExpression:逻辑型,设置为True,表示Value参数不是一个值,而是一个表达式。

SQLReplaceFor会返回一个整数,表示合计有多少行的值被替换了。

提示:

1、SQLReplaceFor的操作是即时生效的,且无法撤销,所以在编写代码的时候,务必要先用测试数据进行验证,或者做好备份,以免对数据代码造成无法挽回的影响。

2、SQLReplaceFor执行后,已经加载到DataTable的数据并不会受影响,还是保持原值不变,直到重新加载或重新打开项目。

示例一

将产品为PD01的订单的折扣全部改为0.05:

Dim cnt As Integer
cnt =
DataTables("订单").SQLReplaceFor("折扣", 0.05, "产品 = 'PD01'")
Output.Show(
"合计更新了" & cnt & "条记录的折扣!")

示例二

和ReplaceFor不同,SQLReplaceFor的更新值可以是一个表达式,例如将数量大于800的订单折扣,在原基础上增加0.05:

Dim cnt As Integer
cnt =
DataTables("订单").SQLReplaceFor("折扣", "折扣 + 0.05", "数量 > 800",True)
Output
.Show("合计更新了" & cnt & "条记录的折扣!")

提示:如果更新值是一个表达式,请将第四个参数设置为True。

 


本页地址:http://www.foxtable.com/webhelp/topics/2898.htm