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


Функция SQLRemoveDriverManager

Соответствия
Представлена версия: ODBC 3.0: устарела в Windows XP с пакетом обновления 2, Windows Server 2003 с пакетом обновления 1 и более поздними операционными системами.

Сводка
SQLRemoveDriverManager изменяет или удаляет сведения о основных компонентах ODBC из записи Odbcinst.ini в системной информации.

Синтаксис

  
BOOL SQLRemoveDriverManager(  
     LPDWORD     pdwUsageCount);  

Аргументы

pdwUsageCount
[Выходные данные] Количество использования диспетчера драйверов после вызова этой функции.

Возвраты

Функция возвращает значение TRUE, если оно выполнено успешно, значение FALSE, если оно завершается ошибкой. Если запись не существует в системной информации при вызове этой функции, функция возвращает значение FALSE.

Диагностика

Когда SQLRemoveDriverManager возвращает ЗНАЧЕНИЕ FALSE, связанное значение *pfErrorCode можно получить путем вызова SQLInstallerError. В следующей таблице перечислены значения *pfErrorCode , которые можно возвращать SQLInstallerError и объясняет каждый из них в контексте этой функции.

*pfErrorCode Error Description
ODBC_ERROR_GENERAL_ERR Общая ошибка установщика Произошла ошибка, для которой не было определенной ошибки установщика.
ODBC_ERROR_COMPONENT_NOT_FOUND Компонент не найден в реестре Установщик не мог удалить сведения диспетчера драйверов, так как он либо не существовал в реестре, либо не найден в реестре.
ODBC_ERROR_USAGE_UPDATE_FAILED Не удалось увеличить или открепить количество использования компонентов Установщику не удалось отреагрировать количество использования диспетчера драйверов.
ODBC_ERROR_OUT_OF_MEM Недостаточно памяти Установщик не мог выполнить функцию из-за нехватки памяти.

Комментарии

SQLRemoveDriverManager дополняет функцию SQLInstallDriverManager и обновляет количество использования компонентов в системных сведениях. Эта функция должна вызываться только из приложения установки.

SQLRemoveDriverManager уменьшает количество использования основных компонентов на 1. Если число использования компонента переходит к 0, данные системы входа будут удалены. Запись основного компонента находится в следующем расположении в системной информации в заголовке ODBC Core:

HKEY_LOCAL_MACHINE

SOFTWARE

ODBC

Odbcinst.ini

Внимание

Приложение не должно физически удалять файлы диспетчера драйверов, когда число использования компонентов и число использования файлов достигает нуля.

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

SQLRemoveDriverManager вызывается как часть процесса удаления. Основные компоненты ODBC (которые включают диспетчер драйверов, библиотеку курсоров, установщик, языковую библиотеку, администратор, файлы thunking и т. д.) удаляются в целом. Следующие файлы не удаляются при вызове SQLRemoveDriverManager в рамках процесса удаления:

ODBC32DLL
ODBCCR32.DLL
ODBCCU32.DLL
ODBCINT.DLL
ODBCTRAC.DLL
MSVCRT40.DLL
ODBCCP32.CPL

ODBCCP32.DLL
ODBC16GT.DLL
ODBC32GT.DLL
DS16GT.DLL
DS32GT.DLL
ODBCAD32.EXE

SQLRemoveDriverManager также называется частью процесса обновления. Если приложение обнаруживает, что он должен выполнить обновление, и он ранее установил драйвер, драйвер должен быть удален, а затем переустановлен.

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

Сведения Раздел
Установка диспетчера драйверов SQLInstallDriverManager