SqlPipe.ExecuteAndSend(SqlCommand) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wykonuje polecenie przekazane jako parametr i wysyła wyniki do klienta.
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)
Parametry
- command
- SqlCommand
SqlCommand Obiekt do wykonania.
Wyjątki
Element command
to null
.
Ta metoda nie jest obsługiwana w poleceniach powiązanych z połączeniami poza procesem.
Przykłady
W poniższym przykładzie użyto SqlConnection metody i SqlCommand do wybrania wierszy ze źródła danych w procedurze składowanej. W tym przykładzie użyto elementu a SqlPipe do wykonania polecenia i wysłania wyników z powrotem do klienta.
[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
Uwagi
Oprócz rzeczywistych wyników inne komunikaty i błędy są również wysyłane bezpośrednio do klienta.
Parametry wyjściowe i wartości zwracane nie są wysyłane do klienta; Są one dostępne dla obiektu wywołującego za pośrednictwem kolekcji parametrów obiektu polecenia.
Jeśli polecenie nie jest powiązane z połączeniem w procesie, InvalidOperationException zostanie zgłoszony. Ta metoda nie jest obsługiwana w poleceniach powiązanych z połączeniami poza procesem.
Jeśli w przesłanym SqlCommand obiekcie występują błędy, wyjątki są wysyłane do potoku, ale kopia jest również wysyłana do wywoływania kodu zarządzanego. Jeśli kod wywołujący nie przechwyci wyjątku, będzie propagowany stos do kodu transact-SQL i pojawia się w danych wyjściowych dwa razy. Jeśli kod wywołujący przechwyci wyjątek, odbiorca potoku nadal będzie widzieć błąd, ale nie zostanie zduplikowany błąd.