以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于父子表同步加载的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=135358) |
-- 作者:诚学思行 -- 发布时间:2019/5/24 15:01:00 -- 关于父子表同步加载的问题 帮助文件: 父表与子表同步加载之二 上一节介绍的父表与子表同步加载的方法,对于多数用户来说,可能稍微复杂了一点,而且效率相对比较低,帮助之所以保留这种方法,主要还是为了让大家熟悉和演练一下SQL语句。 实际上,Foxtable提供了非常简单高效的同步加载方法,你要做的只需在父表的AfterLoad事件中加上一行代码: e.DataTable.LoadChildren("子表") 例如订单和订单明细通过订单编号建立关联,订单表动态加载,每次只加载一定数量的订单进行处理,为了每次加载订单后,能同步加载这些订单的订单明细,只需在订单表的AfterLoad事件加上代码: e.DataTable.LoadChildren("订单明细") 是的,就是这么简单,因为你用的是Foxtable。 LoadChildren是DataTable的一个方法,用于加载子表数据,而且只加载那些父表已经存在对应行的子表数据。
假设我在AfterLoad(全局表事件)中写下以下代码: Dim glbs As String = "" \'关联表 \'同步加载子表关联数据 就是同步加载所有当前表e.datatable的子表;
需要请教的问题: 1、因为父表的AfterLoad事件可以触发加载全部子表的相关数据,那么会自动触发子表的AfterLoad事件,通过上面的代码会自动同步加载孙表数据……?如此循环往复。也就是说,一个业务模块,如果有一个祖宗表(就是只有子表、孙表、……,没有父表),只要处理这一个祖宗表的AfterLoad事件就行了; 2、因为AfterLoad事件可能由于OpenQQ即时同步自动触发,也会把上面的步骤再自动循环一次,是否会造成效率的下降?如何避免? |
-- 作者:有点甜 -- 发布时间:2019/5/24 15:15:00 -- 参考
http://www.foxtable.com/webhelp/scr/2218.htm
|