以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助表达式 和子表加载速度 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=146246) |
-- 作者:long086 -- 发布时间:2020/2/19 22:57:00 -- 求助表达式 和子表加载速度 咨询一下老师,订单主表和订单明细表关联,订单主表里面有两个表达式列,查询的主表的时候同时加载了子表,速度很慢很慢,如果把主表的表达式列去掉,加载子表很快。或者不去掉表达式列,只加载主表,不加载子表,速度也很快。能不能不去掉表达式列,同时加载子表,把速度提升上去。 |
-- 作者:有点蓝 -- 发布时间:2020/2/20 9:48:00 -- 上传实例看看。估计是多个地方的表达式列都触发了计算,现成了链式反应。 |
-- 作者:long086 -- 发布时间:2020/2/20 22:33:00 -- 附件上传老师指点 [此贴子已经被作者于2020/2/21 22:07:45编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/2/21 11:05:00 -- 是会收到表达式的影响的。可以这样 Dim s2 As String = DataTables("用户资料").DataCols("合计金额").Expression Dim s3 As String = DataTables("用户资料").DataCols("到期时间").Expression DataTables("用户资料").DataCols("合计金额").Expression = "" DataTables("用户资料").DataCols("到期时间").Expression = "" DataTables("用户交费记录").LoadFilter = "用户账号 In (" & ids & ")" DataTables("用户交费记录").Load() DataTables("用户资料").DataCols("合计金额").Expression = s2 DataTables("用户资料").DataCols("到期时间").Expression = s3 另外,感觉这个查询里的加载完全没有必要啊,每次都是加载全部的数据,没看出来有什么意义。要的效果不应该是只加载符合条件的数据吗?那么应该这样: Dim s As WinForm.ComboBox = e.Form.Controls("cxfs") Dim cx As WinForm.TextBox = e.Form.Controls("srcx") Dim filter As String = "" Select Case s.Text Case "姓名查找" filter = "用户名称 like \'%" & cx.text & "%\'" Case "账号查找" filter = "用户账号 Like \'%" & cx.text & "%\' " Case "号线查找" filter= "号线地址 Like \'%" & cx.text & "%\'" Case "手机查找" filter = "号码1 like \'%" & cx.text & "%\' or 号码2 like \'%" & cx.text & "%\' or 号码3 like \'%" & cx.text & "%\' "\' Case "地址查找" filter = "装机地址 Like \'%" & cx.text & "%\'" Case Else MessageBox.Show("未查到数据") Return End Select DataTables("用户资料").LoadFilter = filter DataTables("用户资料").Load Dim ids As String = "" For Each dr As DataRow In DataTables("用户资料").DataRows ids = ids & ",\'" & dr("用户账号") & "\'" Next If ids > "" ids= ids.Trim(",") DataTables("用户交费记录").LoadFilter = "用户账号 In (" & ids & ")" Else DataTables("用户交费记录").LoadFilter = "false" End If DataTables("用户交费记录").Load() |
-- 作者:long086 -- 发布时间:2020/2/21 22:48:00 -- 谢谢老师指点,按照老师的指点不但功能实现了,速度还飞快。 |