Foxtable(狐表)用户栏目专家坐堂 → 关于查询表加载的问题。


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

主题:关于查询表加载的问题。

帅哥哟,离线,有人找我吗?
houseer
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:325 积分:2752 威望:0 精华:0 注册:2015/2/3 19:48:00
关于查询表加载的问题。  发帖心情 Post By:2019/8/19 9:26:00 [只看该作者]

   在系统中用sql语句建立的查询表, 有没有办法让他在启动程序的时候不加载,因为这样会让启动时间变长。

   我想在调用这个报表的时候再加载数据。

   如果说让我用报表的时候,用代码创建这个报表的话,会用到大量的代码,设置格式字体什么的都得用代码实现去。

   有没有即不影响程序效率,又节省代码量的方法。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/19 9:40:00 [只看该作者]

建立查询表的时候加条件:1=2
加载的时候使用load即可
DataTables("某查询表").LoadFilter = "某某条件"
DataTables(
"
某查询表").Load

 回到顶部
帅哥哟,离线,有人找我吗?
houseer
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:325 积分:2752 威望:0 精华:0 注册:2015/2/3 19:48:00
  发帖心情 Post By:2019/8/19 9:48:00 [只看该作者]

  seect  * from 订单  where  1=2        这样子嘛?
  
  loadfilter  后面的可以把查询表的where语句替换掉是吗?

  但是如果是有其他条件呢?

  seect  * from 订单  where  id>30 and 1=2    这样不加载了

  加载的时候:
  是这样: loadfilter = "id>30"       ?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/19 9:50:00 [只看该作者]

loadfilter  会替换之前的任何条件

DataTables(
"某查询表").LoadFilter = "id>30"
DataTables(
"
某查询表").Load

 回到顶部
帅哥哟,离线,有人找我吗?
houseer
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:325 积分:2752 威望:0 精华:0 注册:2015/2/3 19:48:00
  发帖心情 Post By:2019/8/19 9:56:00 [只看该作者]

  再麻烦版主一下:
  如果是这种的呢?

  seect * from 订单 t1 inner join (seect count(id) as count  from 子表 where id > 20 group by id)  t2   on  t1.id = t2.fid  where t1.日期 > 0 and 1=2 

  这里面有俩where,  如果我用loadfilter 替换的话,能自动识别出来要替换后面那个where ?


[此贴子已经被作者于2019/8/19 9:57:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
y2287958
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4640 积分:33850 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2019/8/19 10:21:00 [只看该作者]

插一个相关的问题:
用以下代码可以生成一个“查询表1”
Dim jb As New SQLJoinTableBuilder("查询表1","表A")
jb.AddCols("*")
jb.Build()
MainTable = Tables("查询表1")

问题:现在来源表”表A”更改了某些内容,现在想在“查询表1”中更新,代码怎么写?
前提条件是:“查询表1”不能卸载(以上代码生成查询表时都是先卸载后再生成的)
[此贴子已经被作者于2019/8/19 10:21:15编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/19 10:51:00 [只看该作者]

以下是引用houseer在2019/8/19 9:56:00的发言:
  再麻烦版主一下:
  如果是这种的呢?

  seect * from 订单 t1 inner join (seect count(id) as count  from 子表 where id > 20 group by id)  t2   on  t1.id = t2.fid  where t1.日期 > 0 and 1=2 

  这里面有俩where,  如果我用loadfilter 替换的话,能自动识别出来要替换后面那个where ?


[此贴子已经被作者于2019/8/19 9:57:08编辑过]

这种问题试试就知道了

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/19 10:54:00 [只看该作者]

以下是引用y2287958在2019/8/19 10:21:00的发言:
插一个相关的问题:
用以下代码可以生成一个“查询表1”
Dim jb As New SQLJoinTableBuilder("查询表1","表A")
jb.AddCols("*")
jb.Build()
MainTable = Tables("查询表1")

问题:现在来源表”表A”更改了某些内容,现在想在“查询表1”中更新,代码怎么写?
前提条件是:“查询表1”不能卸载(以上代码生成查询表时都是先卸载后再生成的)
[此贴子已经被作者于2019/8/19 10:21:15编辑过]

没有其他办法,必须重新调用SQLJoinTableBuilder生成查询

 回到顶部
帅哥哟,离线,有人找我吗?
y2287958
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4640 积分:33850 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2019/8/19 10:56:00 [只看该作者]

以下是引用有点蓝在2019/8/19 10:54:00的发言:

没有其他办法,必须重新调用SQLJoinTableBuilder生成查询

明白了,看来只能用Fill了


 回到顶部