Поделиться через


Функция 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, произойдет следующее:

  1. Будет вызвана функция SQLConfigDriver с параметром ODBC_REMOVE_DRIVER. Если для параметра fRemoveDSN задано значение TRUE, функция ConfigDSN вызывает SQLRemoveDSNFromIni, чтобы удалить все источники данных, связанные с драйвером, указанным в lpszDriver.Если параметр fRemoveDSN имеет значение FALSE, источники данных не будут удалены.

  2. Запись драйвера в системной информации будет удалена. Запись драйвера находится в следующем системном расположении под именем драйвера:

    HKEY_LOCAL_MACHINE

    SOFTWARE

    ODBC

    Odbcinst.ini

SQLRemoveDriver не удаляет файлы. Вызывающая программа отвечает за удаление файлов и обслуживание количества использования файлов. Только после того, как количество использования компонентов и число использования файлов достигло нуля, файл физически удален. Некоторые файлы в компоненте можно удалить, а другие — не удаляться, в зависимости от того, используются ли файлы другими приложениями, которые увеличивают число использования файлов.

SQLRemoveDriver также называется частью процесса обновления. Если приложение обнаруживает, что он должен выполнить обновление, и он ранее установил драйвер, драйвер должен быть удален, а затем переустановлен. Сначала необходимо вызвать SQLRemoveDriver для уменьшения количества использования компонентов, а затем вызывать SQLInstallDriverEx, чтобы увеличить число использования компонентов. Программа установки приложения должна заменить старые файлы новыми файлами. Количество использования файлов останется прежним, а другие приложения, использующие старые файлы версий, теперь будут использовать более новую версию.

Сведения Раздел
Добавление, изменение или удаление драйвера ConfigDriver (в библиотеке DLL установки)
Добавление, изменение или удаление драйвера SQLConfigDriver
Установка драйвера SQLInstallDriverEx