2014-08-27 196 views
-2

我有一個數據庫充滿了IP地址,並希望添加與每個IP地圖的國家的兩個字母Iso區域名稱的另一列。 Hostip使得爲每個IP獲取國家相當容易,但我不確定如何閱讀以下URL在SQL中返回的內容。SQL IP地址到國家代碼

http://api.hostip.info/country.php?ip= {{一些IP}}

+0

這是一個簡單的字符串?您需要編寫一個腳本來調用您的每個IP地址的url,並使用結果相應地更新記錄。你不會說你正在使用哪個版本的SQL服務器,有可能從SQL內部進行更新,所以請看這個鏈接指針。 http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=111356 – 2014-08-27 20:52:35

+0

您是否熟悉任何腳本語言或SSIS? – christiandev 2014-08-27 21:18:12

+0

我通過C#將記錄插入到數據庫中,所以我想我只會使用腳本來添加該列。我只是想知道是否有一種簡單的方法可以在SQL Server中單獨執行。 – 4815162342 2014-08-27 21:29:53

回答

0

要調用SQL Server中的Web服務。不是數據庫設計的東西,但它可以完成:請參閱Omar Frometa的the tutorial。 SQL Server的指令從第5步開始。

但是,我認爲用編程語言提取IP地址,調用web服務,然後將國家代碼返回到SQL Server會好得多。

+0

我通過C#將記錄插入到數據庫中,所以我想我只是使用腳本來添加該列。我只是想知道是否有一種簡單的方法可以在SQL Server中單獨執行。 – 4815162342 2014-08-27 21:30:13

+0

SQL Server是難以實現的方式。這是一種數據庫語言,而不是一般的編程語言。你最好在C#中調用webservice。 – 2014-08-28 13:25:16

0

下面是一個使用sp_OACreate程序從存儲過程中調用Web服務的一個例子:

http://www.codeproject.com/Articles/428200/How-to-invoke-a-Web-Service-from-a-Stored-Procedur

sp_OACreate不一定做的事情中最穩定的或支持的方式,所以這是真的只是一個例證,而不是一個建議。

如果你想追求這個選項,你可以創建存儲過程並調用你的web服務,然後用存儲過程的結果更新你的表。

但是,如果從您的C#程序插入IP地址,那麼您應該從那裏進行操作。

+0

是的,我最終在C#中做到了,謝謝。 – 4815162342 2014-08-28 17:49:42