以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于datatable的疑惑! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=37898) |
-- 作者:客家阿哥 -- 发布时间:2013/7/14 17:44:00 -- 关于datatable的疑惑! datatables().loadfilter= "" datatables().load
效率与sql相比较差多远? 频繁使用会不会对编好的程序和数据库服务带来很大大压力?
也就是,我想知道datatables的工作原理是什么,相当于sql的什么语句? |
-- 作者:Bin -- 发布时间:2013/7/15 8:43:00 -- 就是一段根据你的loadfilter拼接的查询语句. 效率理论上和你直接使用相同的SQL语句FILL是一样的. 具体你可以自行测试一下对服务器的压力. |
-- 作者:客家阿哥 -- 发布时间:2013/7/15 13:31:00 -- 要是单机版的话,我就会经常使用table,但是做的软件是网络版的,为了获取实时的数据,就经常使用datatable,所以要频繁通过 datatables().loadfilter= "" datatables().load 先清除加载条件,然后再根据需要来加载需要的数据。
不知道,大虾们有什么好的方法???谢谢! [此贴子已经被作者于2013-7-15 13:36:23编辑过]
|
-- 作者:客家阿哥 -- 发布时间:2013/7/15 13:35:00 -- 使用下面的语句来清除加载条件 datatables().loadfilter= "" datatables().load 是不是把所有的数据先加载到foxtable? 还是,只是在数据库加载?然后再根据foxtable程序的需要加载部分数据? 如果数据量大的话?那情况会怎样? |
-- 作者:狐狸爸爸 -- 发布时间:2013/7/15 14:00:00 -- 例如这个论坛,单击上一页、下一页,你看到的都是最新的帖子,可以刷新当前页,单击某个帖子,可以看到最新的回复。
在Foxtable,也没有必要频繁Load,最好分页加载,这样单击下一页、上一页,看到的都是最新的数据,新的加载树,双击选定节点,还可以刷新当前页,此外你也可以重新加载某行的数据,例如升级某行,就重新Load此行,然后单开窗口编辑。
如果需要一些数据自动的流转,可以看看帮助《工作流》
|
-- 作者:jspta -- 发布时间:2013/7/15 14:05:00 -- 以下是引用客家阿哥在2013-7-15 13:35:00的发言:
使用下面的语句来清除加载条件 datatables().loadfilter= "" datatables().load 是不是把所有的数据先加载到foxtable? 还是,只是在数据库加载?然后再根据foxtable程序的需要加载部分数据? 如果数据量大的话?那情况会怎样? 不需要清空,load默认从数据库加载,你条件直接写 datatable。loadFilter = “条件” 下次直接替换,再用load加载就可以了 加载速度与电脑和数据库性能有关系
table有个datatable属性,返回对应datatable。所以无论是单机版还是网络版,加载方式是一样的,没有必要区分。 |
-- 作者:狐狸爸爸 -- 发布时间:2013/7/15 14:12:00 -- 是的,只是网络环境下,因为网速问题,一般不要一次加载太多数据,数据量多的时候,采用分页加载。 |
-- 作者:客家阿哥 -- 发布时间:2013/7/15 19:05:00 -- 我记得使用 DataTables("表").Find()的时候, 如果不使用 datatables().loadfilter= ""
datatables().load 就发生找不到值得问题?! 采用模拟关联表的时候,也一样要先清除加载条件,不然的话,别人修改了记录,你这里就不能实时体现! If Forms("收费操作").Opened() DataTables("收费记录表").LoadFilter = "" DataTables("收费记录表").Load Dim t As Table =Tables("收费记录表") With Tables("学生信息表") If .Current Is Nothing Then t.Filter="False" Else t.Filter="学生信息表编号= " & .current("学生信息表编号") End If End With End If |
-- 作者:jspta -- 发布时间:2013/7/15 21:09:00 -- 你没有理解这table和datatable的两个的区别 datatable——从数据源加载到foxtable的数据,如果设置了加载条件,则可能不完全等于数据源中的内容 table——从datatable中获取数据,如果设置了加载条件,则可能不完全等于datatable
那么三者的关系就变成数据表包含datatable(即foxtable中的datatable实际上相当于是数据源的table),datatable包含table foxtable的大部分属性和方法都是针对已经加载的数据,后台没加载的,如果需要查找,可以使用SQLCommand,否则就设置过滤条件进行加载
|
-- 作者:客家阿哥 -- 发布时间:2013/7/15 21:41:00 -- 那就关于实际应用请教一下吧? 那么怎么让模拟关联表实现子表查询的是实时的后台数据? |