Compartir a través de


SqlPipe.ExecuteAndSend(SqlCommand) Método

Definición

Ejecuta el comando pasado como parámetro y envía los resultados al cliente.

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)

Parámetros

command
SqlCommand

Objeto SqlCommand que se va a ejecutar.

Excepciones

El valor de command es null.

Este método no se admite en los comandos enlazados a las conexiones que se establecen fuera del proceso.

Ejemplos

En el ejemplo siguiente se usa SqlConnection y SqlCommand para seleccionar filas de un origen de datos en un procedimiento almacenado. A continuación, en el ejemplo se usa para SqlPipe ejecutar el comando y devolver los resultados al cliente.

[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

Comentarios

Además de los resultados reales, también se envían otros mensajes y errores directamente al cliente.

Los parámetros de salida y los valores devueltos no se envían al cliente; están disponibles para el autor de la llamada, a través de la colección parameters del objeto command.

Si el comando no está enlazado a una conexión en proceso, se produce una InvalidOperationException excepción . Este método no se admite en los comandos enlazados a las conexiones que se establecen fuera del proceso.

Si hay errores en el SqlCommand objeto que se envió, las excepciones se envían a la canalización, pero también se envía una copia al código administrado. Si el código de llamada no detecta la excepción, propagará la pila al código transact-SQL y aparecerá en la salida dos veces. Si el código de llamada detecta la excepción, el consumidor de canalización seguirá viendo el error, pero no habrá un error duplicado.

Se aplica a