2

これはかなり簡単だと思いますが、答えが見つからないようです。

SQL Server 2005でクエリを実行for xml, elementsし、最後に結果をXMLとして返します。

select top 10 title, pubdate, description, link
from rssfeed item
for xml auto, elements

従来のASPページからクエリを実行しています。通常、列から結果を取得するには、を使用しますrs.Fields.Item("colName")。問題は、のfor xml場合、列名が。のような長い文字列であるということですXML_F52E2B61-...

やってみrs.Fields(0).valueました。これは、XMLではなく、疑問符で区切られたクエリの列の名前を奇妙に返しました。私の出力は次のとおりです。

?title?pubdate?description?link?item?L???

Management Studioでクエリをテストしましたが、XMLは問題ないように見えます。この値を従来のASPに読み込む方法はありますか?

4

2 に答える 2

3

SQLServerフォーラムで答えを見つけました。これを行うにはおそらくもっとクリーンな方法がありますが、投稿からのアイデアはXMLをvarchar(max)に変換することです。

DECLARE @xmlout as varchar(max);
DECLARE @X as Xml;

set @X = (select top 10 title, pubdate, description, link
from rssfeed item
for xml auto, elements);

select @xmlout = cast(@X as varchar(max));
select @xmlout;

クエリを実行した後、私はrs(0)戻り値を読み取るために使用しています。

于 2012-09-26T20:18:14.527 に答える
0

@dangowansによる他の答えはとても良いです。私はここにたどり着き、同様の問題の解決策を探しました。

ただし、ストアドプロシージャのようなものに移動せずに管理でき、次のような単一のクエリを使用して管理できました。

Select k=(select top 10 title, pubdate, description, link
from rssfeed item
for xml auto, elements)

そして、XML出力をとして返しましたvarchar

于 2013-10-06T11:37:20.507 に答える