将Visual Studio C ++控制台应用程序连接到Microsoft SQL Server时如何解决“ SQL Server不存在或访问被拒绝。”

我正在尝试在Visual Studio 2019的控制台应用程序中连接microsoft SQL Server数据库。

我收到错误消息:SQL Server不存在或访问被拒绝。

我怀疑我的连接字符串可能不正确,因此我将SQLDriverConnect函数与SQL_DRIVER_COMPLETE_REQUIRED结合使用来提示窗口,因此我可以手动选择要连接的服务器。

SQLDriverConnect(SQLConnHandle,desktopHandle,(SQLCHAR*)"",SQL_NTS,OutConString,1024,NULL,SQL_DRIVER_COMPLETE_REQUIRED)

注意:OutConnectionString是第5个参数,InConnectionString是第3个参数

有了这个,我可以打印返回到OutConnectionString的连接字符串,也可以访问数据库并打印其内容。

但是当我尝试将OutConnectionString复制到InConnectionString时,它仍然返回相同的错误。

SQLDriverConnect(SQLConnHandle,(SQLCHAR*)"Dsn=JoelDB;UID=myID;PWD=myPW;WSID=JE-accOUNTS;DATABASE=myDB;Network=DBMSSOCN;Address=JE-accOUNTS\SQLEXPRESS,1433",SQL_DRIVER_NOPROMPT)

我已经尝试在Windows防火墙中为端口1433创建一个例外,以及本站点的其他建议,但无济于事。

https://www.sqlserverlogexplorer.com/database-does-not-exist-access-denied/

我知道该连接存在,因为我能够通过SQL_DRIVER_COMPLETE_REQUIRED参数进行连接,而且我还能够通过“工具”>“连接到数据库”在Visual Studio中手动加载数据库。

我想手动将连接字符串放入代码中,因为每次运行/调试程序时,在提示窗口中单击以选择所需的数据库是不方便的。

diegod3433 回答:将Visual Studio C ++控制台应用程序连接到Microsoft SQL Server时如何解决“ SQL Server不存在或访问被拒绝。”

我只是通过删除连接字符串中的地址和网络来解决它。

SQLDriverConnect(SQLConnHandle,NULL,(SQLCHAR*)"DSN=JoelDB;UID=myID;PWD=myPW;WSID=JE-ACCOUNTS;DATABASE=myDB;",SQL_NTS,OutConString,1024,SQL_DRIVER_NOPROMPT)
本文链接:https://www.f2er.com/3168607.html

大家都在问