以文本方式查看主题

-  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加载不全。这种情况应该怎么处理比较好呢。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


[此贴子已经被作者于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编辑过]