以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]SQL动态加载子表的问题,再求助!!!! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=45853) |
||
-- 作者:浙江仔 -- 发布时间:2014/2/12 13:24:00 -- [求助]SQL动态加载子表的问题,再求助!!!! 主表:tab_QYInfo 子表:tab_YanHuaWGJL,tab_QYGLRY,tab_QYEquip....等通过[企业ID]关联的九个子表
目前系统设置主表附表全部加载,但是感觉因为表格多,数据多了,启动太慢了,所以想动态加载数据表。
看了“父表与子表同步加载”的例子,我感觉项目一开始主表全部加载了,子表也会全部加载,没有限制加载的效果了。(是不是这样理解的?)
所以在窗体关联表中想用“SQLTable”代替“Normal”的tab_QYInfo.tab_YanHuaWGJL(等其他子表)
主表选中不同记录,窗体中的Table(子表)会显示不同记录,
如图窗体
想用SQL的代码实现同样效果,该怎么写这句SQL代码,谢谢自己瞎写了一下,发现不对,
Select * From {tab_YanHuaWGJL} where {tab_YanHuaWGJL}.企业ID = {tab_QYInfo}.企业ID
这语句也不行 Select * From {tab_YanHuaWGJL} where {tab_YanHuaWGJL}.企业ID = \'" & Vars("CurrID") & "\' 狐爸说:
[此贴子已经被作者于2014-2-12 19:53:49编辑过]
|
||
-- 作者:狐狸爸爸 -- 发布时间:2014/2/12 14:40:00 -- 子表和父表同步加载: [此贴子已经被作者于2014-2-12 14:40:09编辑过]
|
||
-- 作者:浙江仔 -- 发布时间:2014/2/12 15:05:00 -- 主要是我的主表是全部加载的,不是动态加载的。我想不加载子表,用SQL语句,这样减少子表的加载 订单表的AfterLoad事件的话,还是要加载子表的
|
||
-- 作者:狐狸爸爸 -- 发布时间:2014/2/12 15:08:00 -- 那就设置主表的CurrentChanged事件,假定企业ID是字符型:
if e.table.Current Is Nothing Then DataTables("子表").LoadFilter = "[_Identify] Is Null" Else DataTables("子表").LoadFilter = "企业ID = \'" & e.Table.Current("企业ID") & "\'" End if DataTables("子表").Load() |
||
-- 作者:Bin -- 发布时间:2014/2/12 15:09:00 -- "Select * From {tab_YanHuaWGJL} where {tab_YanHuaWGJL}.企业ID =" & tables(tab_QYInfo).current("企业ID") |
||
-- 作者:狐狸爸爸 -- 发布时间:2014/2/12 15:17:00 -- 同一个表,还是别用Fill,用Load比较好,不用重新生成表结构。 |
||
-- 作者:浙江仔 -- 发布时间:2014/2/12 16:07:00 -- 谢谢 |
||
-- 作者:浙江仔 -- 发布时间:2014/2/12 16:24:00 -- Select * From {tab_YanHuaWGJL} where {tab_YanHuaWGJL}.企业ID = \'DQ201303731\' 可以列出记录 但是用表达式就不行,怎么回事? Select * From {tab_YanHuaWGJL} where {tab_YanHuaWGJL}.企业ID = \'" & tables("tab_QYInfo").current("企业ID")& "\' 只能用狐爸的办法了么?
|
||
-- 作者:浙江仔 -- 发布时间:2014/2/12 19:51:00 -- 再求助顶上去 |
||
-- 作者:浙江仔 -- 发布时间:2014/2/13 8:11:00 -- 再问 |