六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

ASP3.0給我們帶來的新技術之一---Data Shaping技術

[摘要]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 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語句,還可以使用存儲過程的。


主站蜘蛛池模板: 日韩一区二区视频在线观看 | 天天天狠天天透天天制色 | 五月天婷婷在线视频国产在线 | 亚洲一区在线视频 | 天天干在线影院 | 日本三级2018亚洲视频 | 在线观看h视频播放高清 | 中文字幕资源在线 | 日本午夜视频 | 日韩欧美在线不卡 | 欧美一卡二卡三卡四卡 | 中文字幕亚洲国产 | 五月婷婷欧美 | 中文字幕色在线 | 我想看一级播放片一级的 | 青青青手机在线观看 | 日本成人一区二区三区 | 一级毛片免费的 | 亚洲一区 在线播放 | 亚洲国产精品免费在线观看 | 日本高清色视频www 日本高清色本在线www游戏 | 婷婷亚洲五月 | 天天操天天弄 | 亚欧洲精品在线视频免费观看 | 青春草视频免费观看 | 人人网碰人人网超 | 亚洲天堂网视频 | 欧美一级久久 | 日韩网站免费 | 天天操天天艹 | 午夜免费观看_视频在线观看 | 亚洲人色| 性刺激免费视频观看在线观看 | 四虎永久在线精品国产免费 | 日本五级床片午夜视频 | 色噜噜色偷偷男人的天堂 | 中文字幕在线观看免费视频 | 五月丁香啪啪 | 日韩激情影院 | 西欧毛片| 五月激情综合 |