ASP 3.0高級編程(四十五)_ASP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:基礎開發(fā)入門級:JSP與ASP的比較從微軟推出了ASP(ActiveServerPage)后,它以其強大的功能,簡單易學的特點而受到廣大WEB開發(fā)人員的喜歡。但是它卻有微軟產(chǎn)品的通病,只能在Windows平臺下使用,雖然它可以通過增加控件而在LINUX
異步執(zhí)行是指在后臺檢索數(shù)據(jù),可以在全部數(shù)據(jù)返回之前在Web頁面上使用已經(jīng)得到的數(shù)據(jù)。雖然可能需要的是全部的數(shù)據(jù),但異步工作至少可提前開始處理數(shù)據(jù)。也可讓用戶先看到某些內(nèi)容,這使得Web站點看上去響應能力更強。與TDC類似,RDS數(shù)據(jù)控件可以通過設置OBJECT標記的參數(shù)或編寫代碼來設置其屬性。下面舉一個例子:
<OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33"
ID="dsoAuthors" WIDTH="0" HEIGHT="0">
<PARAM NAME="Connect" VALUE="DSN=pubs">
<PARAM NAME="Server" VALUE="W2000">
<PARAM NAME="SQL" VALUE="SELECT * FROM Authors">
</OBJECT>
等效于:
<OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33"
ID="dsoAuthors" WIDTH="0" HEIGHT="0">
</OBJECT>
<SCRIPT LANGUAGE=JScript>
function window.onload()
{
dsoAuthors.Connect = "DSN=pubs";
dsoAuthors.Server = "W2000";
dsoAuthors.SQL = "SELECT * FROM Authors";
dsoAuthors.Refresh();
}
</SCRIPT>
這里為Connect參數(shù)使用了一個DSN,因為這非常適合該頁面,但也可以是任何有效的ADO連接字符串。
URL是ADO 2.5版提供的新特性,允許使用一個文件作為數(shù)據(jù)源。該文件可以有兩種格式:一種是用Recordset.Save方法保存的記錄集;另一種是一個ASP頁面,它創(chuàng)建一個記錄集,然后將其保存在一個流中。代碼如下:
<OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33"
ID="dsoAuthors" WIDTH="0" HEIGHT="0">
<PARAM NAME="URL" VALUE="DataPage.asp">
</OBJECT>
文件DataPage.asp包含以下VBScript代碼:
<%
Dim rsData
Set rsData = Server.CreateObject("ADODB.Recordset")
rsData.Open "SELECT * FROM Authors", strConn
rsData.Save Response, adPersistXML
rsData.Close
Set rsData = Nothing
%>
這只是創(chuàng)建了一個記錄集,然后用Save方法將記錄集以XML格式保存到Response對象中。在ADO的早期版本中,只能將記錄集存為物理文件,而ADO 2.5版本能夠直接將其存為流。這個ASP頁面的結果就是XML格式的記錄集。下一章將研究關于流和XML數(shù)據(jù)的所有主題。
使用URL屬性優(yōu)于使用Connect和SQL屬性,其最大優(yōu)點是:在用戶可以看到的網(wǎng)頁中不會出現(xiàn)連接的細節(jié)�?紤]下面的對象定義:
<OBJECT CLASSID="clsid: BD96C556-65A3-11D0-983A-00C04FC29E33"
ID="dsoAuthors" WIDTH="0" HIGHT="0">
<PARAM NAME="Connect" VALUE="DSN=pubs">
<PARAM NAME="Server" VALUE="W2000">
<PARAM NAME="SQL" VALUE="SELECT * FROM Authors">
</OBJECT>
第一行顯示了連接的細節(jié)。此時能夠看到DSN為pubs,并且我們選擇了authors表的全部列。這無疑為電腦黑客進入Web站點提供了潛在的路徑,因為他們知道了服務器的名稱以及數(shù)據(jù)庫的一些細節(jié)�,F(xiàn)在,考慮一下使用URL屬性的情況:
<OBJECT CLASSID="clsid: BD96C556-65A3-11D0-983A-00C04FC29E33"
ID="dsoAuthors" WIDTH="0" HIGHT="0">
<PARAM NAME="URL" VALUE="DataPage.asp">
</OBJECT>
現(xiàn)在,用戶所見到的是一個ASP網(wǎng)頁的URL地址,沒有任何有關服務器和數(shù)據(jù)庫的詳細信息。
使用CONNECT/SQL屬性的方法,用戶可以清楚地見到連接的細節(jié),而使用URL所見的卻是數(shù)據(jù)。從這一點上來說,消除了一個安全問題。
在腳本中設置RDS數(shù)據(jù)控件的屬性時,必須使用Refesh方法,如下所示:
<SCRIPT LANGUAGE=JScript>
function window.onload()
{
dsoAuthors.URL="DataPage.asp";
dosAuthors.Refresh();
}
</SCRIPT>
這將強迫數(shù)據(jù)控件使用新的屬性值,并重新從數(shù)據(jù)提供者那里檢索數(shù)據(jù)。除了Refresh方法外,RDS數(shù)據(jù)控件還有許多其他方法,如表10-3所示:
表10-3 RDS數(shù)據(jù)控件的方法及說明
方 法
說 明
Cancel
取消任何異步操作
CancelUpdate
取消對數(shù)據(jù)的任何修改
CreateRecordset
創(chuàng)建一個空的記錄集,這允許在本地創(chuàng)建新的數(shù)據(jù)集
MoveFirst
移到第一條記錄
MoveLast
移到最后一條記錄
MoveNext
移到下一條記錄
MovePrevious
移到上一條記錄
Refresh
更新來自數(shù)據(jù)存儲的數(shù)據(jù)
Reset
應用過濾或排序條件
SubmitChanges
將所有未解決的修改送回數(shù)據(jù)存儲
在本章后面,會見到大多數(shù)方法的使用情況。
3. MSHTML數(shù)據(jù)控件
微軟HTML(MSHTML)數(shù)據(jù)控件比較特別的地方在于:MSHTML是IE的一個組成部分,并能提供一個基于HTML文檔的數(shù)據(jù)源。雖然本質上MSHTML并不是為數(shù)據(jù)存儲使用的一種格式,但如果確實有許多包含某些數(shù)據(jù)格式的HTML網(wǎng)頁,MSHTML可能會變得較為有用。
分享:ASP常見數(shù)學函數(shù) Abs Atn Cos 等詳解【名稱】 Abs 【類別】 數(shù)學函數(shù) 【原形】 Abs(number) 【參數(shù)】 必選的。Number參數(shù)是一個任何有效的數(shù)值型表達式 【返回值】 同number的類型 【異常/錯誤】 無 【描
相關ASP教程:
- 相關鏈接:
- 教程說明:
ASP教程-ASP 3.0高級編程(四十五)
。