Accès à la sortie d'impression de procédure stockée dans les applications .NET
La modernisation des applications implique souvent l'intégration de systèmes existants, ce qui présente des défis tels que la gestion des procédures stockées à l'aide de l'instruction PRINT
pour la journalisation des erreurs. Cette méthode, bien que fonctionnelle dans SQL Server Management Studio ou dans les interfaces de ligne de commande, n'est pas directement accessible dans .NET. Cet article montre comment capturer cette sortie et la rediriger pour une meilleure gestion.
La solution consiste à utiliser l'événement InfoMessage
de la classe SqlConnection
. En vous abonnant à cet événement, votre application .NET peut intercepter et traiter les PRINT
instructions des procédures stockées.
Voici un exemple illustratif :
<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>
Cette approche garantit que les messages d'erreur critiques provenant des procédures stockées héritées ne sont pas négligés pendant le processus d'intégration, préservant ainsi l'intégrité des données et rationalisant la transition vers .NET.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!