以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于查询表加载的问题。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=139675)

--  作者:houseer
--  发布时间:2019/8/19 9:26:00
--  关于查询表加载的问题。
   在系统中用sql语句建立的查询表, 有没有办法让他在启动程序的时候不加载,因为这样会让启动时间变长。

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

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

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

--  作者:有点蓝
--  发布时间:2019/8/19 9:40:00
--  
建立查询表的时候加条件:1=2
加载的时候使用load即可
DataTables("某查询表").LoadFilter = "某某条件"
DataTables(
"
某查询表").Load

--  作者:houseer
--  发布时间:2019/8/19 9:48:00
--  
  seect  * from 订单  where  1=2        这样子嘛?
  
  loadfilter  后面的可以把查询表的where语句替换掉是吗?

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

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

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

--  作者:有点蓝
--  发布时间:2019/8/19 9:50:00
--  
loadfilter  会替换之前的任何条件

DataTables(
"某查询表").LoadFilter = "id>30"
DataTables(
"
某查询表").Load
--  作者: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编辑过]

--  作者: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编辑过]

--  作者:有点蓝
--  发布时间: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编辑过]

这种问题试试就知道了
--  作者:有点蓝
--  发布时间: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
--  发布时间:2019/8/19 10:56:00
--  
以下是引用有点蓝在2019/8/19 10:54:00的发言:

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

明白了,看来只能用Fill了