ホームページ > バックエンド開発 > C++ > .NET アプリケーションでストアド プロシージャの印刷出力をキャプチャするにはどうすればよいですか?

.NET アプリケーションでストアド プロシージャの印刷出力をキャプチャするにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-17 16:22:09
オリジナル
124 人が閲覧しました

How Can I Capture Stored Procedure Print Output in .NET Applications?

.NET アプリケーション内でのストアド プロシージャの印刷出力へのアクセス

アプリケーションの最新化にはレガシー システムの統合が含まれることが多く、エラー ログに PRINT ステートメントを使用してストアド プロシージャを処理するなどの課題が生じます。 このメソッドは、SQL Server Management Studio またはコマンド ライン インターフェイスでは機能しますが、.NET では直接アクセスできません。 この記事では、この出力をキャプチャし、管理を改善するためにリダイレクトする方法を説明します。

この解決策には、InfoMessage クラスの SqlConnection イベントを利用することが含まれます。このイベントをサブスクライブすることにより、.NET アプリケーションはストアド プロシージャから PRINT ステートメントをインターセプトして処理できます。

これがわかりやすい例です:

<code class="language-csharp">using System.Data.SqlClient;
using System.Data;

// Connection string (replace with your actual connection string)
string connectionString = @"<conn_string>";

using (SqlConnection connection = new SqlConnection(connectionString))
{
    // Subscribe to the InfoMessage event
    connection.InfoMessage += Connection_InfoMessage;

    // Prepare the stored procedure call
    SqlCommand cmd = new SqlCommand("usp_printWord", connection);
    cmd.CommandType = CommandType.StoredProcedure;

    connection.Open();

    // Execute the stored procedure
    cmd.ExecuteNonQuery();

    connection.Close();
}

// Event handler to process the captured output
void Connection_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
    // Display the captured message
    Console.WriteLine(e.Message);
}</code>
ログイン後にコピー

このアプローチにより、統合プロセス中にレガシー ストアド プロシージャからの重大なエラー メッセージが見落とされることがなくなり、データの整合性が維持され、.NET への移行が合理化されます。

以上が.NET アプリケーションでストアド プロシージャの印刷出力をキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート