一、資料庫遠端管理技術
基於網際網路的廣域網現代應用中的乙個重要環節是資料庫遠端監控。首先簡單回顧一下網際網路上的資料庫遠端管理技術的發展過程和方式:(推薦文章:ajax專題)
早期通過編寫cgi-bin程式模組進行資料庫遠端管理。但cgi-bin的執行速度慢,維護很不方便,現在已經基本被棄用。
這幾年使用元件物件模型(component object model, com)的應用非常多,效果也很好。但如果使用的是第三方伺服器(筆者的**就是建立在第三方的虛擬主機上),伺服器方往往因為保密或其它商業原因不允許使用者註冊自己的元件。
近年來由微軟公司推出的.net平台和sun公司的j2ee平台都是非常高檔的資料庫遠端管理與服務平台。都能提供優質的多層(n-tier)應用服務。 其中,.net的簡單物件訪問協議(****** object access protocol, soap)使用超文字傳輸協議(hypertext transfer protocol, http)和擴充套件標記語言(extensible markup language, xml)技術實現跨系統(例如windows - linux)的通訊服務方式已經廣為開發商接受和使用。許多大型應用,例如企業資源計畫(enterprise resource planning, erp)等都建立在這樣的大型平台之上。 但對於中小型應用,比如乙個**的建設和維護,這種大型應用平台就顯得有些尾大不掉,開銷也過於龐大。
二、資料庫遠端管理體系
資料庫遠端管理的任務流程是:
1、客戶端向服務端發出資料庫結構和資料的查詢或修改指令。
2、服務端接受並執行有關指令並向客戶端返回結果。
3、客戶端接受並顯示服務端返回的指令執行結果。
實現資料庫遠端管理的二個主要關鍵環節是:
1、客戶端與服務端之間的指令上傳和結果下傳的資料通道,由xmlhttp協議實現。
2、服務端前沿與資料庫之間的指令傳送和結果返回,由起著中間層作用的ado/adox介面完成。
三、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)的值
xmlhttp屬性
onreadystatechange:在同步執行方式下獲得返回結果的事件控制代碼。只能在dom中呼叫。
responsebody:結果返回為無符號整數陣列。
responsestream:結果返回為istream流。
responsetext :結果返回為字串。
respon***ml:結果返回為xml格式資料。
下面是本文附件源程式中的乙個應用示例:
set xmlhttp = createobject("msxml2.xmlhttp") '建立物件
on error resume next '出錯處理
xmlhttp.open "post", urlstr, false '用post方式開啟連線,非同步執行。
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:服務端表名
然後提交指令,等待並接收返回的處理結果。結果以字串方式返回。最後由函式呼叫者處理並顯示結果。
Ajax核心 XMLHTTP元件相關技術資料
一 資料庫遠端管理技術 基於網際網路的廣域網現代應用中的乙個重要環節是資料庫遠端監控。首先簡單回顧一下網際網路上的資料庫遠端管理技術的發展過程和方式 推薦文章 ajax專題 早期通過編寫cgi bin程式模組進行資料庫遠端管理。但cgi bin的執行速度慢,維護很不方便,現在已經基本被棄用。這幾年使...
Ajax核心 XMLHTTP元件相關技術資料
一 資料庫遠端管理技術 基於網際網路的廣域網現代應用中的乙個重要環節是資料庫遠端監控。首先簡單回顧一下網際網路上的資料庫遠端管理技術的發展過程和方式 推薦文章 ajax 專題 早期通過編寫cgi bin程式模組進行資料庫遠端管理。但cgi bin的執行速度慢,維護很不方便,現在已經基本被棄用。這幾年...
Ajax核心 XMLHTTP元件相關技術資料
一 資料庫遠端管理技術 基於網際網路的廣域網現代應用中的乙個重要環節是資料庫遠端監控。首先簡單回顧一下網際網路上的資料庫遠端管理技術的發展過程和方式 推薦文章 ajax專題 早期通過編寫cgi bin程式模組進行資料庫遠端管理。但cgi bin的執行速度慢,維護很不方便,現在已經基本被棄用。這幾年使...