以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  加载表问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=134039)

--  作者:jick0526
--  发布时间:2019/4/25 20:39:00
--  加载表问题
老师,有个事情不明白,请问下下面这行代码放在 AfterOpenProject 和放在 BeforeLoadOuterTable 的区别是什么?我的理解是如果放在AfterOpenProject里面,那么会加载所有的行,然后在打开项目时筛选出截止前2年的行,但是表实际上已经全部加载了。如果是放在BeforeLoadOuterTable 里面,那么是在加载之前就筛选好后再加载,那么加载的行数就是实实在在的2年内的行数,是这样子的吗?我想知道下哪个速度会更快点,因为我这边网速比较慢,表里面又有几万行,想知道怎样加载会更快一点(我是外部数据库),谢谢!

DataTables("表A").LoadFilter = "日期 >= \'"  &  Date.Today.AddYears(-2) & "\'"
DataTables("表A").Load

--  作者:有点蓝
--  发布时间:2019/4/25 21:17:00
--  
理解是对的。当然是加载的数据越少就越快
--  作者:jick0526
--  发布时间:2019/4/25 21:35:00
--  
老师,加问个问题,下面的代码我如果想放到BeforeLoadOuterTable里面可以吗?一样会执行吗?
Tables("表A").Sort = "日期 DESC"
[此贴子已经被作者于2019/4/25 21:37:50编辑过]

--  作者:有点蓝
--  发布时间:2019/4/25 21:36:00
--  
不可以。应该放到表A的afterload事件里
--  作者:jick0526
--  发布时间:2019/4/25 22:38:00
--  
老师,我刚才把表放到BeforeLoadOuterTable属性里面,发现还是会加载全部的行,我是想在往服务器提取数据时就只加载2年内的数据,就是实实在在的只加载2年内的数据,要放在哪个属性里合适,还是要修改代码?
--  作者:有点蓝
--  发布时间:2019/4/25 22:54:00
--  
请仔细看一遍BeforeLoadOuterTable的帮助,按照帮助的用法使用,并不是使用1楼的代码:http://www.foxtable.com/webhelp/scr/0670.htm
--  作者:jick0526
--  发布时间:2019/4/26 17:32:00
--  错误提示

老师,老师这段代码试了,提示错误,说无法完成延迟准备,\'#\'附件有语法错误,我是SQL 数据

 


图片点击可在新窗口打开查看此主题相关图片如下:88.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:999.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/4/26 17:53:59编辑过]

--  作者:有点蓝
--  发布时间:2019/4/26 17:46:00
--  
应该是这个原因:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=69632
--  作者:jick0526
--  发布时间:2019/4/26 17:59:00
--  

老师我把下面的代码放到,BeforeLoadOuterTable提示错误,无法完成延迟准备,"#"附件有语法错误,能帮我看下吗?

If e.DataTableName = "订单" AndAlso e.User.Name = "开发者" Then
    Dim StartDate As Date = Date.Today().AddDays(-10)
    e.SelectString = "Select * Fro m {订单} Where [日期] > #" & StartDate & "#"
End If

--  作者:jick0526
--  发布时间:2019/4/26 18:17:00
--  
老师,找到原因了,已经改过来了,谢谢!