0

0

XML相关技术资料总结

怪我咯

怪我咯

发布时间:2017-04-05 17:44:26

|

1596人浏览过

|

来源于php中文网

原创

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:服务端表名

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

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

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

12

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

4

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

18

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

19

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

3

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
XML教程
XML教程

共142课时 | 6万人学习

XQuery 教程
XQuery 教程

共12课时 | 3.8万人学习

XLink  教程
XLink 教程

共7课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号