以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]关于SQL的代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=64773) |
-- 作者:huangfanzi -- 发布时间:2015/3/1 17:27:00 -- [求助]关于SQL的代码 SQL语句实在不懂,下面代码请指导一下: Dim Filter As String If e.node.Text = "加载所有数据" Then Filter = "" Else Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的DataRow Select Case e.Node.Level Case 0 Filter ="[牌号] = \'" & dr("牌号") & "\'" Case 1 Filter ="[牌号] = \'" & dr("牌号") & "\' And [母卷号] = \'" & dr("母卷号") & "\'" Case 2 Filter ="[牌号] = \'" & dr("牌号") & "\' And [母卷号] = \'" & dr("母卷号") & "\'And [卷号] = \'" & dr("卷号") & "\'" End Select End If Dim tb1 As WinF orm.Table = e.F orm.Controls("Table_查询表") tb1.Table.Fill("select * f rom {工序合并表} where " & filter,"ShcsMain",True) 执行以上代码时,如果点了“加载所有数据”,就提示SQL语句错误,问题我知道是出在了 select 语句后面的 where那,请老师改下。
[此贴子已经被作者于2015/3/1 17:27:27编辑过]
|
-- 作者:有点甜 -- 发布时间:2015/3/1 17:30:00 -- 改成 Filter = "1=1" |
-- 作者:huangfanzi -- 发布时间:2015/3/1 17:59:00 -- 原来可以这样写,明白这个意思了。 另一个问题,就是执行效率问题,我发现我写的代码,无论数据是否已经载入过,点了节点后就会重新载入一次,理想情况下,我点了一次加载所有数据后,再点下面的节点,数据应该是立即更新,不应该再从新加载。 有何方法可以做到 如果已经加载的数据与后台数据没有发生变化,就不重新加载,如果发生变化了,就重新加载一次。
|
-- 作者:有点甜 -- 发布时间:2015/3/1 18:03:00 -- 简单一点,你记录下表格的行数,然后,点击节点的时候,查询后台的行数是多少,如果行数不匹配,就重新加载。
http://www.foxtable.com/help/topics/2897.htm
|