SQLConfigDataSource 函式

一致性
引進的版本:ODBC 1.0

摘要
SQLConfigDataSource 會新增、修改或刪除資料來源。

您也可以使用 ODBCCONF.EXE 存取 SQLConfigDataSource 的功能

語法

  
BOOL SQLConfigDataSource(  
     HWND     hwndParent,  
     WORD     fRequest,  
     LPCSTR   lpszDriver,  
     LPCSTR   lpszAttributes);  

引數

hwndParent
[輸入]父視窗控制碼。 如果控制碼為 Null,函式將不會顯示任何對話方塊。

fRequest
[輸入]要求的類型。 fRequest 引數必須包含下列其中一個值:

ODBC_ADD_DSN:新增使用者資料來源。

ODBC_CONFIG_DSN:設定(修改)現有的使用者資料來源。

ODBC_REMOVE_DSN:移除現有的使用者資料來源。

ODBC_ADD_SYS_DSN:新增系統資料來源。

ODBC_CONFIG_SYS_DSN:修改現有的系統資料來源。

ODBC_REMOVE_SYS_DSN:移除現有的系統資料來源。

ODBC_REMOVE_DEFAULT_DSN:從系統資訊中移除預設資料來源規格區段。 (它也會從系統資訊中的 Odbcinst.ini 專案中移除預設驅動程式規格區段。此 fRequest 會執行與已被 取代的 SQLRemoveDefaultDataSource 函式相同的函式。指定此選項時,呼叫 SQLConfigDataSource 中的所有其他參數都應該是 Null;如果不是 Null,則會忽略它們。

lpszDriver
[輸入]驅動程式描述(通常是相關聯的 DBMS 名稱)向使用者呈現,而不是實體驅動程式名稱。

lpszAttributes
[輸入]以關鍵字/值組形式,以 Null 結束的屬性清單。 如需詳細資訊,請參閱 ConfigDSN

傳回

如果函式成功,則傳回 TRUE,如果失敗,則傳回 FALSE。 如果呼叫此函式時系統資訊中沒有任何專案存在,則函式會傳回 FALSE。

診斷

當 SQLConfigDataSource 傳回 FALSE 時 ,可以呼叫 SQLInstallerError 來取得相關聯的 *pfErrorCode 值。 下表列出 SQLInstallerError 可傳 回的 *pfErrorCode 值,並說明此函式內容中的每個值。

*pfErrorCode 錯誤 描述
ODBC_ERROR_GENERAL_ERR 一般安裝程式錯誤 發生錯誤,沒有特定的安裝程式錯誤。
ODBC_ERROR_INVALID_HWND 不正確視窗控制碼 hwndParent 引數無效或 Null。
ODBC_ERROR_INVALID_REQUEST_TYPE 要求類型無效 fRequest 引數不是下列其中一項:

ODBC_ADD_DSN ODBC_CONFIG_DSN ODBC_REMOVE_DSN ODBC_ADD_SYS_DSN ODBC_CONFIG_SYS_DSN ODBC_REMOVE_SYS_DSN ODBC_REMOVE_DEFAULT_DSN
ODBC_ERROR_INVALID_NAME 不正確驅動程式或翻譯工具名稱 lpszDriver 引數無效。 在登錄中找不到它。
ODBC_ERROR_INVALID_KEYWORD_VALUE 不正確關鍵字/值組 lpszAttributes 引數包含語法錯誤。
ODBC_ERROR_REQUEST_FAILED 要求 失敗 安裝程式無法執行 fRequest 引數所要求的 作業。 對 ConfigDSN 呼叫失敗。
ODBC_ERROR_LOAD_LIBRARY_FAILED 無法載入驅動程式或翻譯工具設定程式庫 無法載入驅動程式設定程式庫。
ODBC_ERROR_OUT_OF_MEM 記憶體不足 由於記憶體不足,安裝程式無法執行函式。

註解

SQLConfigDataSource 會使用 lpszDriver 的值 ,從系統資訊讀取驅動程式安裝 DLL 的完整路徑。 它會載入 DLL,並使用傳遞給它的相同引數呼叫 ConfigDSN

如果 SQLConfigDataSource 找不到或載入安裝程式 DLL,或使用者取消對話方塊,則會傳回 FALSE。 否則,它會傳回從 ConfigDSN 接收的狀態。

SQLConfigDataSource 會將 System DSN fRequest s 對應至 User DSN fRequest s (ODBC_ADD_SYS_DSN 至 ODBC_ADD_DSN、ODBC_CONFIG_SYS_DSN ODBC_CONFIG_DSN,並將 ODBC_REMOVE_SYS_DSN 對應至 ODBC_REMOVE_DSN)。 為了區分使用者和系統 DSN, SQLConfigDataSource 會根據下表設定安裝程式組態模式。 在傳回之前, SQLConfigDataSource 會將設定模式重設為 BOTHDSN。 ConfigDSN (由驅動程式實作)應該呼叫 SQLWriteDSNToIni SQLWritePrivateProfileString 以支援系統 DSN。 如需詳細資訊,請參閱 ConfigDSN 函式

fRequest 組態模式
ODBC_ADD_DSN USERDSN_ONLY
ODBC_CONFIG_DSN USERDSN_ONLY
ODBC_REMOVE_DSN USERDSN_ONLY
ODBC_ADD_SYS_DSN SYSTEMDSN_ONLY
ODBC_CONFIG_SYS_DSN SYSTEMDSN_ONLY
ODBC_REMOVE_SYS_DSN SYSTEMDSN_ONLY
如需下列資訊 請參閱
新增、修改或移除資料來源 ConfigDSN (在安裝 DLL 中)
從系統資訊中移除資料來源名稱 SQLRemoveDSNFromIni
將資料來源名稱新增至系統資訊 SQLWriteDSNToIni