SqlPipe.ExecuteAndSend(SqlCommand) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.