上一篇:ASP环境下邮件列表功能的实现 (一)(推荐) >>
ASP3.0给我们带来的新技术之一---Data Shaping技术
如果你对access非常熟悉的话,它就类似与其中的子表。在你使用vb
进行数据库开发的时候是你的最佳选择。
这种技术有很强大的运用场合,特别适应与oltp等企业级运用程序的开发。
它允许你使用一种树状结构来表现你的数据,所以它特别适合与
来给用户显示有关联的数据表格形式。
简单的来说,就是它有一个母表(recordset)然后
该母表中的某个字段中可以再容纳一个子表(recordset)
当然一般来说,该子表中的某一个字段(例如主索引)和母表中的该字段
是关联的(relationship),这样当你执行一个查询后,结果将返回一个
多记录集.这种data shaping技术给我们带来的好处如下:
1。性能上的提高,只要合理运用该技术,就能够大大提高
asp连接数据库程序的性能.你也不必再为同时显示复杂的
相互关联的数据表单而发愁了。
2。编程上的大大简化:由于它引入的分层记录集结构,
使用树状视图来显示记录,你会发现你使用data shaping技术显示出来
的数据非常的美观。
还是以前的方法,废话少说,让代码来发言把:
本例子将使用sql server中带的例子数据库pubs
如何使用data shaping编程:
准备工作如下:
1。你应该安装有msdatashape oledb provider(在mdac2。0版本以上均带该数据源提供者)
2。你应该会编写shape语言,注意这不是一般的sql语句,具体的语法你可以查看
access中的帮助文件。
几个必须注意的地方
(i)建立一个msdatashape oledb provider的connectionstring如下(呵呵,看来我的那篇
数据库连接手册又可以加点新东东了):
这是一个很普通的连接字符串,呵呵,其中的kanga其实就是sql server在微软内部的代号
strconn = "provider=sqloledb;data source=kanga;" &_
" initial catalog=pubs;user id=sa;passwprd="
好,现在加入msdatashape oledb provider部分
strconn = "provider=msdatashape; data " & strconn
好了,现在你已经设置数据的提供者为msdatashape,
注意哦其中的数据源提供者是你真正的dsn部分。
(ii)shape语言
shape语法你可以在ado的帮助中可以找到详细的描述,我也不罗嗦
一般最常用的语句如下:
shape {parent command} [as parent alias]
append ({child command} [as child alias]
relate parent_column to child_column) [as parent_column_name]
一个最简单的例子如下:
shape {select * from publishers}
append ({select * from titles}
relate pub_id to pub_id) as rstitles
上面的语句将titles表作为publishers的一个子表关联在一起,那么怎么访问它
的数据了,语法如下:
set rstitles = rspublishers("rstitles").value
现在的rstitles就是一个记录集,它就是子表中的数据
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
%>
大家可以运行以上的代码然后观看它的结果,再和平常的
使用sql查询出来的相比较一下。
附注:这个时候只要再附加一点dhtml的语句,就能够做成
树状结构的收起和展开效果(就是类似与资源管理器左边的那个效果)
呵呵,这方面掉掉可是非常在行的把。
呵呵,上面介绍的只是很简单的一个子表,下面简单介绍一下
多子表的情况。
如果你的数据表中只有一个子表的话,其实使用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技术你会发现更加的方便。这也是为什么
我在开始的时候说的该技术特别适用与oltp和企业级复杂的数据库开发的缘故了。
下面是一个两层子表的例子
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中使用sql语句,还可以使用存储过程的。
()
下一篇:使用ASP加密算法加密你的数据(二) >>
相关文章:
- · 如何使用ASP在自己的网站建立投票机制(二)
- · 如何使用ASP在自己的网站建立投票机制(一)
- · 优化MICROSOFT ACCESS提高速度
- · 网络开发之编程技巧之一(有效验证用户的登录)
- · IIS 5.0新功能
- · WINDOWS 2000搭載ASP3.0和IIS5.0
- · 如何使用 Microsoft Access 和 Active Server Pages 加密你的页面
- · IIS5 + ADO 2.5新先睹为快技术(二)
- · IIS5 + ADO 2.5新先睹为快技术(一)
- · ASP 3.0 新特色先睹为快(二)
- · ASP 3.0 新特色先睹为快(一)
- · 如何用ASP编写网站统计系统四
- · 如何用ASP编写网站统计系统三
- · 如何用ASP编写网站统计系统二
- · 如何用ASP编写网站统计系统一
- · 构建你的网站新闻自动发布系统之四
- · 构建你的网站新闻自动发布系统之三
- · 构建你的网站新闻自动发布系统之二
- · 构建你的网站新闻自动发布系统之一
- · ASP的Internet/Intranet编程常见问题
- · 一个简单聊天室的建立.(供学习参考)
- · 用ASP实现一个真正的注册页面
- · 在ASP中常见的错误80004005信息和解决办法
- · ADO存取数据时如何实现留言记录的分页显示
- · 用ASP实现网页BBS
- · 网页在线人数统计的做法
- · 聊天室实现私聊(四)
- · 聊天室实现私聊(三)
- · 聊天室实现私聊(二)
- · 聊天室实现私聊(一)
- · 用ASP实现网页保密的两种方法
- · 利用ASP规划聊天室
- · 用ASP建立站内搜索
- · ASP主件中的安全问题
- · 善用 SELECT INTO 功能
- · MySQL安全性指南(3
- · MySQL安全性指南
- · MySQL安全性指南 (1)
