SqlPipe.ExecuteAndSend(SqlCommand) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.