Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda dapat menggunakan adaptor SQL dalam aplikasi .NET menggunakan model layanan WCF untuk memanggil fungsi skalar di SQL Server. Adaptor mengekspos fungsi skalar sebagai metode yang dapat dipanggil langsung di SQL Server. Untuk informasi selengkapnya tentang bagaimana adaptor mendukung fungsi skalar, lihat Menjalankan Fungsi Skalar di SQL Server menggunakan adaptor SQL.
Bagaimana Topik Ini Menunjukkan Pemanggilan Fungsi Skalar Menggunakan Model Layanan WCF
Topik ini menunjukkan cara memanggil fungsi GET_EMP_ID dalam database SQL Server. Fungsi GET_EMP_ID mengambil penunjukan karyawan dalam tabel Karyawan dan mengembalikan ID karyawan yang sesuai. Fungsi GET_EMP_ID dan tabel Karyawan dibuat dengan menjalankan skrip SQL yang disediakan dengan sampel. Untuk informasi selengkapnya, lihat Sampel Adaptor.
Tentang Contoh yang Digunakan dalam Topik ini
Contoh dalam topik ini memanggil fungsi skalar GET_EMP_ID pada tabel Karyawan. Fungsi GET_EMP_ID dan tabel Karyawan dibuat dengan menjalankan skrip SQL yang disediakan dengan sampel. Sampel, ScalarFunction_ServiceModel, yang berdasarkan topik ini, juga tersedia dalam sampel adaptor SQL. Untuk informasi selengkapnya, lihat Sampel Adaptor.
Kelas Klien WCF
Nama klien WCF yang dihasilkan untuk memanggil fungsi skalar di SQL Server menggunakan adaptor SQL tercantum dalam tabel berikut.
Objek Basis Data SQL Server | Nama Klien WCF |
---|---|
Fungsi bernilai skalar | ScalarFunctions_[SCHEMA]Client |
[SKEMA] = Kumpulan artefak SQL Server; misalnya, dbo.
Deklarasi Metode untuk Memanggil Fungsi Skalar
Tabel berikut ini memperlihatkan tanda tangan metode untuk operasi dasar pada tabel. Penanda untuk sebuah tampilan sama, kecuali bahwa namespace dan nama tampilan menggantikan yang ada pada tabel.
Operasi | Tanda Tangan Metode |
---|---|
Nama fungsi skalar | <publik><scalar_function_name>(param1, param2, …) return_type< |
< > retrun_type = Jenis pengembalian yang ditentukan dalam definisi fungsi
< > scalar_function_name = Nama fungsi skalar.
Sebagai contoh, kode berikut menunjukkan tanda tangan metode untuk kelas klien WCF yang dihasilkan untuk fungsi skalar GET_EMP_ID , dalam skema dbo, yang mengambil penandaan karyawan sebagai parameter dan mengembalikan ID karyawan (bilangan bulat).
public partial class ScalarFunctions_dboClient : System.ServiceModel.ClientBase<ScalarFunctions_dbo>, ScalarFunctions_dbo {
public System.Nullable<int> GET_EMP_ID(string emp_desig);
}
Dalam cuplikan ini, ScalarFunctions_dboClient adalah nama kelas WCF di SqlAdapterBindingClient.cs yang dihasilkan oleh Plug-in Tambahkan Referensi Layanan Adaptor.
Parameter untuk Memanggil Fungsi Skalar
Parameter untuk metode yang diekspos oleh adaptor SQL untuk memanggil fungsi skalar sama dengan parameter yang ditentukan dalam definisi fungsi skalar di SQL Server. Misalnya, parameter untuk memanggil fungsi skalar GET_EMP_ID adalah emp_desig yang digunakan untuk mengambil sebutan karyawan.
Sekali lagi, nilai pengembalian untuk fungsi skalar sama dengan nilai pengembalian yang ditentukan dalam definisi fungsi skalar di SQL Server. Misalnya, nilai pengembalian untuk fungsi GET_EMP_ID adalah ID karyawan dengan jenis bilangan bulat.
Membuat Klien WCF untuk Memanggil Fungsi Skalar
Serangkaian tindakan umum yang diperlukan untuk melakukan operasi di SQL Server menggunakan klien WCF melibatkan serangkaian tugas yang dijelaskan dalam Gambaran Umum Model Layanan WCF dengan Adaptor SQL. Bagian ini menjelaskan cara membuat klien WCF untuk memanggil fungsi skalar GET_EMP_ID .
Untuk membuat klien WCF
Buat proyek Visual C# di Visual Studio. Untuk topik ini, buat aplikasi konsol.
Hasilkan kelas klien WCF untuk fungsi skalar GET_EMP_ID . Untuk informasi selengkapnya tentang membuat kelas klien WCF, lihat Membuat Klien WCF atau Kontrak Layanan WCF untuk Artefak SQL Server.
Di Penjelajah Solusi, tambahkan referensi ke
Microsoft.Adapters.Sql
danMicrosoft.ServiceModel.Channels
.Buka Program.cs dan buat klien seperti yang dijelaskan dalam cuplikan di bawah ini.
ScalarFunctions_dboClient client = new ScalarFunctions_dboClient("SqlAdapterBinding_ScalarFunctions_dbo"); client.ClientCredentials.UserName.UserName = "<Enter user name here>"; client.ClientCredentials.UserName.Password = "<Enter password here>";
Dalam cuplikan ini,
ScalarFunctions_dboClient
adalah klien WCF yang ditentukan dalam SqlAdapterBindingClient.cs. File ini dihasilkan oleh Plugin Tambah Referensi Layanan Adapter.SqlAdapterBinding_ScalarFunctions_dbo
adalah nama konfigurasi titik akhir klien dan didefinisikan dalam app.config. File ini juga dihasilkan oleh Add Adapter Service Reference Plug-in dan berisi properti pengikatan dan pengaturan konfigurasi lainnya.Nota
Dalam cuplikan ini, Anda menggunakan alamat pengikatan dan titik akhir dari file konfigurasi. Anda juga dapat secara eksplisit menentukan nilai-nilai ini dalam kode Anda. Untuk informasi selengkapnya tentang berbagai cara menentukan pengikatan klien, lihat Mengonfigurasi Pengikatan Klien untuk Adaptor SQL.
Buka klien seperti yang dijelaskan dalam cuplikan di bawah ini:
try { Console.WriteLine("Opening Client..."); client.Open(); } catch (Exception ex) { Console.WriteLine("Exception: " + ex.Message); throw; }
Panggil fungsi GET_EMP_ID untuk mengambil ID untuk karyawan dengan penetapan sebagai "Manajer".
Console.WriteLine("Invoking the GET_EMP_ID function"); string emp_designation = "Manager"; try { System.Nullable<int> emp_id = client.GET_EMP_ID(emp_designation); Console.WriteLine("The Employee ID for the employee with 'Manager' designation is:" + emp_id); } catch (Exception e) { Console.WriteLine("Exception: " + e.Message); throw; }
Nota
Demi kesederhanaan, tabel Karyawan hanya memiliki satu karyawan dengan sebutan "Manajer". Jika tabel target Anda memiliki lebih banyak karyawan dengan penandaan yang sama, Anda harus menentukan fungsi yang sesuai.
Tutup klien seperti yang dijelaskan dalam cuplikan di bawah ini:
client.Close(); Console.WriteLine("Press any key to exit..."); Console.ReadLine();
Bangun proyek lalu jalankan. Aplikasi ini menampilkan ID karyawan karyawan dengan sebutan "Manajer".