Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Соответствия
Представлена версия: 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_MACHINESOFTWAREODBCOdbcinst.ini
SQLRemoveDriver не удаляет файлы. Вызывающая программа отвечает за удаление файлов и обслуживание количества использования файлов. Только после того, как количество использования компонентов и число использования файлов достигло нуля, файл физически удален. Некоторые файлы в компоненте можно удалить, а другие — не удаляться, в зависимости от того, используются ли файлы другими приложениями, которые увеличивают число использования файлов.
SQLRemoveDriver также называется частью процесса обновления. Если приложение обнаруживает, что он должен выполнить обновление, и он ранее установил драйвер, драйвер должен быть удален, а затем переустановлен. Сначала необходимо вызвать SQLRemoveDriver для уменьшения количества использования компонентов, а затем вызывать SQLInstallDriverEx, чтобы увеличить число использования компонентов. Программа установки приложения должна заменить старые файлы новыми файлами. Количество использования файлов останется прежним, а другие приложения, использующие старые файлы версий, теперь будут использовать более новую версию.
Связанные функции
| Сведения | Раздел |
|---|---|
| Добавление, изменение или удаление драйвера | ConfigDriver (в библиотеке DLL установки) |
| Добавление, изменение или удаление драйвера | SQLConfigDriver |
| Установка драйвера | SQLInstallDriverEx |