上一篇:跟我学小偷程序教程之小偷原理(第一天) >>
XML相关技术资料
----------------------------------------------------------
一、数据库远程管理技术
基于互联网的广域网现代应用中的一个重要环节是数据库远程监控。首先简单回顾一下互联网上的数据库远程管理技术的发展过程和方式:
早期通过编写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:服务端表名
然后提交指令,等待并接收返回的处理结果。结果以字符串方式返回。
最后由函数调用者处理并显示结果。
()
下一篇:小偷程序原理和简单示例 >>
相关文章:
- · 其实做小偷是很容易的
- · XMLHTTP下载远程数据输出到浏览器
- · Jave基础学习:jdbc小技巧
- · 一棵php的类树(支持无限分类)
- · 用asp.net 实现九连环小游戏
- · MySQL数据导入导出方法与工具介绍(1)
- · 轻松弹出无边框网页的Javscrpt代码
- · ASP初学者参考
- · Java新手学习:IIS6和Tomcat5的整合
- · asp常用函数
- · W3 Jmail中文使用说明
- · 无组件上传图片到数据库中,最完整解决方案
- · 二级域名原理以及程序,申请即可开通
- · Java学习过程的一些重点
- · Oracle9i中如何建立不同字符集的数据库
- · 修复SQL Server 2000数据库之实战经验
- · 使用ASP生成HTML文件
- · 编写安全的ASP代码
- · 十天学会ASP.net(2)
- · 十天学会ASP.net(1)
- · 十天学会php(2)
- · 十天学会php(1)
- · 三天学好ADO
- · 在数据库中存取文件
- · 解决大字段在Form中Post出错的方法
- · 利用ASP+JMAIL进行邮件群发的新思路
- · 关于处理GET方式提交的含有特殊字符的参数
- · 关于Adodb.Stream 的使用说明
- · 多文件多文本框上传程序
- · 让妙客家标准版使用 SQL Server 数据库后台
- · 关于用SQL SERVER2000建立分布式网站系统的认识
- · 使用SQLSERVER的扩展存储过程实现远程备份与恢复
- · MySQL数据库类的定义
- · SQL语句导入导出大全
- · SQL Server的用户及权限
- · 深入理解C语言指针的奥秘
- · VC快捷键大全
- · 简体中文编码对应器
