分级Recordset的实现问题

kuankuan 2005-03-31 10:26:40
VB中有这样一个例子:DataRept(PRJNWIND.VPP)
该例子用数据环境实现在类似下面的数据结构
客户记录集(父)
CustID Name Address Order
1 John 10932 Bigg Rd. <RecordSet1>
2 Tom 932 Bigg Rd. <RecordSet2>

订单子集RecordSet1
OrderID CustID OrderDate
1102 1 11/22/99
1103 1 12/22/99

订单子集RecordSet2
OrderID CustID OrderDate
1202 2 11/22/99
1203 2 12/22/99

请问,如何在不使用数据环境下在程序中用ADO实现这样的数据结构。
特别是ADO的connection如何设置。
...全文
183 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kuankuan 2005-04-01
  • 打赏
  • 举报
回复
搞清楚了.
cn.Provider="MSDataShap"这里没有问题,必须这样写。
cn.open 后面Data Provider=Microsoft.Jet.OLEDB.4.0就ok了。看到VB的帮助里有的写Shape Provider=...好像这里不行。
daisy8675 2005-04-01
  • 打赏
  • 举报
回复
转进非技术,结为水分,标记。
kuankuan 2005-03-31
  • 打赏
  • 举报
回复
VB帮助中的内容:
以下范例说明了访问分级 Recordset 中的行的所需步骤:
authors 和 titleauthors 表中的 Recordset 对象通过 author ID 进行关联。

外循环显示每个作者的姓名、州/省别和身份。
每行所追加的 Recordset 都从 Fields 集合进行检索并分配给 rsChapter。
内循环显示追加的 Recordset 中每行的四个字段。

范例
Sub datashape()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rsChapter As Variant

cnn.Provider = "MSDataShape"
cnn.Open "Data Provider=MSDASQL;" & _
"DSN=vfox;uid=sa;pwd=vfox;database=pubs”
'步骤 1
rst.StayInSync = FALSE
rst.Open "SHAPE {select * from authors}
APPEND ({select * from titleauthor} AS chapter
RELATE au_id TO au_id)",
cnn
'步骤 2
While Not rst.EOF
Debug.Print rst("au_fname"), rst("au_lname"),
rst("state"), rst("au_id")
'步骤 3
Set rsChapter = rst("chapter")
'步骤 4
While Not rsChapter.EOF
Debug.Print rsChapter(0), rsChapter(1),
rsChapter(2), rsChapter(3)
rsChapter.MoveNext
Wend
rst.MoveNext
Wend
End Sub

但我在使用中的CONNECTION设置总是不正确,哪位高人给指点12
GGL123 2005-03-31
  • 打赏
  • 举报
回复
up

742

社区成员

发帖
与我相关
我的任务
社区描述
VB 版八卦、闲侃,联络感情地盘,禁广告帖、作业帖
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧