ASP3.0给我们带来的新技术之一---Data Shaping技术

lmbnm1210

lmbnm1210

2016-01-29 17:53

ASP3.0给我们带来的新技术之一---Data Shaping技术,ASP3.0给我们带来的新技术之一---Data Shaping技术
  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查询出来的相比较一下。
附注:
展开更多 50%)
分享

猜你喜欢

ASP3.0给我们带来的新技术之一---Data Shaping技术

ASP
ASP3.0给我们带来的新技术之一---Data Shaping技术

AJAX技术vs传统的ASP无刷新技术

Web开发
AJAX技术vs传统的ASP无刷新技术

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

AJAX技术 vs 传统的ASP无刷新技术

电脑网络
AJAX技术 vs 传统的ASP无刷新技术

AJAX和传统的ASP无刷新技术比较

Web开发
AJAX和传统的ASP无刷新技术比较

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

必看!电脑给我们带来的伤害

电脑族 健康 健康常识
必看!电脑给我们带来的伤害

WAP中的ASP技术(一)

ASP
WAP中的ASP技术(一)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Linux指令篇:文档编辑--fold

Linux指令篇:文档编辑--fold

Linux指令篇:文档编辑--sed

Linux指令篇:文档编辑--sed
下拉加载更多内容 ↓