SqlPipe.ExecuteAndSend(SqlCommand) Метод

Определение

Выполняет команду, переданную в качестве параметра, и отправляет результаты клиенту.

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)

Параметры

command
SqlCommand

Объект SqlCommand, который требуется выполнить.

Исключения

Значение параметра commandnull.

Данный метод не поддерживается для команд, привязанных к подключениям вне процессов.

Примеры

В следующем примере используются SqlConnection и SqlCommand выбираются строки из источника данных в хранимой процедуре. Затем в примере используется команда SqlPipe для выполнения команды и отправки результатов клиенту.

[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

Комментарии

Помимо фактических результатов, другие сообщения и ошибки также отправляются непосредственно клиенту.

Выходные параметры и возвращаемые значения не отправляются клиенту; они доступны вызывающей объекту через коллекцию параметров объекта команды.

Если команда не привязана к внутрипроцессной связи, InvalidOperationException возникает исключение. Данный метод не поддерживается для команд, привязанных к подключениям вне процессов.

Если в отправленном SqlCommand объекте возникают ошибки, исключения отправляются в канал, но копия также отправляется в вызов управляемого кода. Если вызывающий код не перехватывает исключение, он будет распространять стек на код Transact-SQL и отображаться в выходных данных дважды. Если вызывающий код перехватывает исключение, потребитель канала по-прежнему увидит ошибку, но не будет повторяться.

Применяется к