Untuk hal seperti ini, Anda tidak memerlukan implementasi layanan web lengkap. Anda dapat menggunakan SQLCLR (SQL Server's .NET Integration) untuk mengirimkan permintaan ke URL, mendapatkan respons kembali dalam XML (kecuali jika Anda dapat menemukan pustaka JSON yang akan berfungsi tanpa disetel ke UNSAFE
), lalu uraikan respons tersebut.
Lihat halaman MSDN berikut:
- HttpWebRequest
- HttpWebResponse
- XmlDocument
- Untuk keluar dari alamat:
- Jika Anda menggunakan SQL Server 2005, 2008, atau 2008 R2, gunakan Uri.EscapeDataString karena tersedia sebelum .NET Framework v4.5
- Jika Anda menggunakan SQL Server 2012, 2014, atau yang lebih baru, Anda dapat menggunakan Uri.EscapeDataString atau, jika server telah diperbarui ke setidaknya .NET Framework v4.5, Anda dapat menggunakan WebUtility.UrlEncode
Menurut dokumentasi Google Geocoding API , URI API harus diformat seperti berikut:
https://maps.googleapis.com/maps/api/geocode/xml?address={EscapedAddress}&key={API_KEY}
Kirimkan saja dengan 2 variabel yang diganti dengan nilai yang tepat melalui HttpWebRequest
, lalu panggil HttpWebRequest.GetResponse
, lalu panggil HttpWebResponse.GetResponseStream
. Dan jangan jangan lupa untuk memanggil Close
dan Dispose
metode HttpWebResponse
(atau instantiate dalam using
blok)!!
Catatan tambahan:
- Jika belum selesai, Anda harus mengaktifkan (satu kali) "Integrasi CLR" di tingkat server:Mengaktifkan Integrasi CLR
- Jangan mengambil jalan mudah dan atur database ke
TRUSTWORTHY ON
. Cukup tanda tangani majelis dengan kata sandi, lalu buat kunci asimetris dimaster
database dengan menunjuk ke DLL yang Anda tandatangani, lalu buat login dari kunci asimetris itu, dan terakhir berikan login ituUNSAFE ASSEMBLY
izin. Kemudian Anda dapat mengatur perakitanWITH PERMISSION_SET = EXTERNAL_ACCESS
. - Jangan gunakan prosedur SP_OA* seperti disarankan oleh pengguna3469363 . Prosedur OLE Automation tersebut telah ditinggalkan sejak SQL Server 2005 dan (semoga) akan dihapus suatu hari nanti (semoga segera). Mereka juga kurang efisien dan kurang aman dibandingkan SQLCLR.
- Lebih banyak catatan dapat ditemukan dalam jawaban saya untuk pertanyaan serupa di DBA.StackExchange: Membawa data layanan web ke server SQL