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

ASP
ASP用户登录模块的设计
ASP:一个网站空间多个域名访问
ASP教程:自己写的数据库操作类
ASP处理多关键词查询实例代码
ASP实例:幻灯片新闻代码
ASP实例:处理多关键词查询实例代码
快速掌握ASP+Access数据库的18条安全法则
快速掌握ASP连接11种数据库的常用语法
在ASP应用中如何限制同一表单被多次提交
ASP防止同时登陆的问题
关于Asp.net ajax下的异常处理
ASP生成html的新方法
ASP中的面向对象 类
ASP调用带参数存储过程的几种方式
asp实现批量录入数据的实现
用ASP调用SQL Server视图和存储过程
值得收藏的一些ASP代码
ASP 编程中 20 个非常有用的例子
每个ASP程序员必备的知识
flash结合asp制作出的显ip,版本,登陆时间,访问次数

结合XML, ADO, 以及ASP


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 169 ::
收藏到网摘: 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" /