以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]能否给个动态加载基于SQL SERVER 的NORTHWIND数据库的例子  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=2134)

--  作者:jgc1010
--  发布时间:2009/3/18 12:18:00
--  [求助]能否给个动态加载基于SQL SERVER 的NORTHWIND数据库的例子
不好意思,动态加载数据的问题已问得很多了,但是还是不能解决我的问题。你举的例子一是内部表,二是ACCESS外部表。而我是要动态加载SQL SERVER外部表的大量数据,因而采用你的例子中的代码还是报错,不能运行。我以SQL SERVER 自带的示例数据库NORTHWIND为例。
1)、目录树的NodeMouseDoubleClick代码:其中加颜色部分报错。
Dim Value() As String
Value = e.Node.FullPath.Split("\\")
Select Case e.Node.Level
    Case 0
        Tables("Orders").Filter = "[shipCountry] = \'" & Value(0) & "\'"
    Case 1
        Tables("Orders").Filter = "[shipCountry] = \'" & Value(0) & "\' And [customerID] = \'" & Value(1) & "\'"
    Case 2
        Tables("Orders").Filter = "[shipCountry] = \'" & Value(0) & "\' And [customerID] = \'" & Value(1) & "\' And [EmployeeID] = \'" & Value(2) & "\'"
End Select
DataTables("Orders").LoadFilter = Filter
DataTables("Orders").Load()
因此双击节点没有反应。
2)、你说要用个临时表,不知怎么创建?
能否给个基于SQL SERVER 的NORTHWIND数据库的例子。谢谢!

--  作者:狐狸爸爸
--  发布时间:2009/3/18 12:27:00
--  
呵呵,为什么不告诉我错误提示是什么呢?
有的时候,一看错误提示,就知道怎么回事的。
最好将提示错误信息的窗口,抓图发上来。

在下面的语句之前:
DataTables("Orders").LoadFilter = Filter

加一句
MessageBox.Show(Filter)

看看你生成的表达式是什么,这个地方报错,只有一个原因,条件表达式语法有误

也许你的customerID和customerID如果是整数型,那么是不能用单引号的,应该是:

Tables("Orders").Filter = "[shipCountry] = \'" & Value(0) & "\' And [customerID] = " & Value(1) & " And [EmployeeID] = " & Value(2)
[此贴子已经被作者于2009-3-18 12:28:54编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/3/18 12:42: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()
[此贴子已经被作者于2009-3-18 12:42:04编辑过]