数据库中的XML应用实例
作者:
我们在该例中介绍如何实现数据库和XML结合。您将可以看到,该例中实现对一般的关系数据库进行查询等操作,并将结果输出到通用的XML。例中还示范结合采用XSL规范XML的格式,用HTTP和ASP进行网络的通信和处理。您可以在此基础上进行许多扩充的开发,特别是服务器/客户端架构的Web应用。
下面我们来详细说明该实例及使用方法:
(1)准备工作
打开控制面板,将Northwind.mdb数据库添加至您的用户数据源(DNS)并命名为"nwind";
process.asp放在服务器端,第4部分中要用到该文件处理HTTP请求;
用Visual Basic 6.0打开test.vbp项目,引用MS XML Version2.0库。
(2)定义的变量
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Dim xmlstr As String
Dim xmldoc As MSXML.DOMDocument
Dim xmlhttp As MSXML.XMLHTTPRequest
Dim xsldoc As MSXML.DOMDocument
Dim message As MSXML.DOMDocument
Dim query As String
(3)初始化
函数init(),在Form_Load()中调用
'建立和打开ADODB与ODBC的数据连接
Set con = New ADODB.Connection
con.ConnectionString = "DSN=nwind;UID=sa;PWD=;"
con.Open
'建立XML 文档对象(XML Document Objects)
Set xmldoc = New MSXML.DOMDocument
Set xsldoc = New MSXML.DOMDocument
Set message = New MSXML.DOMDocument
(4)实现查询和输出:
在Command1_Click函数中实现
'查询数据库
query = "Select * FROM Customers WHERE CustomerID = '" & Text1.Text & "'"
Set rs = con.Execute(query)
'将查询的结果存储到XML文件
On Error Resume Next
Kill ("recordset.xml")
rs.Save "recordset.xml", adPersistXML
xmldoc.async = False
xmldoc.Load ("recordset.xml")
'执行对子树的查询,实际上是滤除其它Schema定义的部分, 提取出满足查询结果的纯数据
MsgBox xmldoc.selectSingleNode("//z:row").xml
'载入样式表(stylesheet)并将XML规格化
xsldoc.async = False
xsldoc.Load ("standard.xsl")
xmldoc.transformNodeToObject xsldoc, message
'将XML发送给服务器进行处理
Set xmlhttp = New MSXML.XMLHTTPRequest
xmlhttp.Open "POST", "http://icds/process.asp", False ‘要根据process.asp的位置指定好第2项参数
xmlhttp.send message
(5)使用应用程序
按F5执行该程序,在上面的文本框中输入查询的顾客的ID, 按下面的”处理顾客信息”执行查询并输出结果。
如果要了解更多,请下载源代码:Database.zip 。