追载新数据

Load方法在执行的时候,会清除已经加载的行,然后重新加载行,加载条件由LoadFilter属性指定。
有的时候并不希望清除已经加载的行,只是希望从后台找出符合条件的行,追加到当前表中,我们称之为追载。
用于追载的方法是AppendLoad。

语法:

AppendLoad(Filter,Save)

Filter:字符型,用于设置追载条件,采用的是SQL语法,和常规表达式的语法有所不同,请参考:SQL表达式的语法差异
Save: 可选参数,逻辑型,是否在追载数据前先保存现有数据,默认为True,既先保存后追载。

AppendLoad会返回一个集合,包含所有追载的行(DataRow)。

需要注意的是:

1、必须确保即将追载的行,并不存在于表中,也就是这些行之前并未加载,否则将报错。
2、AppendLoad适合追载少量数据,大量数据一般用Load重新加载。

示例

假定甲、乙两个用户同时编辑表A,甲负责增加行,并输入部分列的数据,乙负责输入其它列的数据。
我们需要为乙用户设计一个按钮,用于将打开项目以来,甲用户新增加的行追载到表中,按钮的代码为:

Dim id As Integer = DataTables("表A").Compute("Max(_Identify)")
Dim
Filter As String = "[_Identify] > " & id
DataTables
("表A").AppendLoad(Filter, False
)

上述代码先计算出表A中"_Identify"列的最大值,然后从后台追载"_Identify"列的值大于此最大值的行,这些行就是甲用户新增加的行。

提示:

1、甲用户新增行并输入数据后,必须保存,乙用户才可追载此新增加的行,这是因为AppendLoad是从后台追载的,如果新增行没有保存,后台就不存在此行, 乙用户也就谈不上追载了。
2、AppendLoad的作用远不止于追载新增数据,在设计一些数据自动流转的项目,例如工作流时,AppendLoad方法是关键。


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