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 и появится в выходных данных дважды. Если вызывающий код перехватывает исключение, потребитель канала по-прежнему будет видеть ошибку, но повторяющаяся ошибка не будет.

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