SqlPipe.ExecuteAndSend(SqlCommand) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Spustí příkaz předaný jako parametr a odešle výsledky klientovi.
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)
Parametry
- command
- SqlCommand
Objekt SqlCommand , který se má spustit.
Výjimky
Hodnota command
je null
.
Tato metoda není podporována u příkazů vázaných na mimoprocesová připojení.
Příklady
Následující příklad používá SqlConnection a SqlCommand k výběru řádků ze zdroje dat v uložené proceduře. Příklad pak použije SqlPipe příkaz ke spuštění příkazu a odeslání výsledků zpět klientovi.
[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
Poznámky
Kromě skutečných výsledků se přímo klientovi odesílají také další zprávy a chyby.
Výstupní parametry a návratové hodnoty nejsou odesílány klientovi; jsou volajícímu k dispozici prostřednictvím kolekce parametrů objektu příkazu.
Pokud příkaz není vázaný na připojení v rámci procesu, InvalidOperationException vyvolá se příkaz . Tato metoda není podporována u příkazů vázaných na mimoprocesová připojení.
Pokud dojde k chybám v objektu SqlCommand , který byl odeslán, jsou do kanálu odeslány výjimky, ale kopie se odešle také volání spravovaného kódu. Pokud volající kód výjimku nezachytí, rozšíří se zásobník do kódu Transact-SQL a ve výstupu se zobrazí dvakrát. Pokud volající kód výjimku zachytí, příjemce kanálu stále uvidí chybu, ale nedojde k duplicitní chybě.