SQLRemoveDriver 函式
一致性
引進的版本:ODBC 3.0
摘要
SQLRemoveDriver 會從系統資訊中的 Odbcinst.ini 專案變更或移除驅動程式的相關資訊。
語法
BOOL SQLRemoveDriver(
LPCSTR lpszDriver,
BOOL fRemoveDSN,
LPDWORD lpdwUsageCount);
引數
lpszDriver
[輸入]在系統資訊之 Odbcinst.ini 索引鍵中註冊的驅動程式名稱。
fRemoveDSN
[輸入]有效值為:
TRUE:移除與 lpszDriver 中指定的 驅動程式相關聯的 DSN。 FALSE:請勿移除與 lpszDriver 中指定的 驅動程式相關聯的 DSN。
lpdwUsageCount
[輸出]呼叫此函式之後驅動程式的使用計數。
傳回
如果函式成功,則傳回 TRUE,如果失敗,則傳回 FALSE。 如果呼叫此函式時系統資訊中沒有任何專案存在,則函式會傳回 FALSE。
診斷
當 SQLRemoveDriver 傳回 FALSE 時 ,可以呼叫 SQLInstallerError 來取得相關聯的 *pfErrorCode 值。 下表列出 SQLInstallerError 可傳 回的 *pfErrorCode 值,並說明此函式內容中的每個值。
*pfErrorCode | 錯誤 | 描述 |
---|---|---|
ODBC_ERROR_GENERAL_ERR | 一般安裝程式錯誤 | 發生錯誤,沒有特定的安裝程式錯誤。 |
ODBC_ERROR_COMPONENT_NOT_FOUND | 登錄中找不到元件 | 安裝程式無法移除驅動程式資訊,因為它不存在於登錄中或登錄中找不到。 |
ODBC_ERROR_INVALID_NAME | 不正確驅動程式或翻譯工具名稱 | lpszDriver 引數無效。 |
ODBC_ERROR_USAGE_UPDATE_FAILED | 無法遞增或遞減元件使用量計數 | 安裝程式無法遞減驅動程式的使用計數。 |
ODBC_ERROR_REQUEST_FAILED | 要求失敗 | fRemoveDSN 引數為 TRUE;不過,無法移除一或多個 DSN。 呼叫 具有ODBC_REMOVE_DRIVER要求的 SQLConfigDriver 失敗。 |
ODBC_ERROR_OUT_OF_MEM | 記憶體不足 | 由於記憶體不足,安裝程式無法執行函式。 |
註解
SQLRemoveDriver 可 補充 SQLInstallDriverEx 函式,並更新系統資訊中的元件使用計數。 此函式只能從安裝應用程式呼叫。
SQLRemoveDriver 會將元件使用量計數值遞減 1。 如果元件使用量計數移至 0,就會發生下列情況:
將會呼叫具有 ODBC_REMOVE_DRIVER 選項的 SQLConfigDriver 函式。 如果 fRemoveDSN 選項設定為 TRUE, ConfigDSN 函式會呼叫 SQLRemoveDSNFromIni ,以移除與 lpszDriver 中指定的 驅動程式相關聯的所有資料來源。 如果 fRemoveDSN 選項設定為 FALSE,將不會刪除資料來源。
系統會移除系統資訊中的驅動程式專案。 驅動程式專案位於下列系統資訊位置的驅動程式名稱底下:
HKEY_LOCAL_MACHINE
SOFTWARE
ODBC
Odbcinst.ini
SQLRemoveDriver 實際上不會移除任何檔案。 呼叫程式負責刪除檔案,並維護檔案使用量計數。 只有在元件使用量計數和檔案使用計數都達到零之後,才會實際刪除檔案。 元件中的某些檔案可以刪除,而其他檔案則無法刪除,視其他已遞增檔案使用量計數的應用程式是否使用檔案而定。
SQLRemoveDriver 也稱為升級程式的一部分。 如果應用程式偵測到它必須執行升級,且先前已安裝驅動程式,則應該移除驅動程式,然後重新安裝。 應先呼叫 SQLRemoveDriver 以遞減元件使用量計數,然後 呼叫 SQLInstallDriverEx 以遞增元件使用量計數。 應用程式安裝程式必須將舊檔案取代為新的檔案。 檔案使用計數會維持不變,而使用舊版檔案的其他應用程式現在會使用較新版本。
相關函數
如需下列資訊 | 請參閱 |
---|---|
新增、修改或移除驅動程式 | ConfigDriver (在安裝 DLL 中) |
新增、修改或移除驅動程式 | SQLConfigDriver |
安裝驅動程式 | SQLInstallDriverEx |