.NET でのストアド プロシージャ PRINT 出力のキャプチャ
.NET の T-SQL ストアド プロシージャによって生成された PRINT 出力にアクセスするにはどうすればよいですか?たとえば、PRINT を使用して単語「word」を表示する次のストアド プロシージャを考えてみましょう:
<code class="language-sql">CREATE PROC usp_PrintWord AS PRINT 'word'</code>
C# コードを使用してこのプロセスの出力をキャプチャするにはどうすればよいですか?
この解決策には、データベース接続上で InfoMessage イベントをサブスクライブすることが含まれます。このイベントは、SQL Server の接続インスタンスが PRINT ステートメントなどの情報メッセージを送信するたびに発生します。
<code class="language-csharp">SqlCommand cmd = new SqlCommand("usp_printWord", TheConnection); cmd.CommandType = CommandType.StoredProcedure; myConnection.InfoMessage += new SqlInfoMessageEventHandler(myConnection_InfoMessage); void myConnection_InfoMessage(object sender, SqlInfoMessageEventArgs e) { string ProcPrint = e.Message; }</code>
ストアド プロシージャが実行されると、InfoMessage イベントがトリガーされ、メッセージ ハンドラーが呼び出されます。メッセージ テキストには、SqlInfoMessageEventArgs オブジェクトの Message プロパティを通じてアクセスできます。
以上が.NET で T-SQL ストアド プロシージャの PRINT 出力をキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。