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