以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]使用关闭表按钮连续关闭表时出错  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=81898)

--  作者:zhangyj
--  发布时间:2016/3/8 14:20:00
--  [求助]使用关闭表按钮连续关闭表时出错
老师,使用关闭表按钮关闭表,在连续关闭第二个表时会提示“不存在名称为xxx的datatable”,在前一个表关闭后Maintable还是关闭了的表,请教老师如何是解决这个问题。
--  作者:大红袍
--  发布时间:2016/3/8 14:37:00
--  

请详细说明你如何关闭表的,做个具体例子上来。


--  作者:zhangyj
--  发布时间:2016/3/9 8:29:00
--  

我的测试项目输出的代码如下,打开项目单击右侧表关闭按钮,再次点击关闭按钮就会提示表不存在错误提示。


项目事件

 

AfterOpenProject

 

TableCaptionVisible = True

ShowCloseButton = True

 

BeforeCloseTable

 

DataTables.UnLoad(MainTable.Name)

 

计划管理

 

表事件

 

窗口表事件

 

窗口与控件事件

 

自定义函数

 

全局代码

 

菜单事件


--  作者:大红袍
--  发布时间:2016/3/9 9:45:00
--  

不要用unload,用visible

 

MainTable.visible = false


--  作者:大红袍
--  发布时间:2016/3/9 9:57:00
--  

或者把代码改成这样

 

Dim tab = basemainform.controls("mainpages")

If tab.selectedIndex = tab.tabpages.count-1 Then
    If  tab.selectedIndex > 0
        Dim tname As String = MainTable.name
        tab.selectedIndex -= 1
        DataTables.UnLoad(tname)
    Else
        msgbox("至少要留一个表!")
    End If
Else
    DataTables.UnLoad(MainTable.Name)
End If


--  作者:zhangyj
--  发布时间:2016/3/9 11:40:00
--  
我本意使用unload是要把不用的表释放点,减少资源占用,但是据我观察,关闭表时内存并没有释放,再次打开时内存还会增加,所以使用unload方法还不如设置表不显示。
--  作者:zhangyj
--  发布时间:2016/3/9 16:01:00
--  
请教专家老师,unload方法卸载表不释放资源,有办法解决吗?如果不能释放的话,对于大数据量的处理和大规模应用狐表会有一定限制。
--  作者:大红袍
--  发布时间:2016/3/9 16:05:00
--  

unload应该会释放资源的,但可能不是实时的,而是要【过一小段时间】。

 

大数据量的时候,控制加载的行数不就行了?再结合分页不就行了,大家都是这样做的。