Maison >développement back-end >C++ >Comment pouvons-nous capturer la sortie d'impression d'une procédure stockée T-SQL dans .NET ?
Récupération de la sortie d'impression à partir de procédures stockées T-SQL dans les applications .NET
La migration d'applications héritées implique souvent la gestion de procédures stockées T-SQL qui utilisent des instructions PRINT
pour le rapport d'erreurs ou les messages d'information. Cet article montre comment capturer cette PRINT
sortie dans un environnement .NET.
Capturer PRINT
Résultat : une solution réalisable
Récupérer la sortie des instructions PRINT
à partir d'une procédure stockée T-SQL dans votre application .NET est réalisable. Ceci est crucial pour accéder aux informations de débogage ou aux messages d'erreur intégrés dans la logique de la procédure.
Implémentation C# : gestion des événements
La solution consiste à s'abonner à l'événement InfoMessage
de l'objet de connexion à la base de données. Voici un exemple de code C# :
<code class="language-csharp">myConnection.InfoMessage += new SqlInfoMessageEventHandler(myConnection_InfoMessage); void myConnection_InfoMessage(object sender, SqlInfoMessageEventArgs e) { // Process the captured print message Console.WriteLine(e.Message); }</code>
Répartition des codes :
myConnection
: Représente la connexion à la base de données utilisée pour exécuter la procédure stockée.InfoMessage
: cet événement se déclenche chaque fois que le serveur de base de données envoie un message d'information, y compris une sortie PRINT
.e.Message
: Cette propriété contient le contenu de la déclaration PRINT
.Exemple illustratif : procédure stockée et code C#
Considérons une procédure stockée simple qui imprime un message :
<code class="language-sql">CREATE PROCEDURE usp_PrintMessage AS PRINT 'This is a test message.';</code>
Le code C# correspondant pour exécuter cette procédure et capturer la PRINT
sortie est :
<code class="language-csharp">SqlCommand cmd = new SqlCommand("usp_PrintMessage", myConnection); cmd.CommandType = CommandType.StoredProcedure; cmd.InfoMessage += myConnection_InfoMessage; // Subscribe to the event cmd.ExecuteNonQuery(); // Execute the stored procedure // The print message will be displayed on the console.</code>
En vous abonnant à l'événement InfoMessage
, votre application C# intercepte et traite efficacement la sortie PRINT
générée par la procédure stockée, permettant une gestion robuste des erreurs et une journalisation informative.
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!