2010-03-30 65 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