2010-03-30 37 views
11

我需要從C++的Linux向SQL Server數據庫寫入一些數據。C++從Linux到SQL Server的訪問

我發現這個sqlapi.com

但我認爲,在第一次ODBC驅動程序必須安裝,並有工作。

我folowed這個 adminlife.net/allgemein/mssql-zugriff-unter-debian-etch-mit-unixodbc-und-freetds/ 或本 http://b.gil.megiteam.pl/2009/11/linux-odbc-to-mssql/

但沒有奏效。 1433端口似乎被關閉 ($ sudo的NMAP -PN -sU -p 192.168.56.101 1433 - >端口 「過濾」)

的isql -v SQLEXPRESS SA - >沒有響應等待或得到「couldn」 t連接到SQL「

從其他PC與Windows我沒有問題,在SQL Server中寫入數據, 因此,服務器應該正確配置爲遠程訪問。

任何想法?

回答

7

這裏是我書籤關於該主題的環節,希望它可以幫助你:

這是前一段時間,但基本上我記得的是:

你必須爲你創建在一個名爲/etc/odbcinst.ini文件中的特定MSSQL驅動程序的條目。然後,對於每個MSSQL服務器,您必須創建一個條目(或DSN),全球範圍爲/etc/odbc.ini或用戶本地,位於$ HOME/.odbc.ini

我使用的某些名稱可能會有所不同(我現在還沒有權限訪問我的Linux機器中的文件),但您已經瞭解了一般想法。

一旦你這樣做了,isql -d應該連接成功到數據庫。如果是這樣,那麼使用ODBC的C/Linux API應該是小菜一碟。在給定鏈接中提供的教程。

+0

哦,我記得一些調整,必須在MSSQL Server本身上完成。您必須允許TCP連接並使用登錄名/密碼進行訪問。 – ereOn 2010-03-30 14:25:05

4

FreeTDS是你想要的。 「FreeTDS是一套適用於Unix和Linux的庫,可讓您的程序與Microsoft SQL Server和Sybase數據庫本地通話。」

http://www.freetds.org

+0

對我來說沒有新東西,沒有幫助,我做了所有這一切,在我發佈的鏈接中有相同的程序。 – Meloun 2010-03-30 20:15:20

+0

如果您無法在SQL服務器框中找到打開的端口1433,那麼您遇到與您正在使用的庫無關的問題。 – Joe 2010-03-30 20:44:10

+0

http://www.freetds.org是一個死鏈接。 – rstackhouse 2015-02-27 21:44:02