网络编程
位置:首页>> 网络编程>> Asp编程>> asp如何做一个树状展开视图来显示自己的记录结构?

asp如何做一个树状展开视图来显示自己的记录结构?

  发布时间:2010-07-12 18:56:00 

标签:视图,结构,树,asp

如何做一个树状展开视图来显示自己的记录结构?

在SQL中,如何做一个可收起和展开树状结构图?就是资源管理器左栏的那种效果。

这要用到Data shaping(又可以被称为分层记录集)。Data shaping允许我们使用一种树状视图来显示自己的记录结构,及给用户显示有关联的数据表格形式。这极大地提高了ASP连接数据库程序的能力,是使用VB进行OLTP等企业级运用程序开发的最佳选择。

它有一个母表(Recordset),该母表中的某个字段中还可以再容纳一个子表(Recordset),一般地,该子表中的某一个字段(例如主索引)和母表中的该字段是相关联的(relationship)。这便于在执行一个查询后,将返回一个多记录集。

首先,我们应安装MSDataShape OLEDB Provider,并会使用Shape语言(具体的语法可参阅Access的帮助文件。来看一个只有一个子表文件代码:
aspshape.asp

<%
Dim rsPublishers
Dim rsTitles
Dim strShapeConn
Dim strShape
Dim strConn
strConn = "Provider=SQLOLEDB;Data Source=Kanga;" &_
" Initial Catalog=pubs;User Id=sa;Passwprd="
Set rsPublishers = Server.CreateObject("ADODB.RecordSet")
strShapeConn = "Provider=MSDataShape; Data " & strConn
strShape = "SHAPE {SELECT * FROM Publishers}" & _
" APPEND ({SELECT * FROM Titles}" & _
" RELATE Pub_ID TO Pub_ID) AS rsTitles"

rsPublishers.Open strShape,strShapeConn
Response.Write "<UL>"
While Not rsPublishers.EOF
Response.Write "<LI>" & rsPublishers("Pub_Name")
Response.Write "<UL>"
' 下面开始显示子表的数据
Set rsTitles = rsPublsihers("rsTitles").Value
While Not rsTitles.EOF
Response.Write "<LI>" & rsTitles("title")
rsTitles.MoveNext
Wend
Response.Write "</UL>"
rsPublishers.MoveNext
Wend
Response.Write "</UL>"
rsPublishers.Close
Set rsPublishers = Nothing
Set rsTitles = Nothing
%>

如果数据表里只有一个子表,尚不能充分显示Data Shaping技术的优势(SQL就能完成嘛),但如果母表中同时有多个字段,并和其它的表有关联的话,我们就可以看到Data Shaping的长处了。先举一个含有两个子表的例子:

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

再看看Data Shaping如何处理数据表中的子表还套有子表(层状结构的记录集)时的复杂情况,下面是一个两层子表的例子:

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

Data Shaping让一切变得简单,现在我们只要再添加几个DHTML的语句就能够做成树状结构的收起和展开效果了。

0
投稿

猜你喜欢

  • IE6下浮出层常会需要增加一个iframe来解决浮出层被Obj穿透的问题,这个是目前最有效的方案,不过这个方案本身有个缺陷,就是iframe
  • 在开始聊我在阿里四个月的网页推广设计之前,我想先来说说我对平面设计和网页设计的认识。它们之间的交集。它们都是集艺术创作、电脑技术和数字技术于
  • 首先,把这个“功能”包含到页首:<!--#include virtual="/readini/inifile.in
  • [前言:]ASP.NET是微软提供的最新的开发基于Web的应用程序的技术。它提供了大量的比传统ASP脚本技术的好处,包括:1)通过把UI表现
  • 人常常感受到色彩对自己心理的影响,这些影响总是在不知不觉中发挥作用,左右我们的情绪。色彩的心理效应发生在不同层次中。有些属直接的刺激,有些要
  • 浏览器的出现互联网的出现是人类信息交流方式的一次划时代的革命,在这场革命中有两个技术对互联网的发展起到了决定性的作用:一个技术带来的人类信息
  • 1.指向“开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外
  • 超级简单实现iframe框架滚动控制,前提要会简单修改原代码。step1:插入iframe标签在你想要的位置。<iframe 
  • BLOG阅读:http://www.planabc.net/article.asp?id=118在使用CSS实现表现的时候,会经常接触到di
  • 更换域名,估计是很多站长都很头疼的事情。通常大家的做法就是把老的域名通过IIS设置做301跳转到新的域名。对于只有一个虚拟空间的站长来说,换
  • 突然想到写这个话题,是基于最近在设计产品界面时,年糕一直在给我们灌输设计的品牌概念以及文化内涵要求而产生的,因之前在界面设计中也遇到一些困惑
  • 在分析sIFR之前,先来快速的了解一下sIFR是什么,以及它是如何工作的。sIFR表示scalable Inman Flash Replac
  • 前边看到有人发了个层打开效果,总感觉不是很理想 个人认为:-),如果那个层放到固定的容器里面估计就会出现问题的。今天自己来写个,可以支持 在
  • 用语言实现 好处: 1、可以减少对数据库的访问。 2、可移植性好。 坏处: 1、操作起来考虑的东西较多,修改一处就要修改别一处。也就是说是相
  • 方法1: X:\oracle\ora81\bin\wrap iname=XXX oname=XXX 方法2:9i在win2000下使用wra
  • 1. 用Dreamweaver 4.0轻松设计会自动弹性调整的网页 首先需要保证的是你的页面内容采用了表格的格式,然后打开你要编辑的页面,按
  • SQL语句更改表所有者SQL语句更改表所有者单个修改所有者sql语句如下:查询分析器输入:EXEC sp_changeobject
  • CSS Sprites技术早在2005年 CSS Zengarden 的园主 Dave Shea就在ALA发表对该技术的详细阐述。原先只在C
  • 有过相关经验的朋友都知道,Jscript的效率毕竟有限,在数组中查找数据时如果用常规的算法来做执行起来会很慢。例如在一个含500个字符串的d
  • 先来看看什么是书签查找: 当优化器所选择的非聚簇索引只包含查询请求的一部分字段时,就需要一个查找(lookup)来检索其他字段来满足请求。对
手机版 网络编程 asp之家 www.aspxhome.com