首页 > 数据库 > SQL Server > 正文

SQL Server 2000中生成XML的小技巧

2024-08-31 00:48:40
字体:
来源:转载
供稿:网友
以前在介绍sql2k的时候已经提到了sql2k对xml的支持,使用for xml语句就可以很容易的把执行的结果转化为一个xml,这样可以在很大程度上提高系统运行效率和开发速度,详细的内容请参见books online。

  但是在使用ado(required ado 2.6)访问返回的xml的方式和原来的recordset是有所不同的。如果你还是使用recordset访问的话,只能得到一个unicode格式的xml schema,而无法得到xml的内容。

  其实这个问题也是很容易就能解决的,只是我自以为很熟悉ado,没有仔细看help,所以没有发现ado是采用stream的方式来得到和返回xml的。

  command 对象有两个属性,叫input stream和output stream,属性的值是一个iunknown接口。可以把一个xml parser的接口赋给它,或者是直接用request、response等。这样的好处是不需要再去生成一个recordset,不需要去保存这些数据,从而节省了系统开销。

  下面给大家一个简单的把xml用response返回的example:

<%@ language=vbscript %>
<!-- #include file="adovbs.inc" -->
<%
 dim objconn, objcmd, i
 set objconn = server.createobject("adodb.connection")
 objconn.open "provider=sqloledb.1;password=;persist security info=true;user id=sa;initial catalog=pba;data source=(local)"
 set objcmd = server.createobject("adodb.command")
 objcmd.activeconnection = objconn
 objcmd.properties("output stream") = response
 objcmd.properties("xml root") = "root"
 objcmd.commandtext = "select * from userstatus for xml auto"
 response.contenttype = "text/xml"
 objcmd.execute i, , adexecutestream
 set objcmd = nothing
 objconn.close
 set objconn = nothing
%> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表