以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- fill 加载表后,用LoadFilter 和Load 加载同表数据 遇到的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=48131) |
-- 作者:fubblyc -- 发布时间:2014/3/23 20:12:00 -- fill 加载表后,用LoadFilter 和Load 加载同表数据 遇到的问题 各位老师晚上好,
我在窗口的after load 用fill加载表,代码如下: Dim sql,ex1,ex2 As String
sql = "select * from (Select {rjsytVIP基本信息}.归属门店代号 As 归属门店代号 , {rjsytVIP消费信息}.VIP卡号, MAX(消费日期) As 最后购买日, " & ex1 & " As 几个月没来买, " & ex2 & " FROM " DataTables("VIP行为信息_VIP行为信息").Fill(sql,"VIP数据", True)
然后在窗口的 一个名为 【查询】的按钮写下如下代码:
Dim filter As String
With e.Form.Controls("归属门店代号")
With e.Form.Controls("VIP卡号")
If Filter > "" Then With DataTables("VIP行为信息_VIP行为信息")
应用窗口后,在“归属门店代号”控件输入 代号,点击 【查询】按钮,出现错误提示:
\')\' 附近有语法错误。
之前 【查询】按钮也是用 fill加载表的,但是看到【帮助】这样写:
请不要滥用Fill 通过Fill生成的Table,在打开窗口后,如果需要从同一个表加载其它数据进来,请采用LoadFilter和Load,切不可再用Fill(除非需要从另一个表加载数据),因为Fill会重新生成DataTable和Table,不仅效率低,还会导致设置好的绑定失效。 Dim dt As Date = Date.Today.AddDays(-7) 总之,只有需要从不同的表中加载数据时,使用Fill方法,如果从同一个表中加载数据,应该使用LoadFilter和Load。
才想用这种方式
不知道是不是我理解错误了。。。。 [此贴子已经被作者于2014-3-23 21:28:48编辑过]
|
-- 作者:fubblyc -- 发布时间:2014/3/23 21:31:00 -- 帮助文档上写的:
此主题相关图片如下:帮助文档.png |
-- 作者:有点酸 -- 发布时间:2014/3/23 22:17:00 -- 帮助也说了: http://www.foxtable.com/help/topics/2721.htm
|
-- 作者:jspta -- 发布时间:2014/3/23 22:39:00 -- 你有几个错误, 1.这次长的SQL应该直接写成视图放在数据库中,调用的时候调用视图就可以了,你有错误都能自动帮你检查出来,你现在是少了括号了。 2.datatable 有Fill方法吗?只有table才有 3.学会用别名,但不是滥用别名 4.vbcrlf 是换行,你用在SQL语句中没有意义。 5. 谁跟你说的,在设置loadfilter时候要先 = “” 然后再设置条件?完全不需要,只要在load前设置好了就行了 6.两个条件查询无法同时进行,是有意为之吗? 如果你吧SQL语句写成视图,那么你调用的时候就非常方便了,select * from a |
-- 作者:fubblyc -- 发布时间:2014/3/23 23:22:00 -- 原来如此,谢谢 有点酸 老师。搞定了!! |
-- 作者:fubblyc -- 发布时间:2014/3/24 16:06:00 -- 啊,我现在才看到jspta老师的帖子。。。对自己无语了。。。
我现在是用SQLLoad()方法。 Dim sql,ex1,ex2,filter As String
With e.Form.Controls("归属门店代号")
With e.Form.Controls("VIP卡号")
If Filter > "" Then sql = "select * from (Select {rjsytVIP基本信息}.归属门店代号 As 归属门店代号 , {rjsytVIP消费信息}.VIP卡号, MAX(消费日期) As 最后购买日, " & ex1 & " As 几个月没来买, " & ex2 & " FROM " DataTables("VIP行为信息_VIP行为信息").SQLLoad(sql)
两个问题: 1.确实两个条件无法同时查询,但不是有意为之,是希望能同时查询,但是不知道是怎么回事,问题出在哪里。。。 2.长的SQL应该直接写成视图放在数据库中,调用的时候调用视图就可以了 具体要怎么做呢?
我看了帮助里的表视图以及论坛里的表视图有关的帖子,还是没怎么弄明白。。。
是不是这样就是写成了表视图了:? Dim sql,ex1,ex2 As String
sql = "select * from (Select {rjsytVIP基本信息}.归属门店代号 As 归属门店代号 , {rjsytVIP消费信息}.VIP卡号, MAX(消费日期) As 最后购买日, " & ex1 & " As 几个月没来买, " & ex2 & " FROM "
调用的时候要怎么调用呢?
|
-- 作者:jspta -- 发布时间:2014/3/24 16:15:00 -- 外部数据源的话,直接在数据库中创建视图,用SQL语句调用。 狐表内部表就要用SQL查询表生成,但是没办法用SQL语句调用,可以当做普通表进行处理。 With e.Form.Controls("归属门店代号")
With e.Form.Controls("VIP卡号") Filter = Filter.TrimEnd(" ", "d", "n", "a") |
-- 作者:fubblyc -- 发布时间:2014/3/24 17:02:00 -- jspta老师,如何在数据库创建视图,我百度了下,需要这样:
能不能直接在狐表创建呢。。 |
-- 作者:狐狸爸爸 -- 发布时间:2014/3/24 17:05:00 -- 不可以 |
-- 作者:Bin -- 发布时间:2014/3/24 17:07:00 -- 用SQLCOMMAND 执行 T-SQL语句来创建视图倒是可以的. |