2011-02-23 12 views
2

大規模なXMLを返すクエリがありますが、そのサイズは極端な場合は1GBに達することがありますが、通常は数百メガバイトになります。SELECT ... XMLをファイルに変換する

クライアントプログラムがすべてのデータを一度に受信してメモリに保持するという明白なアプローチは、この場合は機能しません。

SQL Serverの出力結果をファイルにする方法はありますか?それとも、データごとに結果データを提供できるのでしょうか?後者の場合は、すべてをメモリにロードせずにファイルに出力するのは自明です。

問題の文章によれば、生成されたXMLはXSLTによって変換され、より小さな結果が得られます。理想的には、xsltエンジンに接続できるパイプにXMLデータを出力するようにサーバーに指示し、別のプロセスとして実行するのが理想的です。しかし、私はこれを行う方法はありません。

アイデアはありますか?

ありがとうございます。

クライアントプログラムはC#3

SQL Serverのバージョンに書き込まれるが、2005年である、しかし、いくつかの本当に良い解決策が唯一の2008年に存在している場合、この制限は、あなたが使用していると仮定すると、必要不可欠

+0

:これを行うにはどのようにこの記事をお読みください。 –

+0

通知のおかげで、私は私の処方を修正しました。 – Mooh

答えて

2

考えるべきではありませんあなたはSqlDataReaderのを使用してコンソールのストリームにSELECT SQLの結果セットを供給する方法の例を見つけるここ.NET言語およびADO.NET、

http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson02.aspx

。コンソールをファイルストリームで置き換えると、完了です。

これは、XMLが複数のテキスト行に行単位で格納されている場合にのみ機能します。 XMLがBLOBフィールドに格納されている場合は、何らかのチャンクが必要です。あなたが使用しているクライアントAPI重要この質問について

http://support.microsoft.com/kb/317034/EN-US

関連する問題