编程教程
你的位置: 中国个人站长站 -- 网络编程 -- ASP教程 -- 教程正文 第10章 ASP与客户端数据
推荐位

第10章 ASP与客户端数据

中国个人站长站 ASP教程 点击数: 更新时间:2007-8-27 8:09:59
lds集合,可以很容易看到父记录集的字段的情况。对于上面的SHAPE命令,得到图9-9所示的结果:

图9-9 执行SHAPE命令后的结果
访问子记录集
现在,我们有了一个子记录集,它是另一个记录集的一个字段,那么如何访问这个子记录集呢?很简单,可以使用字段的Value属性来建立另一个记录集。
Set rsTitles = rsPublishers("rsTitles").Value
可以遍历父记录集,对应于每个父记录可以得到一个子记录集。下面的代码能实现这一点。通常以包含文件、变量声明开始。
<!-- #INCLUDE FILE="../Include/Connection.asp" -->
<%
Dim rsPublishers
Dim fldF
Dim strShapeConn
Dim strShape

Set rsPublishers = Server.CreateObject ("ADODB.Recordset")
现在创建连接字符串。
' Create the provider command
strShapeConn = "Provider=MSDataShape; Data " & strConn
接下来,输入实际的整形命令。这将创建一个包含出版社的父记录集和一个含有书名的子记录集。
' now the shape command
strShape = "SHAPE {SELECT * FROM Publishers}" & _
" APPEND ({SELECT * FROM Titles}" & _
" RELATE Pub_ID TO Pub_ID) AS rsTitles"
然后正常打开记录集。
' Open the shaped recordset
rsPublishers.Open strShape, strShapeConn
像正常的记录集一样,能够遍历记录。
' loop through the publishers
Response.Write "<UL>"
While Not rsPublishers.EOF
Response.Write "<LI>" & rsPublishers("pub_name")
为了访问子记录集,设置一个变量来指向那个包含子记录集的字段的Value值。本例中该变量为rsTitles。
' now the titles
Response.Write "<UL>"
Set rsTitles = rsPublishers("rsTitles").Value
变量rsTitles在这里是个记录集,其作用同普通的记录集相同。因此,可以遍历该记录集的值,该值只包含与父出版者匹配的书名。
' loop through the titles
While Not rsTitles.EOF
Response.Write "<LI>" & rsTitles("title")
rsTitles.MoveNext
Wend
Response.Write "</UL>"

' move to the next publisher
rsPublishers.MoveNext
Wend
Response.Write "</UL>"

rsPublishers.Close
Set rsPublishers = Nothing
Set rsTitles = Nothing
%>
于是得到一份令人满意的出版社与书名的列表,如图9-10所示:

图9-10 整形后的书名列表
用一些DHTML代码和一些额外的标记,就能轻松地隐藏起书名,并且只有选择出版社时才显示相应的书名。
2. 多个子记录集
如果对于每个记录集仅能有一个子记录集,那么数据整形就不够完善。但数据整形是极其灵活的。例如可以使用下面的程序来为出版社引用标题和雇员。
SHAPE {select * from publishers}
APPEND ({select * from titles}
RELATE pub_id TO pub_id) AS rsTitles,
({select * from employee}
RELATE pub_id To pub_id) AS rsEmployees
只需在APPEND子句后加上其他子记录集,就能得到图9-11的结果:

图9-11 多个子记录集的结果
访问子记录集的方法并没有改变,仍旧可以用列的Value属性访问子记录集。只是此时有两个子记录集,因此需要使用两个变量。
Set rsTitles = rsPublishers("rsTitles").Value

Set rsEmployees = rsPublishers("rsEmployees").Value
3. 孙代记录集
在子记录集自身还包含子记录集的情况下,可能会出现孙代记录集。例如:
SHAPE {SELECT * FROM Publishers}
APPEND (( SHAPE {SELECT * FROM Titles}
APPEND ({SELECT * FROM Sales}
RELATE Title_ID TO Title_ID) AS rsSales)
RELATE Pub_ID TO Pub_ID) AS rsTitles
在第一个AP

上一页  [1] [2] [3] [4] 下一页

教程录入:swh    责任编辑:swh 
个人站长站与你风雨同舟!
本站所提供的资源均来源于互联网,如有侵权行为,请与本站管理员联系,我们会第一时间删除!
·如果您发现《第10章 ASP与客户端数据》文章有错误,也请通知我们修改!
联系邮箱chinageren#126.com,谢谢支持!
站内搜索:
广告服务 | 友情链接 | 联系我们 | 免责声明 | 用户留言 | 网站导航
版权所有:中国个人站长站 2007-2008 未经授权禁止复制或建立镜像 客服QQ号:112731235
copyright © 2007-2008 www.ChinaGeRen.com online services. all rights reserved. 苏ICP备05000059号