Für so etwas benötigen Sie keine vollständige Webdienstimplementierung. Sie können SQLCLR (die .NET-Integration von SQL Server) verwenden, um die Anfrage an die URL zu senden und die Antwort in XML zurückzuerhalten (es sei denn, Sie finden eine JSON-Bibliothek, die ohne funktioniert auf UNSAFE
gesetzt wird ), und parsen Sie dann diese Antwort.
Sehen Sie sich die folgenden MSDN-Seiten an:
- HttpWebRequest
- HttpWebResponse
- XmlDocument
- Um die Adresse zu maskieren:
- Wenn Sie SQL Server 2005, 2008 oder 2008 R2 verwenden, verwenden Sie Uri.EscapeDataString wie es vor .NET Framework v4.5 verfügbar war
- Wenn Sie SQL Server 2012, 2014 oder neuer verwenden, können Sie entweder Uri.EscapeDataString verwenden oder, wenn der Server mindestens auf .NET Framework v4.5 aktualisiert wurde, alternativ WebUtility.UrlEncode
Gemäß der Google Geocoding API-Dokumentation , sollte der API-URI ähnlich wie folgt formatiert sein:
https://maps.googleapis.com/maps/api/geocode/xml?address={EscapedAddress}&key={API_KEY}
Senden Sie das einfach mit diesen 2 Variablen, die durch ihre richtigen Werte ersetzt werden, über HttpWebRequest
, und rufen Sie dann HttpWebRequest.GetResponse
auf , und rufen Sie dann HttpWebResponse.GetResponseStream
auf . Und nicht vergessen, Close
aufzurufen und Dispose
Methoden von HttpWebResponse
(oder in einem using
instanziieren blockieren)!!
Zusätzliche Anmerkungen:
- Falls noch nicht geschehen, müssen Sie (einmalig) die "CLR-Integration" auf Serverebene aktivieren:CLR-Integration aktivieren
- Nehmen Sie nicht den einfachen Weg und stellen Sie die Datenbank auf
TRUSTWORTHY ON
. Signieren Sie einfach die Assembly mit einem Passwort und erstellen Sie dann einen asymmetrischen Schlüssel immaster
Datenbank, indem Sie auf Ihre signierte DLL verweisen, erstellen Sie dann ein Login aus diesem asymmetrischen Schlüssel und gewähren Sie diesem Login schließlich dieUNSAFE ASSEMBLY
Genehmigung. Dann können Sie die AssemblyWITH PERMISSION_SET = EXTERNAL_ACCESS
setzen . - Verwenden Sie die SP_OA*-Prozeduren nicht wie vom Benutzer 3469363 empfohlen . Diese OLE-Automatisierungsprozeduren sind seit SQL Server 2005 veraltet und werden (hoffentlich) eines Tages (hoffentlich bald) entfernt. Sie sind auch weniger effizient und weniger sicher als SQLCLR.
- Noch mehr Hinweise finden Sie in meiner Antwort auf eine ähnliche Frage zu DBA.StackExchange: Webdienstdaten in den SQL-Server bringen