[英]How to fix “SQL Server does not exist or access denied.” when connecting a Visual Studio C++ console app to a Microsoft SQL Server
我正在嘗試在 Visual Studio 2019 的控制台應用程序中連接 Microsoft SQL 服務器數據庫。
我收到一個錯誤:SQL 服務器不存在或訪問被拒絕。
我懷疑我可能有錯誤的連接字符串,所以我使用 SQLDriverConnect function 和 SQL_DRIVER_COMPLETE_REQUIRED 來提示 window 所以我可以手動 Z99938282F04071859941E18 連接哪個 ICFF8 服務器
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 的例外以及該站點的其他建議,但無濟於事。
https://www.sqlserverlogexplorer.com/database-does-not-exist-access-denied/
我知道連接存在,因為我能夠通過 SQL_DRIVER_COMPLETE_REQUIRED 參數進行連接,並且我還能夠通過工具 > 連接到數據庫在 Visual Studio 中手動加載數據庫。
我想手動將連接字符串放入代碼中,因為每次運行/調試程序時單擊提示的 window 到 select 是我想要的數據庫很不方便。
我只是通過刪除連接字符串中的地址和網絡來解決它。
SQLDriverConnect(SQLConnHandle, NULL, (SQLCHAR*)"DSN=JoelDB;UID=myID;PWD=myPW;WSID=JE-ACCOUNTS;DATABASE=myDB;", SQL_NTS, OutConString, 1024, NULL, SQL_DRIVER_NOPROMPT)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.