推薦:基礎開發入門級: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的類型【異常/錯誤】無【描