xmlHTTP技术资料

来源:中国软件 时间:2008-01-05 13:39:00 

一、数据库远程管理技术

对于中小型应用,比如一个网站的建设和维护,这种大型应用平台就显得有些尾大不掉,开销也过于庞大。

曾经在互联网技术和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:服务端表名

然后提交指令,等待并接收返回的处理结果。结果以字符串方式返回。

最后由函数调用者处理并显示结果。

标签:xmlHTTP,ADO,MSXML
0
投稿

猜你喜欢

  • delete from online where datediff

    2009-06-07 18:46:00
  • 网页设计的12种颜色

    2011-05-21 08:40:00
  • 无图片CSS圆角的五个实例

    2008-08-02 12:18:00
  • 20年来我得到的20条编程经验

    2010-05-26 13:44:00
  • SQL Server技巧之快速得到表的记录总数

    2011-01-04 14:36:00
  • 为SWFUpload增加ASP版本的上传处理程序

    2011-04-28 08:01:00
  • 几个好用的Asp自定义函数

    2007-09-26 14:28:00
  • 教你怎么使用sql游标实例分享

    2012-07-11 16:14:57
  • asp,php,.net使用301重定向方法

    2007-09-26 14:05:00
  • JavaScript动态调整图片尺寸

    2009-11-23 12:20:00
  • 详细讲解如何为MySQL数据库添加新函数

    2008-11-27 17:06:00
  • Javascript的错还是浏览器的问题——2009年为何显示为109年

    2009-01-11 18:19:00
  • 用ASP动态生成JS表单验证代码

    2007-09-30 20:38:00
  • 教你在SQL Server 2000数据库中使用分区

    2008-11-25 11:55:00
  • 如何利用ASP实现邮箱访问

    2007-09-29 12:27:00
  • 网页制作,改变你的思维方式

    2007-09-29 13:12:00
  • DOM_window对象属性之--clipboardData对象操作代码

    2011-02-05 10:49:00
  • 在网页中实现细线边框的两种方法

    2011-06-14 09:47:26
  • 阿里妈妈广告牌制作规范

    2009-07-15 13:23:00
  • Oracle Index 的三个问题

    2010-07-26 12:53:00
  • asp之家 网络编程 m.aspxhome.com