SqlPipe.ExecuteAndSend(SqlCommand) Metodo

Definizione

Esegue il comando passato come parametro e invia i risultati al client.

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)

Parametri

command
SqlCommand

Oggetto SqlCommand da eseguire.

Eccezioni

L'elemento command è null.

Questo metodo non è supportato sui comandi associati a connessioni out-of-process.

Esempio

Nell'esempio seguente vengono SqlConnection utilizzate e SqlCommand per selezionare le righe da un'origine dati in una stored procedure. L'esempio usa quindi un oggetto SqlPipe per eseguire il comando e inviare i risultati al client.

[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

Commenti

Oltre ai risultati effettivi, anche altri messaggi ed errori vengono inviati direttamente al client.

I parametri di output e i valori restituiti non vengono inviati al client; sono disponibili per il chiamante, tramite l'insieme di parametri dell'oggetto comando.

Se il comando non è associato a una connessione in-process, viene generata un'eccezione InvalidOperationException . Questo metodo non è supportato sui comandi associati a connessioni out-of-process.

Se sono presenti errori nell'oggetto SqlCommand inviato, le eccezioni vengono inviate alla pipe, ma viene inviata anche una copia al codice gestito. Se il codice chiamante non rileva l'eccezione, lo stack verrà propagato al codice Transact-SQL e verrà visualizzato nell'output due volte. Se il codice chiamante rileva l'eccezione, il consumer della pipe visualizzerà comunque l'errore, ma non verrà generato un errore duplicato.

Si applica a