|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP.NET和ASP的比较,技术上比较已经没什么可说的了.新一代在大部分程度来说当然是比旧一代好了. 关键看你对所做软件的理解了.因人而定.会写的话也可能比ASP.NET写得更有效率和更方便重用 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还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。 |
|