K něčemu takovému nepotřebujete úplnou implementaci webové služby. K odeslání požadavku na adresu URL můžete použít SQLCLR (SQL Server's .NET Integration), získat odpověď zpět v XML (pokud nenajdete knihovnu JSON, která bude fungovat bez nastaven na UNSAFE
) a poté tuto odpověď analyzujte.
Podívejte se na následující stránky MSDN:
- HttpWebRequest
- HttpWebResponse
- XmlDocument
- Uniknutí adresy:
- Pokud používáte SQL Server 2005, 2008 nebo 2008 R2, použijte Uri.EscapeDataString jak bylo k dispozici před .NET Framework v4.5
- Pokud používáte SQL Server 2012, 2014 nebo novější, můžete použít buď Uri.EscapeDataString, nebo, pokud byl server aktualizován alespoň na .NET Framework v4.5, můžete alternativně použít WebUtility.UrlEncode
Podle dokumentace Google Geocoding API , API URI by mělo být formátováno podobně jako následující:
https://maps.googleapis.com/maps/api/geocode/xml?address={EscapedAddress}&key={API_KEY}
Stačí to odeslat s těmito 2 proměnnými nahrazenými jejich správnými hodnotami prostřednictvím HttpWebRequest
a poté zavolejte HttpWebRequest.GetResponse
a poté zavolejte HttpWebResponse.GetResponseStream
. A to ne zapomeňte zavolat Close
a Dispose
metody HttpWebResponse
(nebo jej vytvořte instancí v using
blok)!!
Další poznámky:
- Pokud jste tak ještě neučinili, budete muset (jednorázově) povolit „integraci CLR“ na úrovni serveru:Povolení integrace CLR
- Nenastavujte databázi na
TRUSTWORTHY ON
. Stačí sestavu podepsat heslem a poté vytvořit asymetrický klíč vmaster
databázi tak, že ukážete na vaši podepsanou knihovnu DLL, poté vytvoříte přihlašovací jméno z tohoto asymetrického klíče a nakonec tomuto přihlášení udělíteUNSAFE ASSEMBLY
povolení. Poté můžete nastavit sestavuWITH PERMISSION_SET = EXTERNAL_ACCESS
. - Nepoužívejte postupy SP_OA*, jak je doporučuje uživatel3469363 . Tyto procedury automatizace OLE byly od SQL Server 2005 zastaralé a budou (doufejme) jednou (doufejme) odstraněny. Jsou také méně efektivní a méně bezpečné než SQLCLR.
- Ještě více poznámek lze nalézt v mé odpovědi na podobnou otázku na DBA.StackExchange: Přenesení dat webových služeb na SQL server