问题 C ++从Linux访问SQL Server


我需要在C ++中从Linux向SQL Server数据库写一些数据。

我找到了这个 sqlapi.com

但我认为,首先必须安装ODBC驱动程序并且必须工作。

我接受了这个 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 1433 192.168.56.101 - > port“filtered”)

isql -v sqlexpress sa - >等待没有响应或得到“无法连接到SQL”

从其他带有Windows的PC我在SQL Server中写入数据没有问题, 所以服务器应该正确配置为远程访问。

有任何想法吗?


11983
2018-03-30 14:11


起源



答案:


以下是我为该主题添加书签的链接,希望它能为您提供帮助:

这是一段时间以前,但基本上我记得的是:

您必须为名为的文件中的特定MSSQL驱动程序创建一个条目 /etc/odbcinst.ini。然后,对于每个MSSQL服务器,您必须创建一个条目(或 DSN),无论是全球性的 /etc/odbc.ini或者用户本地的 $ HOME / .odbc.ini的

我使用的一些名称可能不同(我现在没有访问我的Linux盒子来检查),但你有一般的想法。

一旦你这样做, isql -d  应该成功连接到数据库。如果是这样,那么使用C / Linux API for ODBC应该是件小事。给定链接中提供的教程。


8
2018-03-30 14:20



哦,我记得必须在MSSQL Server上进行一些调整。您必须允许使用登录名/密码进行TCP连接和访问。 - ereOn


答案:


以下是我为该主题添加书签的链接,希望它能为您提供帮助:

这是一段时间以前,但基本上我记得的是:

您必须为名为的文件中的特定MSSQL驱动程序创建一个条目 /etc/odbcinst.ini。然后,对于每个MSSQL服务器,您必须创建一个条目(或 DSN),无论是全球性的 /etc/odbc.ini或者用户本地的 $ HOME / .odbc.ini的

我使用的一些名称可能不同(我现在没有访问我的Linux盒子来检查),但你有一般的想法。

一旦你这样做, isql -d  应该成功连接到数据库。如果是这样,那么使用C / Linux API for ODBC应该是件小事。给定链接中提供的教程。


8
2018-03-30 14:20



哦,我记得必须在MSSQL Server上进行一些调整。您必须允许使用登录名/密码进行TCP连接和访问。 - ereOn


FreeTDS就是你想要的。 “FreeTDS是一套适用于Unix和Linux的库,它允许您的程序本地与Microsoft SQL Server和Sybase数据库通信。”

http://www.freetds.org


4
2018-03-30 14:38



没什么新鲜的,没有帮助,我做了所有这些,我发布的链接有相同的程序.. - Meloun
如果在SQL服务器框上找不到端口1433,则表示您遇到与您正在使用的库无关的问题。 - Joe
freetds.org 是一个死链接。 - rstackhouse
但'www.freetds.org'不是。固定。 - Joe