Maison > développement back-end > C++ > Comment pouvons-nous capturer la sortie d'impression d'une procédure stockée T-SQL dans .NET ?

Comment pouvons-nous capturer la sortie d'impression d'une procédure stockée T-SQL dans .NET ?

Mary-Kate Olsen
Libérer: 2025-01-17 16:26:11
original
1041 Les gens l'ont consulté

How Can We Capture Print Output from a T-SQL Stored Procedure in .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# :

myConnection.InfoMessage += new SqlInfoMessageEventHandler(myConnection_InfoMessage);

void myConnection_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
    // Process the captured print message
    Console.WriteLine(e.Message); 
}
Copier après la connexion

Répartition des codes :

  • myConnection : Représente la connexion à la base de données utilisée pour exécuter la procédure stockée.
  • Événement
  • 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 :

CREATE PROCEDURE usp_PrintMessage
AS
    PRINT 'This is a test message.';
Copier après la connexion

Le code C# correspondant pour exécuter cette procédure et capturer la PRINT sortie est :

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.
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal