以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]关于加载的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=152902) |
-- 作者:81538475 -- 发布时间:2020/7/24 21:32:00 -- [求助]关于加载的问题 表A为主表,表B由于数据量较大,为分页加载的表 设置 加载表A时,会把表B相关的项也加载出来。 由于表B 是分页的,所以选择表A的某一行的时候,表B加载不全。这种情况应该怎么处理比较好呢。
[此贴子已经被作者于2020/7/24 21:33:18编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/7/25 9:46:00 -- 这种情况不能使用筛选,只能使用加载 Dim str As String Dim ids As String If Forms("模拟关联表").Opened Then For i As Integer = e.NewRange.TopRow To e.NewRange.BottomRow str = str & ",\'" & e.Table.Rows(i)("第一列") & "\'" Next \'StatusBar.Message2 = (str) Tables("模拟关联表_Table1").DataTable.LoadFilter = " 第一列 in (" & str.Trim(",") &")" Tables("模拟关联表_Table1").DataTable.Load End If 如果不想影响主表已加载的数据,就把窗口表改为sqltable使用 |
-- 作者:81538475 -- 发布时间:2020/7/26 9:07:00 -- 是不是还需要加个分页条件? DataTables("表B").Loadtop = DataTables("表B").LoadPage = |
-- 作者:chen37280600 -- 发布时间:2020/7/26 9:18:00 -- 强烈建议把去掉表达式,把数据直接冗余在另外一个表,不相互依赖加载。这样就免去动态加载很多麻烦的事情。 一般我们都喜欢解耦,各自干各自,维护简单,代码简单。你现在只有AB2个表,等你表有几十个后,相互依赖动态加载,会引发一系列的数据空白,你要考虑非常多非常多的连锁依赖,很痛苦的 不如:“用空间换时间”,牺牲掉不值钱的硬盘空间,换回动态加载的消耗时间
|
-- 作者:81538475 -- 发布时间:2020/7/26 15:33:00 -- 以下是引用chen37280600在2020/7/26 9:18:00的发言:
请问下这个如何 冗余 到另外一个表呀。有相关的例子可以学习吗?对这个还不了解。
强烈建议把去掉表达式,把数据直接冗余在另外一个表,不相互依赖加载。这样就免去动态加载很多麻烦的事情。 一般我们都喜欢解耦,各自干各自,维护简单,代码简单。你现在只有AB2个表,等你表有几十个后,相互依赖动态加载,会引发一系列的数据空白,你要考虑非常多非常多的连锁依赖,很痛苦的 不如:“用空间换时间”,牺牲掉不值钱的硬盘空间,换回动态加载的消耗时间
|
-- 作者:有点蓝 -- 发布时间:2020/7/26 20:35:00 -- 这是一个有点玄的概念,很难一两句话表达清楚,如果对数据库没有什么概念的,还是先按照自己的想法先用吧,等经验累积到一定程度就明白了 |
-- 作者:chen37280600 -- 发布时间:2020/7/27 9:29:00 -- 冗余这个词就专业点,简单说吧 有一个商品档案表,记录了 1:富士苹果。 2:水晶苹果 1没有冗余:入库单,记录商品ID1入库了5个,商品ID2入库了 8个。但是只看ID,我没办法知道这是什么商品啊,于是我们利用了狐表的“表达式”,通过关联商品ID,知道入库了5个富士苹果,8个水晶苹果。 2发现问题:看起来没啥问题。但是例如我要搜索包含“苹果”字眼的商品的入库记录。这时候就麻烦了,要先去搜商品档案,找到包含的ID,再去搜入库单。如果关联更多,连锁查询就更多 3使用冗余后:入库单,记录商品ID+商品名字(浪费了硬盘空间,多余记录了这个字段)。这样我就避开了表达式,也不用考虑关联加载,也不担心空白。如果我要搜“苹果”字眼的,我直接like \'%苹果%\'就完事。多轻松
[此贴子已经被作者于2020/7/27 9:33:01编辑过]
|