gpt4 book ai didi

c++ - 将 Visual Studio C++ 控制台应用程序连接到 Microsoft SQL Server 时如何修复 “SQL Server does not exist or access denied.”

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:49 25 4
gpt4 key购买 nike

我正在尝试在 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, NULL, (SQLCHAR*)"DSN=JoelDB;UID=myID;PWD=myPW;WSID=JE-ACCOUNTS;DATABASE=myDB;Network=DBMSSOCN;Address=JE-ACCOUNTS\SQLEXPRESS,1433", SQL_NTS, OutConString, 1024, NULL, SQL_DRIVER_NOPROMPT)

我已经尝试在 Windows 防火墙中为端口 1433 创建异常(exception)以及该站点的其他建议,但无济于事。

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

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

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

最佳答案

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

SQLDriverConnect(SQLConnHandle, NULL, (SQLCHAR*)"DSN=JoelDB;UID=myID;PWD=myPW;WSID=JE-ACCOUNTS;DATABASE=myDB;", SQL_NTS, OutConString, 1024, NULL, SQL_DRIVER_NOPROMPT)

关于c++ - 将 Visual Studio C++ 控制台应用程序连接到 Microsoft SQL Server 时如何修复 “SQL Server does not exist or access denied.”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58688522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com