怎样使用SQLSERVER2000中的for XML字句,怎样使用返回的XML文档。(15分)

  • 主题发起人 主题发起人 zlmark
  • 开始时间 开始时间
Z

zlmark

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样使用SQLSERVER2000中的for XML字句,怎样使用返回的XML文档。比如说在asp中使用。
 
ADO可以使用以XML返回的结果集。
 
我是使用了带for xml的sql语句之后无法返回xml格式的文件,在查询分析器中使用带
for xml的sql语句也不能返回xml格式的数据。
 
我在sql2000数据库的查询分析器中使用如下sql语句:Select * from xtm01(表名) for xml auto
执行后显示错误:Incorrect syntax near 'XML'.
这是为什么?我使用的是评估版。难道和这个有关系?
 
使用ADO连接数据库,在工作站上自己写几个小函数来转。比如下面是ASP中的代码:
<% RSDispatch %>
<!--#INCLUDE FILE="_ScriptLibrary/rs.asp"-->
<SCRIPT LANGUAGE=jscript RUNAT=Server>
var cat = new ActiveXObject("ADOMD.Catalog");
cat.ActiveConnection=Application("cnCube_ConnectionString")

var conn = new ActiveXObject("ADODB.Connection");
conn.CommandTimeout=600;
conn.open(Application("cnDB_ConnectionString"))
var rs = new ActiveXObject("ADODB.Recordset");
var sDTS_Server=Application("cnDTS_Server")
var sDTS_User=Application("cnDTS_User")
var sDTS_Pwd=Application("cnDTS_Password")
var sADO_ConnStr=Application("cnDB_ConnectionString")
function Description()
{
this.SqlServer_SQL=SqlServer_SQL
}
public_description = new Description();

function SqlServer_SQL(sSQL)
{
var data="";
rs=conn.execute(sSQL);
var iCount = rs.Fields.Count;
var i = 0;

data=data+"<fields><fieldname>"
for (i;
i<n;
i++)
{
data=data+"<field"+i+">"+rs.Fields(i).Name+"</field"+i+">"
}
data=data+"</fieldname>";

while(!rs.EOF)
{

data=data+"<fielddata>"
for (i=0;
i<n;
i++)
{
data=data+"<field"+i+">"+rs(i).Value+"</field"+i+">"
}
data=data+"</fielddata>"
rs.MoveNext
}
data=data+"</fields>"

return data;
}
</SCRIPT>
 
应该是你的SQL有问题,我这里可以用的,不过你也可以自己拼写XML串呀,很简单的树形
结构,呵呵。我只是提点建议。[:)][:)][:)]
 
lucky_young:我的sql语句在上面有,你看一看我哪里错了?
 
后退
顶部