以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  理解下狐爸的动态另载数据方法,如有不对请指正。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=48877)

--  作者:ndxfke
--  发布时间:2014/4/8 9:38:00
--  理解下狐爸的动态另载数据方法,如有不对请指正。
关于动态加载外部数据,我一直没整太明白。

论坛里看了一些贴子,感觉有点众说纷云。刚找到狐爸一个例子,如下:
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=2127&replyID=&skin=1

我来理解下步骤,如有不对,请各位大狐指正。
同时也是种分享,希望对动态加载不熟悉的狐友们也是一种帮助。


1、在 BeforeLoadOuterTable 事件中,利用一种不成立的条件,让数据加载为空。如果多表,就利用循环的方法来不加载数据

If e.DataTableName = "订单字段" Then

    e.SelectString = "Select * From 订单表 Where 编号字段 < 0"

End If 

疑惑点:
.写了以上事件代码,还需要在【数据表】菜单 —【外部数据表】中设置加载条件吗?


2、数据调用时(不管任何事件中),用SQL语句来加载你要的数据;
Dim cmd As New SQLCommand

Dim dt As DataTable

cmd.C

cmd.CommandText = "SELECT DISTINCT 产品字段,客户字段 From 订单表名"

dt = cmd.ExecuteReader()


疑惑点:

.执行(1)BeforeLoadOuterTable 的事件代码,通过loadfilter的语句,是加载不进来数据的?

.每执行(2)的加载代码,数据表的所有数据都会被重写?(也就数据表中只存在,当前加载语句加载进来的数据)


--  作者:Bin
--  发布时间:2014/4/8 9:40:00
--  
1.不需要
2. 什么重写? 你只是把数据库的表加载到 DT这个变量来而已.

--  作者:ndxfke
--  发布时间:2014/4/8 9:51:00
--  
2. 什么重写? 你只是把数据库的表加载到 DT这个变量来而已. 

  哦,这个明白。
  如果我想把外部数据源中的{订单}数据,加载到数据表里。是不是就loadfilter 来加载呢?

--  作者:Bin
--  发布时间:2014/4/8 9:56:00
--  
在表里加载其他的表, 可以使用FILL


--  作者:ndxfke
--  发布时间:2014/4/8 10:08:00
--  
哦,我再看看。