Saya perlu menggunakan DLL pihak ketiga dalam memicu kode c # di SQL Server CLR
Tetapi ketika saya mencoba untuk menambahkan referensi itu hanya menunjukkan beberapa DLL dari SQL Server.
Bagaimana saya bisa menambahkan dll pihak ketiga saya ke SQL Server?
sql-server
c#
sql-clr
Solomon Rutzky
sumber
sumber
Jawaban:
Anda hanya dapat menambahkan referensi ke majelis-majelis yang telah terdaftar di Sql Server. Jika mereka tidak terdaftar, mereka tidak akan muncul di dialog Tambah Referensi.
Ada beberapa langkah yang perlu Anda lakukan untuk mendaftarkan DLL, pertama Anda harus mengkonfigurasi ulang basis data Anda:
Setelah ini selesai, Sql Server diaktifkan CLR. Selanjutnya, Anda harus mendaftarkan majelis Anda:
Jika skrip terakhir ini berjalan dengan benar, majelis sekarang terdaftar, dan akan muncul di dialog Tambah Referensi.
Yang perlu Anda pertimbangkan adalah keamanan aplikasi konfigurasi Sql Server CLR Anda:
SAFE
, hanya dalam keadaan luar biasa Anda dapat menggunakanEXTERNAL_ACCESS
atauUNSAFE
.Assembly.Load()
yang sengaja dibatasi.UNSAFE
.context connection = true;
) berjalan dalam konteks pengguna yang terhubung, jadi Anda perlu memastikan bahwa Anda mengetahui akses apa yang dimiliki pustaka ke data Anda.sumber
Saya berasumsi Anda bertanya tentang alternatif untuk menginstal Majelis SQL CLR dari Visual Studio.
Tidak diperlukan kode di Visual Studio.
Menyebarkan Objek Database CLR pada MSDN merinci opsi, termasuk pernyataan SQL dan skrip penerapan.
sumber
Saya menggunakan DLL pihak ke-3 yang sangat besar yang mengambil halaman web dan mengubahnya menjadi PDF.
PDF disimpan pada berbagi file dan database diperbarui untuk lokasi dan jenisnya.
Ini adalah proses 3 langkah:
Buat aplikasi konsol yang menggunakan DLL pihak ketiga untuk membuat PDF dan menerima URL dan FilePath sebagai parameter dan mengembalikan ukuran PDF serta jumlah halaman.
Buat prosedur tersimpan CLR yang kemudian memanggil aplikasi konsol di server
Saya membungkus ini semua menjadi satu prosedur tersimpan yang memanggil aplikasi CLR untuk membuat PDF dan kemudian saya menulis meta-data tentang itu ke database.
Saya menyadari ini tidak sempurna dan tidak berarti Anda harus melakukan sesuatu yang begitu gila di dalam pemicu!
Saya hanya menyebutkannya di sini untuk orang lain dengan pertanyaan tentang penggunaan DLL Pihak ke-3 di CLR mereka.
Harapan saya adalah dengan memutar konsol cmd.exe untuk menjalankan DLL Pihak ke-3, alih-alih menjalankan semuanya di-proc, jika crash, itu tidak akan terlalu mempengaruhi SQL Server. Itulah yang saya harap.
Berikan komentar jika ini adalah pendekatan yang sangat buruk dan mengapa.
sumber