Aracılığıyla paylaş


SqlPipe.ExecuteAndSend(SqlCommand) Yöntem

Tanım

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.

Şunlara uygulanır