SqlPipe.ExecuteAndSend(SqlCommand) Metoda

Definicja

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.

Dotyczy