xmlHTTP技术资料

一、数据库远程管理技术

基于互联网的广域网现代应用中的一个重要环节是数据库远程监控。首先简单回顾一下互联网上的数据库远程管理技术的发展过程和方式:

早期通过编写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:服务端表名

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

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

时间: 2024-10-08 14:49:28

xmlHTTP技术资料的相关文章

Google Android API官网封杀了,没法查android技术资料的3种解决方案

1.从uhdesk上访问简化版android api在线文档(反应速度极快) http://www.uhdesk.com/simpleandroidoc/index.html 2.下载chm本地文档(19M的样子) http://www.uhdesk.com/doc/Andorid%20API%20docs.chm 3.使用完整版本android api在线文档(明显这个域名的服务器跟不上) http://www.uhdesk.com/androidoc/index.html Google An

NO4 系统移植-项目技术资料共享解决方案

系统移植项目-技术资料共享解决方案 前言 本文只做解决方案分析,不做具体技术点的说明 一:为什么需要技术资料的共享 系统移植项目的移植点可以分:(1)操作系统移植,例如:由window移植到linux上,由Aix移植到window上等,(2)程序语言的移植,例如vb6升级到vb.net,由PHP移植到Java上等,(3)后台数据库移植,例如:DB2移植到sql server,由sql server移植到Oracle上等. 一般的项目都是包含多个移植点,很少能有一个移植点的项目. 在项目过程中,操

JavaFX 2.0+ 官方文档翻译和技术资料整理计划

一年以来,公司在采用最新的Java桌面技术-JavaFX 2.0(在Java 8中版本已经升级为JavaFX8)来开发行业软件,团队内部只有少部分人对这门新技术有一定程度的掌握.本着在团队内部普及JavaFX基础知识,以及为JavaFX在国内的传播发展贡献部分力量的目标,接下来计划将JavaFX 8的官方文档进行翻译和注解,并配上使用过程中的一些心得. JavaFX8 官方英文文档:http://docs.oracle.com/javase/8/javase-clienttechnologies

新产品技术资料交接流程图

新产品技术资料交接流程图 --摘自<公司开了,你该这样管理>作者:张国祥 其他详细内容见<公司开了,你该这样管理>

MT8167A和MT8167B技术资料简介

MT8167A技术简介1,系统概述? ?? ?MT8167A是一个高度集成的移动计算平台,集成了应用处理和连接子系统,可支持智能移动应用.该芯片集成了一个四核臂<00AE> Cortex-A35 MPCoreTM,工作频率高达1.GHz,是一款功能强大的多标准视频加速器. MT8167A可与NAND闪存,LPDDR2,LPDDR3,DDR3,DDR3L和DDR4连接,以获得最佳性能,并支持从EMMC启动,从而最大限度地降低整体BOM成本.此外,一系列广泛的接口包括与摄像头,触摸屏显示器和MMC

IT技术资料合集-年薪30w腾讯IT工程师吐血整理

[IT技术资料合集-年薪30w腾讯IT工程师吐血整理,限时免费领取]30个高薪IT人士必备工具 50+技术人必读书籍20+IT业内人士必看网站10份一线互联网技术前景报告60GLinux云计算+python人工智能技术视频500M内部高薪课件PPT和面试秘籍 原文地址:https://blog.51cto.com/10515215/2386235

2019国内某知名科技公司技术资料

2019年过去了,国内某知名品台分享了一波他们2019年的内部的技术资料.十余年的技术积累,是他们团队继续成长的有力后盾.过去的一年间, 技术博客继续践行「从内部提炼不少优质内容,分享出来与业界同仁一起学习交流.其中前端领 域发布数十篇优质文章,包括动态化.代码质量及安全.App 流程管理及实践.前端 基本功等. [前端篇]:http://dpurl.cn/Xy6IOU4 Java 魔法类:Unsafe 应用解析 Java 动态追踪技术探究 字节码增强技术探索 JVM CPU Profiler

技术资料的几种读法

作为一名程序员,有几种获取知识的渠道,比如本文将要讨论的技术书籍.开源代码.学术论文.这些可能都不是什么秘密,但每个人都有不同的方式和习惯,也就对应有不同的效果和效率.本文就分享下自己这些年来的一些经验,不一定适用每个人,但也许每个人能有些小的触动和收获. 1.技术书籍 可能程序员都很少读书,因为这个时代就是这样的特点,读书的人在减少.大家更多地从工作日常获得知识,对于程序员来说比如CSDN.StackOverflow.Quora等.但这种获取知识的方式就好比上厕所时看手机,获取的都是所谓的“碎

【窍门】Google被墙的时候如何搜技术资料

平时不FQ,又要查资料,蛋非常痛,所以搜了这个转了过来. 来源于VC驿站里syc大哥的博文,在这里表示感谢.(非推广贴,只有搜索引擎链接) 原话如下—— 他们使用的都是谷歌的搜索技术,有:enhanced by Google 标识.所以,搜索技术性资料的结果跟谷歌官方的也几乎一样,比百度好用多了,大家不妨试试,是我们程序员的福音啊!  Google 国内外镜像地址: http://www.opengg.cn/http://verygoogle.com/http://www.gfsoso.com/