SqlPipe.ExecuteAndSend(SqlCommand) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Parametre olarak geçirilen komutu yürütür ve sonuçları istemciye gönderir.
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)
Parametreler
- command
- SqlCommand
SqlCommand Yürütülecek nesne.
Özel durumlar
, command şeklindedir null.
Bu yöntem, işlem dışı bağlantılara bağlı komutlarda desteklenmez.
Örnekler
Aşağıdaki örnekte saklı yordamdaki bir veri kaynağından satır seçmek için ve SqlCommand kullanılırSqlConnection. Örnek daha sonra komutunu yürütmek ve sonuçları istemciye geri göndermek için bir SqlPipe kullanır.
[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
Açıklamalar
Gerçek sonuçlara ek olarak, diğer iletiler ve hatalar da doğrudan istemciye gönderilir.
Çıkış parametreleri ve dönüş değerleri istemciye gönderilmez; bunlar, komut nesnesinin parameters koleksiyonu aracılığıyla çağıran tarafından kullanılabilir.
Komut işlem içi bir bağlantıya bağlı değilse, bir InvalidOperationException oluşturulur. Bu yöntem, işlem dışı bağlantılara bağlı komutlarda desteklenmez.
Gönderilen nesnede SqlCommand hatalar varsa, kanala özel durumlar gönderilir, ancak yönetilen kodu çağırmaya da bir kopya gönderilir. Çağıran kod özel durumu yakalayamazsa, yığını Transact-SQL koduna yayacak ve çıkışta iki kez görünecektir. Çağıran kod özel durumu yakalarsa kanal tüketicisi hatayı görmeye devam eder, ancak yinelenen bir hata olmaz.