Функция SQLRemoveDriver
Соответствия
Представлена версия: ODBC 3.0
Сводка
SQLRemoveDriver изменяет или удаляет сведения о драйвере из записи Odbcinst.ini в системной информации.
Синтаксис
BOOL SQLRemoveDriver(
LPCSTR lpszDriver,
BOOL fRemoveDSN,
LPDWORD lpdwUsageCount);
Аргументы
lpszDriver
[Входные данные] Имя драйвера, зарегистрированного в ключе Odbcinst.ini системной информации.
fRemoveDSN
[Входные данные] Допустимые значения:
TRUE: удаление ДОМЕННЫХ имен, связанных с драйвером, указанным в lpszDriver. FALSE: не удаляйте доменные сети, связанные с драйвером, указанным в lpszDriver.
lpdwUsageCount
[Выходные данные] Количество использования драйвера после вызова этой функции.
Возвраты
Функция возвращает значение TRUE, если оно выполнено успешно, значение FALSE, если оно завершается ошибкой. Если запись не существует в системной информации при вызове этой функции, функция возвращает значение FALSE.
Диагностика
Когда SQLRemoveDriver возвращает ЗНАЧЕНИЕ FALSE, связанное значение *pfErrorCode можно получить путем вызова SQLInstallerError. В следующей таблице перечислены значения *pfErrorCode , которые можно возвращать SQLInstallerError и объясняет каждый из них в контексте этой функции.
*pfErrorCode | Error | Description |
---|---|---|
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; однако не удалось удалить один или несколько доменных имен. Вызов SQLConfigDriver с ошибкой запроса ODBC_REMOVE_DRIVER. |
ODBC_ERROR_OUT_OF_MEM | Недостаточно памяти | Установщик не мог выполнить функцию из-за нехватки памяти. |
Комментарии
SQLRemoveDriver дополняет функцию SQLInstallDriverEx и обновляет количество использования компонентов в системных сведениях. Эта функция должна вызываться только из приложения установки.
SQLRemoveDriver уменьшает значение количества использования компонентов на 1. Если число использования компонентов переходит к 0, произойдет следующее:
Будет вызвана функция SQLConfigDriver с параметром ODBC_REMOVE_DRIVER. Если для параметра fRemoveDSN задано значение TRUE, функция ConfigDSN вызывает SQLRemoveDSNFromIni, чтобы удалить все источники данных, связанные с драйвером, указанным в lpszDriver.Если параметр fRemoveDSN имеет значение FALSE, источники данных не будут удалены.
Запись драйвера в системной информации будет удалена. Запись драйвера находится в следующем системном расположении под именем драйвера:
HKEY_LOCAL_MACHINE
SOFTWARE
ODBC
Odbcinst.ini
SQLRemoveDriver не удаляет файлы. Вызывающая программа отвечает за удаление файлов и обслуживание количества использования файлов. Только после того, как количество использования компонентов и число использования файлов достигло нуля, файл физически удален. Некоторые файлы в компоненте можно удалить, а другие — не удаляться, в зависимости от того, используются ли файлы другими приложениями, которые увеличивают число использования файлов.
SQLRemoveDriver также называется частью процесса обновления. Если приложение обнаруживает, что он должен выполнить обновление, и он ранее установил драйвер, драйвер должен быть удален, а затем переустановлен. Сначала необходимо вызвать SQLRemoveDriver для уменьшения количества использования компонентов, а затем вызывать SQLInstallDriverEx, чтобы увеличить число использования компонентов. Программа установки приложения должна заменить старые файлы новыми файлами. Количество использования файлов останется прежним, а другие приложения, использующие старые файлы версий, теперь будут использовать более новую версию.
Связанные функции
Сведения | Раздел |
---|---|
Добавление, изменение или удаление драйвера | ConfigDriver (в библиотеке DLL установки) |
Добавление, изменение или удаление драйвера | SQLConfigDriver |
Установка драйвера | SQLInstallDriverEx |