以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教切换数据源  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100975)

--  作者:hbhb
--  发布时间:2017/5/22 17:52:00
--  请教切换数据源
大师:请问切换数据源为何很慢,30张表不加载数据,也要10以上秒,为何?
--  作者:有点蓝
--  发布时间:2017/5/22 17:56:00
--  
什么数据库,本地还是远程数据库,怎么切换的
--  作者:hbhb
--  发布时间:2017/5/23 10:45:00
--  
本地access数据库
\'------ 改变表的数据源不加载数据-----
Dim nm As String = args(0)                                  \'---表名称--
Dim dtconn As String = args(1)                              \'---数据源名称
Dim yn As Boolean = args(2)                                 \'---是否加载数据
Dim filter As String = args(3)                              \'---加载数据条件,根据不同的数据源设置条件,如果为空加载所有数据

If DataTables.Contains(nm) = False Then
    DataTables.Load(nm)                                     \'------加载此表不加载数据,在加载外部表时设置的条件为准,一般不加载数据---
End If
DataTables(nm).StopRedraw
If yn = True                                                \'---是否加载数据---
    DataTables(nm).LoadFilter = filter                      \'---加载数据源中所有数据
Else
    filter = "[_identify] is null"
    DataTables(nm).LoadFilter = filter       \'---加载数据源中所有数据
End If

DataTables(nm).ChangeConnection(dtconn)

DataTables(nm).ResumeRedraw

--  作者:有点色
--  发布时间:2017/5/23 11:18:00
--  

 切换数据源,相当于连接数据库30次,执行了30次Load方法。

 

 你在事件里面有没有写耗时的代码?有没有表达式列影响加载?


--  作者:hbhb
--  发布时间:2017/5/23 13:39:00
--  
关闭了所有事件。
请问如果表a,已经加载了2万行数据,我现在切换该表的数据源,切换前是否自动保存表a,并耗时?究竟耗时在哪里?
DataTables("表a").LoadFilter = "_identify is null"

DataTables("表a").ChangeConnection("test")



--  作者:有点色
--  发布时间:2017/5/23 14:03:00
--  

是否保存你测试一下便知。如果你不需要保存这样处理

 

http://www.foxtable.com/webhelp/scr/1538.htm

 

http://www.foxtable.com/webhelp/scr/2365.htm