簡體   English   中英

如何修復“SQL Server 不存在或訪問被拒絕”。 將 Visual Studio C++ 控制台應用程序連接到 Microsoft SQL 服務器時

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM