----------------------------------------------------------
一、数据库长途治理手艺
基于互联网的广域网当代应用中的一个重要环节是数据库长途监控。起首简朴回忆一下互联网上的数据库长途治理手艺的发展历程和体式格局:
初期经由历程编写CGI-BIN程序模块举行数据库长途治理。但CGI-BIN的运转速度慢,保护很不轻易,如今已基础被弃用。
这几年应用组件对象模子(Component Object Model, COM)的应用异常多,效果也很好。但假如应用的是第三方效劳器(笔者的网站就是建立在第三方的虚拟主机上),效劳器方每每由于保密或别的贸易缘由不允许用户注册本身的组件。
最近几年因由微软公司推出的.NET平台和SUN公司的J2EE平台都是异常高级的数据库长途治理与效劳平台。都能供应优良的多层(n-Tier)应用效劳。
个中,.NET的简朴对象接见协定(Simple Object Access Protocol, SOAP)应用超文本传输协定(Hypertext Transfer Protocol, HTTP)和扩大标记言语(Extensible Markup Language, XML)手艺完成跨体系(比方Windows - Linux)的通信效劳体式格局已广为开辟商吸收和应用。很多大型应用,比方企业资本设计(Enterprise resource planning, ERP)等都建立在如许的大型平台之上。
但关于中小型应用,比方一个网站的建立和保护,这类大型应用平台就显得有些尾大不掉,开支也过于巨大。
曾经在互联网手艺和Java手艺方面一度落伍的微软公司在XML应用开辟则走在了前头。她的XML解析器(MSXML)中的XMLHTTP协定是一个异常轻易有用的客户/效劳通信管道。综合应用XMLHTTP以及ActiveX数据对象(ActiveX Data Objects, ADO/ADOX)能够简朴轻易地完成数据库长途治理。
本文引见怎样综合应用XMLHTTP和ADO/ADOX举行长途数据库治理。
二、数据库长途治理体系
数据库长途治理的使命流程是:
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)的值
假如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:效劳端表名
然后提交指令,守候并吸收返回的处置惩罚效果。效果以字符串体式格局返回。
最后由函数挪用者处置惩罚并显现效果。
以上就是XML相干手艺资料总结的细致内容,更多请关注ki4网别的相干文章!