动态加载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 吗?
如果所有的表,都不加载数据,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编辑过]
谢谢!不过我测试了加载二张表,结果又报错了,代码如下:
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编辑过]
呵呵,错误提示告诉你有语法错误,而且就是字符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
可以了,谢谢.你知道我对编程基本没什么感觉,最多只能依样画葫芦.通过你的帮助,才对编程有一点兴趣.对不起,你给我的不加载任何表的代码,我测试了还是有错误,错误页面同上.以下是你给的代码,请帮助指正.
如果所有的表,都不加载数据,BeforeLoadOuterTable的代码为:
e.SelectString = "Select * From " & e.DataTableName & "Where 1> 2"