Foxtable(狐表)用户栏目专家坐堂 → 动态加载表与Fill的比较


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

主题:动态加载表与Fill的比较

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


加好友 发短信
等级:八尾狐 帖子:1916 积分:17092 威望:0 精华:0 注册:2014/7/29 19:09:00
动态加载表与Fill的比较  发帖心情 Post By:2014/10/15 19:23:00 [只看该作者]

在项目的外部数据表设置那添加了外部表,但打开项目时没有加载,通过下面的代码需要时再加载表结构进来,

If DataTables.Contains("表C") = False Then '如果表C没有加载
    DataTables.Load("表C")
'加载表C

End If


这种方式和项目的外部数据表设置那不添加任何表,直接在打开窗口时将表结构及数据Fill到窗口的sqltable中,哪种方式效率更高?

谢谢!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/15 19:39:00 [只看该作者]

 动态加载的,有表属性,设置的列属性、表样式那些都有效。

 

 如果是fill进来的,你就不能灵活添加事件代码了


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


加好友 发短信
等级:八尾狐 帖子:1916 积分:17092 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2014/10/15 19:44:00 [只看该作者]

主要是想问下两者的速度哪个快,还是都差不多?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/15 19:57:00 [只看该作者]

 本质不同。一个是重新加载数据,一个是撤销数据。

 

 加载,需要从数据库去得;撤销,不需要访问数据库。

 

 如果是外部网络数据源,看数据量、看网速。


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


加好友 发短信
等级:八尾狐 帖子:1916 积分:17092 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2014/10/15 20:46:00 [只看该作者]

谢谢甜老师,但还是不明白;重新理下思路。
方式1:要用到表时用下面代码加载
If DataTables.Contains("表C") = False Then '如果表C没有加载
    DataTables.Load("表C"
'加载表C

End If
用完后关闭是又用下面的代码卸载;

If DataTables.Contains("表C"Then '如果表C已经加载
    DataTables.Unload("表C")
'卸载表C

End
If

如果再次用到此表时又要重复上述过程


方式二:

而窗口中的SQLtable是在打开窗口时才加载表

Tables(“窗口1").Fill("select *  from {表C} where [_Identify] < 0",data,False)

每次打开窗口1就加载表,关闭窗口1就卸载表了。

如果不考虑数据量,都是SQL外部数据源,仅加载表结构速度 上哪种会更快呢?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/15 20:52:00 [只看该作者]

 方式二会快一些,方法一的功能多一些。

 回到顶部