Bagikan melalui


SqlPipe.ExecuteAndSend(SqlCommand) Metode

Definisi

Menjalankan perintah yang diteruskan sebagai parameter dan mengirim hasilnya ke klien.

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

Objek yang SqlCommand akan dieksekusi.

Pengecualian

command adalah null.

Metode ini tidak didukung pada perintah yang terikat ke koneksi di luar proses.

Contoh

Contoh berikut menggunakan SqlConnection dan SqlCommand untuk memilih baris dari sumber data dalam prosedur tersimpan. Contoh kemudian menggunakan SqlPipe untuk menjalankan perintah dan mengirim hasilnya kembali ke klien.

[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

Keterangan

Selain hasil aktual, pesan dan kesalahan lain juga dikirim langsung ke klien.

Parameter output dan nilai pengembalian tidak dikirim ke klien; ini tersedia untuk pemanggil, melalui kumpulan parameter objek perintah.

Jika perintah tidak terikat ke koneksi dalam proses, akan InvalidOperationException dilemparkan. Metode ini tidak didukung pada perintah yang terikat ke koneksi di luar proses.

Jika ada kesalahan dalam SqlCommand objek yang dikirimkan, pengecualian dikirim ke pipa, tetapi salinan juga dikirim ke panggilan kode terkelola. Jika kode panggilan tidak menangkap pengecualian, kode tersebut akan menyebarkan tumpukan ke kode Transact-SQL dan muncul dalam output dua kali. Jika kode panggilan menangkap pengecualian, konsumen pipa masih akan melihat kesalahan, tetapi tidak akan ada kesalahan duplikat.

Berlaku untuk