1. 程式人生 > 其它 >C++使用SQL Server 一:(程式設計方式)配置 ODBC 資料來源

C++使用SQL Server 一:(程式設計方式)配置 ODBC 資料來源

以程式設計方式配置 ODBC 資料來源

官方有講解的:資料來源:以程式設計方式配置 ODBC 資料來源 | Microsoft Docs

但是有些東西還是不太懂

經過測試,如下程式碼可以正常使用

#include <windows.h>
#include <odbcinst.h>   //windows.h必須位於odbcinst標頭檔案前面,且需要在專案中新增legacy_stdio_definitions.lib
#include <iostream>
int main() {
    /*
    hwndParent:指定為 ODBC 驅動程式管理器或特定 ODBC 驅動程式建立的任何對話方塊的所有者的視窗,以便從使用者處獲取有關新資料來源的其他資訊。 如果 lpszAttributes 引數不提供足夠的資訊,則會顯示一個對話方塊。 hwndParent 引數可能為 NULL
    fRequest:
        ODBC_ADD_DSN: 增加_個新資料來源
        ODBC_CONHG_DSN: 配置(修改)一個已經存在的資料來源
        ODBC_REMOVE_DSN: 刪除一個已經存在的資料來源
        ODBC_ADD_SYS_DSN: 增加一個新的系統資料來源
        ODBC_CONFIG_SYS_DSN: 更改一個已經存在的系統資料來源
        ODBC_REMOVE_SYS_DSN: 刪除一個已經存在的系統資料來源
    lpszDriver:是資料庫引擎名稱,也就是驅動程式名稱;在ODBC管理程式裡面可以看到
    lpszAttributes:格式為“keyname=value”的屬性列表。 這些字串由 null 終止符分隔,列表末尾有兩個連續 null 終止符。 這些屬性主要是預設的特定於驅動程式的條目,這些條目進入新資料來源的登錄檔中。 
    
*/ if (SQLConfigDataSource(nullptr, ODBC_ADD_DSN, L"SQL Server", //相關欄位名以及填寫要求可以參考:https://docs.microsoft.com/en-us/sql/relational-databases/native-client/applications/using-connection-string-keywords-with-sql-server-native-client?view=sql-server-ver16 L"DSN=my_sqlServer_1\0" L"Database=master\0
" L"Server=127.0.0.1\0" L"Description=TEST\0" L"Trusted_Connection=no" //yes:Windows 身份驗證模式進行登入驗證;no:使用 SQL Server 使用者名稱和密碼進行登入驗證,必須指定 UID 和 PWD 關鍵字 L"UID=sa\0" //L"PWD=Lovedan@971220\0" //測試證明,不能指定PWD,亦或者還有其他條件,但是我沒有找到。 )) { std::cout << "成功!" << std::endl;
//SQLConfigDataSource函式是可以多次呼叫的,不會因為DSN已存在就報錯的。 } else { std::cout << "失敗!" << std::endl; } }

以圖形介面方式配置資料來源

控制面板\系統和安全\管理工具