ASP3.0给我们带来的新技术之一---Data nbsp;Shaping技术
来源:高州市图书馆 发布日期:2024-06-19
数据掌控者 我爱学习 2024-06-13 8 0
[导读]Data shaping(又可以被称为分层记录集)如果你对ACCESS非常熟悉的话,它就类似与其中的子表。在你使用VB进行数据库开发的时候是你的最佳选择。这种技术有很强大的运用场合,特别适应与OLTP等企业级运用程序的开发。...
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 rsPublishersDim rsTitlesDim strShapeConnDim strShapeDim strConnstrConn = "Provider=SQLOLEDB;Data Source=Kanga;" &_" Initial Catalog=pubs;User Id=sa;Passwprd="Set rsPublishers = Server.CreateObject("ADODB.RecordSet")strShapeConn = "Provider=MSDataShape; Data " & strConnstrShape = "SHAPE {SELECT * FROM Publishers}" & _" APPEND ({SELECT * FROM Titles}" & _" RELATE Pub_ID TO Pub_ID) AS rsTitles"rsPublishers.Open strShape,strShapeConnResponse.Write "
- "While Not rsPublishers.EOFResponse.Write "
- " & rsPublishers("Pub_Name")Response.Write "
- "'下面开始显示子表的数据Set rsTitles = rsPublsihers("rsTitles").ValueWhile Not rsTitles.EOFResponse.Write "
- " & rsTitles("title")rsTitles.MoveNextWendResponse.Write "
----------------------------------------------------编者注:此文发表于2000年,文中的代码未测试成功。----------------------------------------------------
TA的新帖
开弓没有回头箭是指什么生肖,精选答案落实2024-06-161986年虎2024年运势 1986年虎2024年运势怎么样2024-06-16
塞翁失马打一生肖动物,词语解答解析落实2024-06-16海通期货6月7日原油日报2024-06-16属牛和属猴合不合2024-06-16
电视剧《玫瑰的故事》热播:剧中彭冠英下线林更新上线!2024-06-15
热门文章1986年2024年的虎是百年难遇 1986年属虎2024年运势及运程2024-06-131977属蛇在2024以后十年大运 77年属蛇人2024年运势及运程2024-06-13
顺手牵羊二五来,有金有土能发家打一个生肖动物,资料解释落实2024-06-13
顺手牵羊二五来,有金有土能发家打一个生肖动物,资料解释落实2024-06-131987年2024年的兔是百年难遇 1987年兔2024年运势2024-06-152002属马在2024以后十年大运 2002属马的2024年运势如何2024-06-13