SqlPipe.ExecuteAndSend(SqlCommand) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Executa o comando passado como um parâmetro e envia os resultados para o 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
O objeto SqlCommand a ser executado.
Exceções
O command
é null
.
Não há suporte para esse método em comandos associados a conexões fora do processo.
Exemplos
O exemplo a seguir usa SqlConnection e SqlCommand para selecionar linhas de uma fonte de dados em um procedimento armazenado. Em seguida, o exemplo usa um SqlPipe para executar o comando e enviar os resultados de volta para o 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
Comentários
Além dos resultados reais, outras mensagens e erros também são enviados diretamente ao cliente.
Parâmetros de saída e valores retornados não são enviados ao cliente; eles estão disponíveis para o chamador, por meio da coleção de parâmetros do objeto de comando.
Se o comando não estiver associado a uma conexão em processo, um InvalidOperationException será gerado. Não há suporte para esse método em comandos associados a conexões fora do processo.
Se houver erros no SqlCommand objeto que foi enviado, as exceções serão enviadas para o pipe, mas uma cópia também será enviada para chamar o código gerenciado. Se o código de chamada não capturar a exceção, ele propagará a pilha para o código transact-SQL e aparecerá na saída duas vezes. Se o código de chamada capturar a exceção, o consumidor de pipe ainda verá o erro, mas não haverá um erro duplicado.