当前位置: 首页 > 图文教程 > 网络编程 > ASP > 结合XML, ADO, 以及ASP

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

结合XML, ADO, 以及ASP


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

  这个星期,我们将使用可扩充标记语言(XML)以及在ASP中使用ActiveX Data Object(ADO).在最新的互联网信息服务器(IIS 5)和ADO(2.6)版本中,我们现在能够从游标对象中提取数据作为XML直接保存并直接发给ASP的response对象   


下面的Phonelist.asp工程从创建一个底层的Access数据库开始.我的想法是开发一个对任何公司都有用的简单的数据集.第一步是命名表单contacts然后增加四个域:FirstName,LastName, Location, 和Phone.你要明白XML和可扩充风格页语言(XSL)是大小些敏感的,因此你要确保你的数据域名和XSL风格页中的那些定义相匹配.

本工程中的ASP只有一个简单的功能:提取数据并将它作为XML返回.首先,我们需要将文件内容类型标示为text/xml.然后,添加XML信息头和风格页连接信息来格式化XML数据.第三步,创建一个ADO游标对象来提取数据.这里你可以体会到XML技术的简单性是如此的精巧.我们不需要循环遍历整个游标对象也不需要将HTML和脚本代码混合来在ASP里格式化和显示数据,我们只需要简单的打开游标然后将数据作为XML保存到response对象里.

开发者能够容易的用XSL格式化和显示数据的确是令人神往的.你的开发过程越简单,问题存在的可能性就越小.

更多的信息和ADO MDAC 2.6版的下载链接可以在下面的站点找到:Microsoft Universal Access Data Web site.

下面是Phonelist.asp程序的代码.
<%@ Language=VBScript %>
<%
Response.ContentType = "text/xml"
Response.Write "<?xml version=""1.0"" ?>" & vbcrlf
Response.Write "<?xml-stylesheet type=""text/xsl"" " & _
"href=""PhoneList.XSL"" ?>" & vbcrlf & vbcrlf

set rsContacts = Server.CreateObject("ADODB.Recordset")
dataConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"User ID=Admin;Data Source=D:\Inetpub\wwwroot\ASP_Utils\PhoneList.mdb;" & _
"Mode=Share Deny None;Extended Properties="""";" & _
"Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";" & _
"Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=5;" & _
"Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;" & _
"Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";" & _
"Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;" & _
"Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:" & _
"Compact Without Replica Repair=False;Jet OLEDB:SFP=False;User Id=Admin;"
sql = "SELECT LastName + ', ' + FirstName AS Name, " & _
"Phone, Location FROM Contacts ORDER BY LastName"

rsContacts.ActiveConnection = dataConnStr
rsContacts.Source = sql
rsContacts.CursorLocation = 3'Use Client side cursor
rsContacts.Open
rsContacts.ActiveConnection = nothing

rsContacts.Save response, 1 'adPersistXML
Set rsContacts = Nothing
%>

The Phonelist.xsl file source:
<HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<TITLE>Company Phone List</TITLE>
<STYLE>
.Table {background:black}
.TableHead {font:bold; color:white; background:blue}
.ColumnHeader {font:normal 'Verdana' bold; color:white; background:blue}
.TableRow {font:x-small 'Verdana'; color:black; background:#CCCCCC}
</STYLE>
<BODY>
<DIV >
<TABLE CLASS="Table" ID="RecordTable">
<THEAD>
<TR CLASS="TableHead">
<TH CLASS="ColumnHeader">Name</TH>
<TH CLASS="ColumnHeader">Location</TH>
<TH CLASS="ColumnHeader">Phone</TH>
</TR>
</THEAD>
<xsl:for-each select="xml/rs:data/z:row">
<TR CLASS="TableRow">
<TD><xsl:value-of select="@Name" /></TD>
TD align="center"><xsl:value-of select="@Location" /></TD>
<TD><xsl:value-of select="@Phone" /