SqlPipe.ExecuteAndSend(SqlCommand) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Führt den als Parameter übergebenen Befehl aus und sendet die Ergebnisse an den 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)
Parameter
- command
- SqlCommand
Das auszuführende SqlCommand-Objekt.
Ausnahmen
command ist null.
Diese Methode wird nicht bei Befehlen unterstützt, die an prozessexterne Verbindungen gebunden sind.
Beispiele
Im folgenden Beispiel wird und SqlCommand verwendetSqlConnection, um Zeilen aus einer Datenquelle in einer gespeicherten Prozedur auszuwählen. Im Beispiel wird dann ein SqlPipe verwendet, um den Befehl auszuführen und die Ergebnisse zurück an den Client zu senden.
[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
Hinweise
Zusätzlich zu den tatsächlichen Ergebnissen werden auch andere Meldungen und Fehler direkt an den Client gesendet.
Ausgabeparameter und Rückgabewerte werden nicht an den Client gesendet. diese stehen dem Aufrufer über die Parameterauflistung des Befehlsobjekts zur Verfügung.
Wenn der Befehl nicht an eine Prozessinterne Verbindung gebunden ist, wird eine InvalidOperationException ausgelöst. Diese Methode wird nicht bei Befehlen unterstützt, die an prozessexterne Verbindungen gebunden sind.
Wenn fehler im übermittelten SqlCommand Objekt vorhanden sind, werden Ausnahmen an die Pipe gesendet, aber auch eine Kopie wird an den Aufruf von verwaltetem Code gesendet. Wenn der aufrufende Code die Ausnahme nicht abfangen kann, wird der Stapel an den Transact-SQL-Code weitergegeben und zweimal in der Ausgabe angezeigt. Wenn der aufrufende Code die Ausnahme abfängt, wird dem Pipeconsumer der Fehler weiterhin angezeigt, aber es gibt keinen doppelten Fehler.