0

我是 C++ 的初学者,我在 Linux 上使用 soci 库连接 SQL Server 的问题,我的代码是这个,但我有错误,我没有找到解决我的问题的方法,我的代码是:

我有错误:

[unixODBC][Driver Manager]Data source name not found, and no default driver specified (SQL state IM002)

这是代码:

try{
      soci::session sql("odbc","DSN=ODBC;UID=sa;PWD=sa123; Connection Driver=TDS;Database=ReportServer; Server=192.168.1.52;Port=1433;");
    }
    catch(soci::odbc_soci_error const & e){
        cout<<"start error";
        cout<<e.odbc_error_code()<<endl;
        cout<<e.what();            
    }
4

1 回答 1

0

您的 ODBC 连接字符串不正确,您的第一个参数指定了一个名为“ODBC”的数据源,您尚未在操作系统/odbc 管理器中配置该数据源。

因此,您应该使用给定参数配置数据源,例如UID=sa;PWD=sa123; Connection Driver=TDS;Database=ReportServer; Server=192.168.1.52;Port=1433;使用相应的 ODBC 数据源管理器/linux 管理程序,使用可用的名称,如“local_test_db”,只需使用“DSN=local_test_db”作为连接字符串

或(异或)

从连接字符串中删除“dsn=ODBC”部分并使用“UID=sa;PWD=sa123; Connection Driver=TDS;Database=ReportServer;Server=192.168.1.52;Port=1433;”再次尝试

于 2019-02-12T16:19:04.727 回答