Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共11 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:动态加载数据的错误页面

1楼
jgc1010 发表于:2009/3/18 12:38:00

图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
2楼
jgc1010 发表于:2009/3/18 12:39:00
动态加载SQL SERVER外部表的错误提示
3楼
狐狸爸爸 发表于: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()
4楼
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 吗?

5楼
狐狸爸爸 发表于: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编辑过]
6楼
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编辑过]
7楼
狐狸爸爸 发表于:2009/3/18 14:50:00
错误提示呢?
8楼
jgc1010 发表于:2009/3/18 15:24:00

错误提示页面已加到上面的贴子中,请查看

9楼
狐狸爸爸 发表于: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
10楼
jgc1010 发表于:2009/3/18 17:10:00

可以了,谢谢.你知道我对编程基本没什么感觉,最多只能依样画葫芦.通过你的帮助,才对编程有一点兴趣.对不起,你给我的不加载任何表的代码,我测试了还是有错误,错误页面同上.以下是你给的代码,请帮助指正.

如果所有的表,都不加载数据,BeforeLoadOuterTable的代码为:

e.SelectString = "Select * From "  & e.DataTableName  & "Where 1> 2"


 

共11 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03320 s, 2 queries.