SqlPipe.ExecuteAndSend(SqlCommand) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Exécute la commande passée en tant que paramètre et envoie les résultats au client.
public:
void ExecuteAndSend(System::Data::SqlClient::SqlCommand ^ command);
public void ExecuteAndSend (System.Data.SqlClient.SqlCommand command);
member this.ExecuteAndSend : System.Data.SqlClient.SqlCommand -> unit
Public Sub ExecuteAndSend (command As SqlCommand)
Paramètres
- command
- SqlCommand
Objet SqlCommand à exécuter.
Exceptions
command
a la valeur null
.
Cette méthode n'est pas prise en charge sur les commandes liées aux connexions extra processus.
Exemples
L’exemple suivant utilise SqlConnection et SqlCommand pour sélectionner des lignes à partir d’une source de données dans une procédure stockée. L’exemple utilise ensuite un SqlPipe pour exécuter la commande et renvoyer les résultats au client.
[Microsoft.SqlServer.Server.SqlProcedure()]
public static void StoredProcExecuteCommand(int rating)
{
// Connect through the context connection.
using (SqlConnection connection = new SqlConnection("context connection=true"))
{
connection.Open();
SqlCommand command = new SqlCommand(
"SELECT VendorID, AccountNumber, Name FROM Purchasing.Vendor " +
"WHERE CreditRating <= @rating", connection);
command.Parameters.AddWithValue("@rating", rating);
// Execute the command and send the results directly to the client.
SqlContext.Pipe.ExecuteAndSend(command);
}
}
<Microsoft.SqlServer.Server.SqlProcedure()> _
Public Shared Sub StoredProcExecuteCommand(ByVal rating As Integer)
Dim command As SqlCommand
' Connect through the context connection
Using connection As New SqlConnection("context connection=true")
connection.Open()
command = New SqlCommand( _
"SELECT VendorID, AccountNumber, Name FROM Purchasing.Vendor " & _
"WHERE CreditRating <= @rating", connection)
command.Parameters.AddWithValue("@rating", rating)
' Execute the command and send the results directly to the client
SqlContext.Pipe.ExecuteAndSend(command)
End Using
End Sub
Remarques
En plus des résultats réels, d’autres messages et erreurs sont également envoyés directement au client.
Les paramètres de sortie et les valeurs de retour ne sont pas envoyés au client ; ceux-ci sont disponibles pour l’appelant, via la collection de paramètres de l’objet de commande.
Si la commande n’est pas liée à une connexion in-process, une InvalidOperationException est levée. Cette méthode n'est pas prise en charge sur les commandes liées aux connexions extra processus.
En cas d’erreurs dans l’objet SqlCommand qui a été envoyé, des exceptions sont envoyées au canal, mais une copie est également envoyée à l’appel du code managé. Si le code appelant n’intercepte pas l’exception, il se propage vers le haut de la pile vers le code Transact-SQL et apparaît deux fois dans la sortie. Si le code appelant intercepte l’exception, le consommateur de canal voit toujours l’erreur, mais il n’y aura pas d’erreur en double.