SQLConfigDriver 函式
一致性
引進的版本:ODBC 2.5
摘要
SQLConfigDriver 會載入適當的驅動程式設定 DLL,並呼叫 ConfigDriver 函 式。
您也可以使用 ODBCCONF.EXE 存取 SQLConfigDriver 的功能 。
語法
BOOL SQLConfigDriver(
HWND hwndParent,
WORD fRequest,
LPCSTR lpszDriver,
LPCSTR lpszArgs,
LPSTR lpszMsg,
WORD cbMsgMax,
WORD * pcbMsgOut);
引數
hwndParent
[輸入]父視窗控制碼。 如果控制碼為 Null,函式將不會顯示任何對話方塊。
fRequest
[輸入]要求的類型。 fRequest 必須包含下列其中一個值:
ODBC_CONFIG_DRIVER:變更驅動程式所使用的連線共用逾時。
ODBC_INSTALL_DRIVER:安裝新的驅動程式。
ODBC_REMOVE_DRIVER:移除現有的驅動程式。
這個選項也可以是驅動程式特定的,在此情況下 ,第一個選項的 fRequest 必須從 ODBC_CONFIG_DRIVER_MAX+1 開始。 任何其他選項的 fRequest 也必須從大於 ODBC_CONFIG_DRIVER_MAX+1 的值開始。
lpszDriver
[輸入]在系統資訊中註冊的驅動程式名稱。
lpszArgs
[輸入]Null 終止的字串,其中包含驅動程式特定 fRequest 的引數。
lpszMsg
[輸出]Null 終止的字串,其中包含來自驅動程式設定的輸出訊息。
cbMsgMax
[輸入]lpszMsg 的 長度。
oemMsgOut
[輸出]可用以 lpszMsg 傳 回的位元組總數。 如果可用的位元組數目大於或等於 cbMsgMax ,則 lpszMsg 中的 輸出訊息會截斷為 cbMsgMax 減去 null 終止字元。 oemMsgOut 引數可以是 Null 指標。
傳回
如果函式成功,則傳回 TRUE,如果失敗,則傳回 FALSE。
診斷
當 SQLConfigDriver 傳回 FALSE 時 ,可以呼叫 SQLInstallerError 來取得相關聯的 *pfErrorCode 值。 下表列出 SQLInstallerError 可傳 回的 *pfErrorCode 值,並說明此函式內容中的每個值。
*pfErrorCode | 錯誤 | 描述 |
---|---|---|
ODBC_ERROR_GENERAL_ERR | 一般安裝程式錯誤 | 發生錯誤,沒有特定的安裝程式錯誤。 |
ODBC_ERROR_INVALID_BUFF_LEN | 不正確緩衝區長度 | lpszMsg 引數無效。 |
ODBC_ERROR_INVALID_HWND | 不正確視窗控制碼 | hwndParent 引數無效。 |
ODBC_ERROR_INVALID_REQUEST_TYPE | 要求類型無效 | fRequest 引數不是下列其中一項: ODBC_INSTALL_DRIVER ODBC_REMOVE_DRIVER fRequest 引數是小於或等於ODBC_CONFIG_DRIVER_MAX的驅動程式特定選項。 |
ODBC_ERROR_INVALID_NAME | 不正確驅動程式或翻譯工具名稱 | lpszDriver 引數無效。 在登錄中找不到它。 |
ODBC_ERROR_INVALID_KEYWORD_VALUE | 不正確關鍵字/值組 | lpszArgs 引數包含語法錯誤。 |
ODBC_ERROR_REQUEST_FAILED | 要求 失敗 | 安裝程式無法執行 fRequest 引數所要求的 作業。 對 ConfigDriver 的 呼叫 失敗。 |
ODBC_ERROR_LOAD_LIBRARY_FAILED | 無法載入驅動程式或翻譯工具設定程式庫 | 無法載入驅動程式設定程式庫。 |
ODBC_ERROR_OUT_OF_MEM | 記憶體不足 | 由於記憶體不足,安裝程式無法執行函式。 |
註解
SQLConfigDriver 可讓應用程式呼叫驅動程式的 ConfigDriver 常式,而不需要知道名稱並載入驅動程式特定的安裝 DLL。 安裝程式會在安裝驅動程式安裝程式 DLL 之後呼叫此函式。 呼叫程式應該注意,此函式可能無法供所有驅動程式使用。 在這種情況下,呼叫程式應該會繼續,而不會發生錯誤。
驅動程式特定選項
應用程式可以使用 fRequest 引數來要求驅動程式公開的驅動程式 特定功能。 第 一個選項的 fRequest 將會ODBC_CONFIG_DRIVER_MAX+1,而其他選項會從該值遞增 1。 驅動程式針對該函式所需的任何引數,都應該在傳入 lpszArgs 引數的 Null 終止字串中提供。 提供這類功能的驅動程式應該維護驅動程式特定選項的資料表。 選項應該完整記載于驅動程式檔中。 使用驅動程式特定選項的應用程式寫入器應該注意,這項使用會使應用程式變得不那麼互通。
設定連線共用逾時
當您設定驅動程式的組態時,可以設定連線共用逾時屬性。 使用 fRequest 的 fRequest ODBC_CONFIG_DRIVER 來呼叫 SQLConfigDriver ,並將 lpszArgs 設定為 CPTimeout 。 CPTimeout 會決定連接可以保留在連接集區中而不使用的時間週期。 逾時到期時,會關閉連線,並從集區中移除。 預設逾時為 60 秒。
當 呼叫 SQLConfigDriver 並將 fRequest 設定為ODBC_INSTALL_DRIVER或ODBC_REMOVE_DRIVER時,驅動程式管理員會載入適當的驅動程式設定 DLL 並呼叫 ConfigDriver 函 式。 使用 fRequest ODBC_CONFIG_DRIVER 呼叫 SQLConfigDriver 時 ,所有處理都會在 ODBC 安裝程式中執行,因此驅動程式設定 DLL 不需要載入。
訊息
驅動程式設定常式可以將文字訊息傳送至應用程式,作為 lpszMsg 緩衝區中 以 Null 終止的字串。 如果訊息大於或等於 cbMsgMax 字元,就會被 ConfigDriver 函 式截斷 為 null 終止字元 。
相關函數
如需下列資訊 | 請參閱 |
---|---|
新增、修改或移除驅動程式 | ConfigDriver (在安裝 DLL 中) |
移除預設資料來源 | SQLRemoveDefaultDataSource |