当前位置: 首页 > 图文教程 > 网络编程 > ASP > 用asp做access的远程接口

ASP
构建你的网站新闻自动发布系统之三
构建你的网站新闻自动发布系统之四
如何用ASP编写网站统计系统一
如何用ASP编写网站统计系统二
如何用ASP编写网站统计系统三
如何用ASP编写网站统计系统四
ASP Error 0115的一些解决办法
ASP 3.0 新特色先睹为快(一)
ASP 3.0 新特色先睹为快(二)
ASP主件中的安全问题
一个汉字转成拼音的代码
使用w3Sockets组件实现域名查询功能
ASP中实现文件上传方法的研究
构建免受FSO组件威胁虚拟主机
用XMLHTTP做一个自己特色的Google
用asp实现的代码批量修改程序
无组件的数据库的备份与还原
用ASPJPEG组件制作图片的缩略图和加水印
解密ASP源代码
XmlHttp异步获取网站数据的例子

ASP 中的 用asp做access的远程接口


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 101 ::
收藏到网摘: n/a

 

      以前看到很多网友问,自己有两台服务器,如何这两台服务器上的mdb数据库数据的互访。今天作了个远程的接口,以xml形式返回mdb中的数据。用的主要思想是通过recordset对象的save方法将数据填充到一个xml dom里,但是,这种方法产生的XML不够简洁,自动产生的XML包含了schema信息,它描述这个XML里允许有什么节点和属性以及采用何种数据类型,而且数据节点也增加了名称空间。schema信息在需要数据验证的地方或进行更复杂的处理或许很有用,但是,大多数情况下,我们使用的是瘦客户机,我们不需要schema信息。我们可以利用XSLT来分离出我们想要的信息,去掉多余的信息。

代码如下:
<%
'生成xsl样式
str = chr(13)&chr(10)&chr(9)
xslt="<?xml version=""1.0""?>" & chr(13)&chr(10) & "<xsl:stylesheet version=""1.0"""_
      &" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"""_
      &" xmlns:s=""uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"""_
      &" xmlns:dt=""uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"""_
      &" xmlns:rs=""urn:schemas-microsoft-com:rowset"""_
      &" xmlns:z=""#RowsetSchema"">"& str_
& "<xsl:output omit-xml-declaration=""yes""/>"&str_
&  "<xsl:template match=""/"">"& str&chr(9)_
     & "<xsl:element name=""xml"">"& str&chr(9)&chr(9)_
          &"<xsl:for-each select=""/xml/rs:data/z:row"">"& str&chr(9)&chr(9)&chr(9)_
              &"<xsl:element name=""row"">"& str&chr(9)&chr(9)&chr(9)&chr(9)_
                  &"<xsl:for-each select=""@*"">"& str&chr(9)&chr(9)&chr(9)&chr(9)&chr(9)_
                     & "<xsl:element name=""{name()}"">"& str&chr(9)&chr(9)&chr(9)&chr(9)&chr(9)&chr(9)_
                         & "<xsl:value-of select="".""/>"& str&chr(9)&chr(9)&chr(9)&chr(9)&chr(9)_
                      &"</xsl:element>"& str&chr(9)&chr(9)&chr(9)&chr(9)_
                 & "</xsl:for-each>"& str&chr(9)&chr(9)&chr(9)_
             & "</xsl:element>"& str&chr(9)&chr(9)_
          &"</xsl:for-each>"& str&chr(9)_
      &"</xsl:element>"& str_
  &"</xsl:template>"& chr(13)&chr(10)_
&"</xsl:stylesheet>"

'读取数据库
curDir = Server.MapPath("data.mdb")
set conn=server.createobject("adodb.connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & curDir
set rs=conn.Execute("select * from admins")
Dim objXMLDOM
Set objXMLDOM = Server.CreateObject("MSXML2.DOMDocument.3.0")
'将recordset对象保存到dom里
rs.save objXMLDOM, 1
Set rs = Nothing
Dim strCleanXML, objXMLDOM_XSLT
Set objXMLDOM_XSLT = CreateObject("MSXML2.DOMDocument")
objXMLDOM_XSLT.loadXml(xslt)
'用xsl格式化数据
strCleanXML = objXMLDOM.transformNode(objXMLDOM_XSLT)
 
Set objXMLDOM = Nothing
Set objXMLDOM_XSLT = Nothing
'输出数据
Response.Write strCleanXML
%>

       因为xml是跨平台的,所以呢不