Foxtable(狐表)用户栏目专家坐堂 → 关于LoadChildren的疑惑


  共有2965人关注过本帖树形打印复制链接

主题:关于LoadChildren的疑惑

帅哥,在线噢!
wjl-se
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:763 积分:6313 威望:0 精华:0 注册:2011/12/1 14:47:00
关于LoadChildren的疑惑  发帖心情 Post By:2016/6/26 15:48:00 [显示全部帖子]

LoadChildren只加载那些父表已经存在对应行的子表数据。

 

我的问题是如果子表的某些行尚未与父表形成关联,还要把没有关联的行加载进来,好象只能用AppendLoad追载,但是AppendLoad真不省心,一旦加载重复,就报错,很不爽。

 

LoadChildren加上条件表达式多好,针对那些没有关联的行,有条件的加载,多贴心啊。

 

[此贴子已经被作者于2016/6/26 16:02:12编辑过]

 回到顶部
帅哥,在线噢!
wjl-se
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:763 积分:6313 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2016/6/26 17:36:00 [显示全部帖子]

可是,2楼的方案,效率和LoadChildren差的可不是一星半点啊。图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
wjl-se
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:763 积分:6313 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2016/6/27 8:24:00 [显示全部帖子]

 看来SQL是要学一学了

谢谢版主,非工作时间,那么晚还给回复图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
wjl-se
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:763 积分:6313 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2016/6/27 9:55:00 [显示全部帖子]

以下是引用大红袍在2016/6/26 23:49:00的发言:

 你也可以编写sql语句,红色代码,是2楼方案的条件

 

DataTables("表b").LoadFilter = "第一列 in (select 第一列 fr om {表a} where " & 条件 & ")"
DataTables("表b").Load

这个还是没有LoadChildren加载的快。。。。


 回到顶部
帅哥,在线噢!
wjl-se
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:763 积分:6313 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2016/6/27 10:51:00 [显示全部帖子]

嗯,可以了,谢谢老师。


 回到顶部
帅哥,在线噢!
wjl-se
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:763 积分:6313 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2016/6/27 11:44:00 [显示全部帖子]

加载子表代码如下,速度很快

DataTables("产成品库").LoadFilter = "订单号 In (Select 订单号 F rom {订单总表} Where " & Filter & ")"
DataTables("产成品库").Load

 

但是多加一个条件就卡死,求解

DataTables("产成品库").LoadFilter = "订单号 In (Select 订单号 F rom {订单总表} Where " & Filter & ") Or 追载 = True"
DataTables("产成品库").Load


 回到顶部
帅哥,在线噢!
wjl-se
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:763 积分:6313 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2016/6/27 13:13:00 [显示全部帖子]

老师,“追载”是子表(产成品库)的列,不是父表(订单总表)的

以前是这样设计的:

DataTables("订单总表").LoadChildren("产成品库") ‘加载子表全部有关联的行
DataTables("产成品库").AppendLoad("追载 = True", False) ’追载子表无关联的行

 

现在想把"追载 = True",加到DataTables("产成品库").LoadFilter里

DataTables("产成品库").LoadFilter = "订单号 In (Select 订单号 F rom {订单总表} Where " & Filter & ") Or 追载 = True" 加载非常慢,是哪里的问题?

 

如果去掉红色代码速度是很快的!


 

[此贴子已经被作者于2016/6/27 13:16:10编辑过]

 回到顶部
帅哥,在线噢!
wjl-se
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:763 积分:6313 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2016/6/27 14:55:00 [显示全部帖子]

好吧,放弃。。。。

希望官方能考虑一下给LoadChildren加个参数,可以针对无关联的行有条件的加载,AppendLoad对追载的逻辑要求很高,否则容易报错。


 回到顶部
帅哥,在线噢!
wjl-se
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:763 积分:6313 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2016/6/27 15:56:00 [显示全部帖子]

楼上是刷新数据,我是表初始加载数据用APPENDLOAD,并不知道哪行要先移除,如果追载的行已经在datatable中就会报错。


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160627155010.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
wjl-se
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:763 积分:6313 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2016/6/27 16:05:00 [显示全部帖子]

加载的时候都希望快一点,每个子表都去select,再移除,再追载,多余的动作太多,不希望这样做。只能严格控制追载逻辑不能和LoadChildren重合,也不太省心。


 回到顶部
总数 13 1 2 下一页