SqlPipe.ExecuteAndSend(SqlCommand) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.