以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 动态加载数据的错误页面 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2135)
|
-- 作者:jgc1010
-- 发布时间:2009/3/18 12:38:00
-- 动态加载数据的错误页面
此主题相关图片如下:未命名.jpg
|
-- 作者:jgc1010
-- 发布时间:2009/3/18 12:39:00
--
动态加载SQL SERVER外部表的错误提示
|
-- 作者:狐狸爸爸
-- 发布时间:2009/3/18 12:46:00
--
下面的代码,在SQL SERVER下通过测试的,逐行比对一下你原来的代码,就知道你的为什么不行了,因为你将筛选和动态加载搞混了:
Dim Value() As String Dim Filter As String Value = e.Node.FullPath.Split("\\") Select Case e.Node.Level Case 0 Filter = "[shipCountry] = \'" & Value(0) & "\'" Case 1 Filter = "[shipCountry] = \'" & Value(0) & "\' And [customerID] = \'" & Value(1) & "\'" Case 2 Filter = "[shipCountry] = \'" & Value(0) & "\' And [customerID] = \'" & Value(1) & "\' And [EmployeeID] = " & Value(2) End Select DataTables("Orders").LoadFilter = Filter DataTables("Orders").Load()
|
-- 作者:jgc1010
-- 发布时间:2009/3/18 13:58:00
--
动态加载SQL SERVER 外部数据表的问题终于搞定了.谢谢你.
再问一下,如果一个项目中动态加载多个表,在BeforeLoadOuterTable中,每个表写一个IF...END IF ,代码效率高吗?如以下的代码是否可以精练?
If e.DataTableName = "tab_wjk" Then e.SelectString = "Select * From [tab_wjk] Where id<0" End If
If e.DataTableName = "tab_ajk" Then e.SelectString = "Select * From [tab_ajk] Where id<0" End If 有N个表,需要写N个if...end if 吗?
|
-- 作者:狐狸爸爸
-- 发布时间:2009/3/18 14:06:00
--
如果所有的表,都不加载数据,BeforeLoadOuterTable的代码为:
e.SelectString = "Select * From " & e.DataTableName & "Where 1> 2"
如果是部分表:
select case e.DataTableName case "表1","表2","表3" e.SelectString = "Select * From " & e.DataTableName & "Where 1> 2" end select
呵呵,帮助中有很多宝藏,不起眼的一句话,可能能够解决你的大问题,老兄不可错过这些宝藏啊。
[此贴子已经被作者于2009-3-18 14:09:41编辑过]
|
-- 作者:jgc1010
-- 发布时间:2009/3/18 14:42:00
--
谢谢!不过我测试了加载二张表,结果又报错了,代码如下:
select case e.DataTableName case "ORDERS","PRODUCTS" e.SelectString = "Select * From " & e.DataTableName & "Where 1> 2" end select
此主题相关图片如下:11.jpg
[此贴子已经被作者于2009-3-18 15:23:10编辑过]
|
-- 作者:狐狸爸爸
-- 发布时间:2009/3/18 14:50:00
--
错误提示呢?
|
-- 作者:jgc1010
-- 发布时间:2009/3/18 15:24:00
--
错误提示页面已加到上面的贴子中,请查看
|
-- 作者:狐狸爸爸
-- 发布时间:2009/3/18 16:41:00
--
呵呵,错误提示告诉你有语法错误,而且就是字符1附近,你就修改SQL语句啊,你之前不是总结出来了,SQL SERVER不能这样用吗?
你修改一下即可:
select case e.DataTableName Case "Orders" e.SelectString = "Select * From Orders Where OrderId < 0 " Case "Products" e.SelectString = "Select * From Products Where ProductId < 0 " end select
|
-- 作者:jgc1010
-- 发布时间:2009/3/18 17:10:00
--
可以了,谢谢.你知道我对编程基本没什么感觉,最多只能依样画葫芦.通过你的帮助,才对编程有一点兴趣.对不起,你给我的不加载任何表的代码,我测试了还是有错误,错误页面同上.以下是你给的代码,请帮助指正.
如果所有的表,都不加载数据,BeforeLoadOuterTable的代码为:
e.SelectString = "Select * From " & e.DataTableName & "Where 1> 2"
|