3.14.2.4 SQLDeleteFor
DataTable的SQLDeleteFor方法和DeleteFor(见 [标题编号])有些类似,不过DeleteFor用于批量删除已经加载的数据,而SQLDeleteFor用于批量删除后台数据。
语法:
SQLDeleteFor(Filter)
Filter: 删除条件,采用的是SQL语法,和常规表达式的语法有所不同,请参考:SQL表达式的语法差异(见 [标题编号])。
SQLDeleteFor执行完毕后,会返回一个整数,表示合计删除了多少行。
SQLDeleteFor的删除是即时生效的,且无法撤销,所以在编写代码的时候,务必要先用测试数据进行验证,或者做好备份,以免对数据代码造成无法挽回的影响。
示例一
删除产品PD01的全部订单:
Dim cnt As
Integer
cnt = DataTables("订单").SQLDeleteFor("产品 = 'PD01'")
Output.Show("合计删除了" & cnt & "条记录!")
示例二
在DataTable中一次性删除大量的行,然后保存,效率是比较低的。
我们可以用SQLDeleteFor直接从后台删除符合条件的行,然后用RemoveFor从DataTable移除符合条件的行,效率会提高很多,例如:
DataTables("表A").SQLDeleteFor("产品编号 = 1")
DataTables("表A").RemoveFor("产品编号 = 1")