一、數據庫遠程管理技術
基於互聯網的廣域網現代應用中的一個重要環節是數據庫遠程監控。首先簡單回顧一下互聯網上的數據庫遠程管理技術的發展過程和方式:
三、XMLHTTP的使用
顧名思義,XMLHTTP是個傳送XML格式數據的超文本傳輸協議。
實際上,XMLHTTP的數據傳輸過程更為靈活一些:
它上傳的指令可以是XML格式數據,也可以是字符串,流,或者一個無符號整數數組。還可以是URL的參數。
它下達的結果可以是XML格式數據,也可以是字符串,流,或者一個無符號整數數組。
詳情可參閱文末鏈接。
客戶端調用XMLHTTP的過程很簡單,只有5個步驟:
1、創建XMLHTTP對象
2、打開與服務端的連接,同時定義指令發送方式,服務網頁(URL)和請求權限等。
客戶端通過Open命令打開與服務端的服務網頁的連接。與普通HTTP指令傳送一樣,可以用"GET"方法或"POST"方法指向服務端的服務網頁。
3、發送指令。
4、等待並接收服務端返回的處理結果。
5、釋放XMLHTTP對象
XMLHTTP方法
Open bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassWord
bstrMethod:數據傳送方式,即GET或POST。
bstrUrl:服務網頁的URL。
varAsync:是否同步執行。缺省為True,即同步執行,但只能在DOM中實施同步執行。應用中一般將其置為False,即異步執行。
bstrUser:用戶名,可省略。
bstrPassWord:用戶口令,可省略。
Send varBody
varBody:指令集。可以是XML格式數據,也可以是字符串,流,或者一個無符號整數數組。也可以省略,讓指令通過Open方法的URL參數代入。
setRequestHeader bstrHeader, bstrValue
bstrHeader:HTTP 頭(header)
bstrValue:HTTP 頭(header)的值
如果Open方法定義為POST,可以定義表單方式上傳XMLhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
XMLHTTP屬性
onreadystatechange:在同步執行方式下獲得返回結果的事件句柄。只能在DOM中調用。
responseBody:結果返回為無符號整數數組。
responseStream:結果返回為IStream流。
responseText :結果返回為字符串。
responseXML:結果返回為XML格式數據。
下面是本文附件源程序中的一個應用示例:
Function GetResult(urlStr)
Dim XMLHttp
Dim retStr
Set xmlHttp = CreateObject("Msxml2.XMLHTTP") '創建對象
On Error Resume Next '出錯處理
XMLHttp.Open "POST", urlStr, False '用POST方式打開連接,異步執行。
XMLHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" '上傳表單
XMLHttp.Send '發送指令
If Err.Number = 0 Then '如果連接正確
retStr = XMLHttp.responseText '等待並獲得服務端返回的結果字符串
Else
retStr = "Url not found" '否則返回出錯信息
End If
Set XMLHttp = nothing '釋放對象
GetResult = retStr '返回結果
End Function
GetResult()函數帶入一個服務網頁的URL參數,把上傳的指令安放在URL後面的參數上,如:
urlStr = "server.ASP?cmd=" & cmd & "&db=" & db & "table=" & table
cmd:執行方式,例如查詢,修改,刪除等等。
db:服務端數據庫名
table:服務端表名
然後提交指令,等待並接收返回的處理結果。結果以字符串方式返回。最後由函數調用者處理並顯示結果。