ASP 经典 SQL 服务器 return 来自数据库的 XML 格式的结果
ASP Classic SQL Server return results from database in XML format
我正在尝试 return ASP 中的查询结果,当我使用 Response.write Recordset(0) 之类的东西时它可以工作,但它在 [=25= 中不起作用] 格式。这是我的代码:
Dim conn
Dim Recordset
Dim xmlDoc
Set conn = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM dbo.myTable for xml auto;"
conn.Open "Provider=SQLOLEDB; Data Source = myPC\SQLEXPRESS;
Initial Catalog = peopleDatabase; User Id = rafalsonn; Password=xxx"
Recordset.Open SQL,conn
Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
Recordset.Save xmlDoc,1
Recordset.Close
Set Recordset=nothing
conn.Close
Set conn=nothing
Response.Write xmlDoc.xml
结果:
This XML file does not appear to have any style information associated
with it. The document tree is shown below.
我尝试了很长时间,但我不知道错误在哪里。你好,拉法尔
我是这样实现的
<%
Set oXML = Server.CreateObject("MSXML2.DomDocument.6.0")
Set oCmd = Server.CreateObject("ADODB.Command")
oCmd.ActiveConnection = "Provider=SQLOLEDB;Data Source=localhost\SQLEXPRESS;User ID=myuserid;Initial Catalog=mydatabase;Password=mypassword"
oCmd.Properties("Output Stream") = oXML
oXml.async = false
oCmd.CommandText = "SELECT id, Headline, Author, Publication, Pubdate, Intro from Articles as Article for xml auto, elements, root('Articles')"
oCmd.Execute , , 1025
Response.ContentType="text/xml"
Response.Write("<?xml version='1.0' encoding='utf-8'?>")
Response.Write oXML.xml
Set oXML = Nothing
Set oCmd = Nothing
%>
'root('Articles')' 将 xml 输出放入 <Articles>...</Articles>
这个 MSDN 页面展示了 'elements' 的作用
https://msdn.microsoft.com/en-us/library/ms188273.aspx
这是另一种方式。
将记录集的 XML 输出直接打印到 ADO 的 XML Persistence Format 中的响应。
<%
Response.ContentType = "text/xml"
Const adPersistXML = 1
Dim conn
Dim Recordset
Set conn = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM dbo.myTable"
conn.Open "Provider=SQLOLEDB; Data Source = myPC\SQLEXPRESS; Initial Catalog = peopleDatabase; User Id = rafalsonn; Password=xxx"
Recordset.Open SQL,conn, 1, 1
Recordset.Save Response, adPersistXML
%>
相关链接:
像这样设置 CursorLocation 和 CursorType:
<%@ Page Language="VB" AspCompat="true" %>
<%
Dim rs as Object = Server.CreateObject("ADODB.Recordset")
Dim cn as Object = Server.CreateObject("ADODB.Connection")
Dim xml as Object = Server.CreateObject("MSXML2.DomDocument.6.0")
Dim sql as String = "select * from table1 where rownum < 10"
cn.Open ("Provider=OraOLEDB.Oracle;Data Source=server1/inst1;User ID=user1;Password=password1;")
rs.CursorLocation = 3 'adUseClient
rs.CursorType = 3 'adOpenStatic
rs.LockType = 1 'adLockReadOnly
rs.Open (sql, cn)
rs.Save (xml,1)
Response.ContentType="text/xml"
Response.Write("<?xml version='1.0' encoding='utf-8'?>")
Response.Write(xml.xml )
cn.Close
%>
我正在尝试 return ASP 中的查询结果,当我使用 Response.write Recordset(0) 之类的东西时它可以工作,但它在 [=25= 中不起作用] 格式。这是我的代码:
Dim conn
Dim Recordset
Dim xmlDoc
Set conn = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM dbo.myTable for xml auto;"
conn.Open "Provider=SQLOLEDB; Data Source = myPC\SQLEXPRESS;
Initial Catalog = peopleDatabase; User Id = rafalsonn; Password=xxx"
Recordset.Open SQL,conn
Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
Recordset.Save xmlDoc,1
Recordset.Close
Set Recordset=nothing
conn.Close
Set conn=nothing
Response.Write xmlDoc.xml
结果:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
我尝试了很长时间,但我不知道错误在哪里。你好,拉法尔
我是这样实现的
<%
Set oXML = Server.CreateObject("MSXML2.DomDocument.6.0")
Set oCmd = Server.CreateObject("ADODB.Command")
oCmd.ActiveConnection = "Provider=SQLOLEDB;Data Source=localhost\SQLEXPRESS;User ID=myuserid;Initial Catalog=mydatabase;Password=mypassword"
oCmd.Properties("Output Stream") = oXML
oXml.async = false
oCmd.CommandText = "SELECT id, Headline, Author, Publication, Pubdate, Intro from Articles as Article for xml auto, elements, root('Articles')"
oCmd.Execute , , 1025
Response.ContentType="text/xml"
Response.Write("<?xml version='1.0' encoding='utf-8'?>")
Response.Write oXML.xml
Set oXML = Nothing
Set oCmd = Nothing
%>
'root('Articles')' 将 xml 输出放入 <Articles>...</Articles>
这个 MSDN 页面展示了 'elements' 的作用 https://msdn.microsoft.com/en-us/library/ms188273.aspx
这是另一种方式。
将记录集的 XML 输出直接打印到 ADO 的 XML Persistence Format 中的响应。
<%
Response.ContentType = "text/xml"
Const adPersistXML = 1
Dim conn
Dim Recordset
Set conn = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM dbo.myTable"
conn.Open "Provider=SQLOLEDB; Data Source = myPC\SQLEXPRESS; Initial Catalog = peopleDatabase; User Id = rafalsonn; Password=xxx"
Recordset.Open SQL,conn, 1, 1
Recordset.Save Response, adPersistXML
%>
相关链接:
像这样设置 CursorLocation 和 CursorType:
<%@ Page Language="VB" AspCompat="true" %>
<%
Dim rs as Object = Server.CreateObject("ADODB.Recordset")
Dim cn as Object = Server.CreateObject("ADODB.Connection")
Dim xml as Object = Server.CreateObject("MSXML2.DomDocument.6.0")
Dim sql as String = "select * from table1 where rownum < 10"
cn.Open ("Provider=OraOLEDB.Oracle;Data Source=server1/inst1;User ID=user1;Password=password1;")
rs.CursorLocation = 3 'adUseClient
rs.CursorType = 3 'adOpenStatic
rs.LockType = 1 'adLockReadOnly
rs.Open (sql, cn)
rs.Save (xml,1)
Response.ContentType="text/xml"
Response.Write("<?xml version='1.0' encoding='utf-8'?>")
Response.Write(xml.xml )
cn.Close
%>