Compartir a través de


Función SQLRemoveDriver

Conformidad
Versión introducida: ODBC 3.0

Resumen
SQLRemoveDriver cambia o quita información sobre el controlador de la entrada de Odbcinst.ini en la información del sistema.

Sintaxis

  
BOOL SQLRemoveDriver(  
     LPCSTR   lpszDriver,  
     BOOL     fRemoveDSN,  
     LPDWORD  lpdwUsageCount);  

Argumentos

lpszDriver
[Entrada] Nombre del controlador como registrado en la clave de Odbcinst.ini de la información del sistema.

fRemoveDSN
[Entrada] Los valores válidos son:

TRUE: quite los DSN asociados al controlador especificado en lpszDriver. FALSE: no quite los DSN asociados al controlador especificado en lpszDriver.

lpdwUsageCount
[Salida] Recuento de uso del controlador después de llamar a esta función.

Devoluciones

La función devuelve TRUE si se ejecuta correctamente, FALSE si se produce un error. Si no existe ninguna entrada en la información del sistema cuando se llama a esta función, la función devuelve FALSE.

Diagnóstico

Cuando SQLRemoveDriver devuelve FALSE, se puede obtener un valor *pfErrorCode asociado mediante una llamada a SQLInstallerError. En la tabla siguiente se enumeran los valores *pfErrorCode que SQLInstallerError puede devolver y explica cada uno en el contexto de esta función.

*pfErrorCode Error Descripción
ODBC_ERROR_GENERAL_ERR Error general del instalador Error por el que no se produjo ningún error de instalador específico.
ODBC_ERROR_COMPONENT_NOT_FOUND Componente no encontrado en el Registro El instalador no pudo quitar la información del controlador porque no existía en el registro o no se encontró en el registro.
ODBC_ERROR_INVALID_NAME Nombre de controlador o traductor no válido El argumento lpszDriver no era válido.
ODBC_ERROR_USAGE_UPDATE_FAILED No se pudo incrementar ni disminuir el recuento de uso de componentes El instalador no pudo disminuir el número de uso del controlador.
ODBC_ERROR_REQUEST_FAILED Error en la solicitud El argumento fRemoveDSN era TRUE; sin embargo, no se pudieron quitar uno o varios DSN. Error en la llamada a SQLConfigDriver con la solicitud ODBC_REMOVE_DRIVER.
ODBC_ERROR_OUT_OF_MEM No hay memoria suficiente El instalador no pudo realizar la función debido a una falta de memoria.

Comentarios

SQLRemoveDriver complementa la función SQLInstallDriverEx y actualiza el recuento de uso de componentes en la información del sistema. Solo se debe llamar a esta función desde una aplicación de instalación.

SQLRemoveDriver disminuirá el valor de recuento de uso de componentes en 1. Si el recuento de uso de componentes va a 0, se producirá lo siguiente:

  1. Se llamará a la función SQLConfigDriver con la opción ODBC_REMOVE_DRIVER. Si la opción fRemoveDSN está establecida en TRUE, la función ConfigDSN llama a SQLRemoveDSNFromIni para quitar todos los orígenes de datos asociados al controlador especificado en lpszDriver. Si la opción fRemoveDSN está establecida en FALSE, los orígenes de datos no se eliminarán.

  2. Se quitará la entrada del controlador en la información del sistema. La entrada del controlador se encuentra en la siguiente ubicación de información del sistema, bajo el nombre del controlador:

    HKEY_LOCAL_MACHINE

    SOFTWARE

    ODBC

    Odbcinst.ini

SQLRemoveDriver no quita realmente ningún archivo. El programa de llamada es responsable de eliminar archivos y mantener el recuento de uso de archivos. Solo después de que el recuento de uso de componentes y el recuento de uso de archivos hayan alcanzado cero es un archivo eliminado físicamente. Algunos archivos de un componente se pueden eliminar y otros no eliminados, en función de si otras aplicaciones usan los archivos que han incrementado el número de uso de archivos.

SQLRemoveDriver también se denomina como parte de un proceso de actualización. Si una aplicación detecta que tiene que realizar una actualización y que ha instalado previamente el controlador, el controlador debe quitarse y volver a instalarlo. Primero se debe llamar a SQLRemoveDriver para disminuir el número de uso de componentes y, a continuación, se debe llamar a SQLInstallDriverEx para aumentar el número de uso de componentes. El programa de instalación de la aplicación debe reemplazar los archivos antiguos por los nuevos archivos. El recuento de uso de archivos seguirá siendo el mismo y otras aplicaciones que usan los archivos de versión anteriores ahora usarán la versión más reciente.

Para información acerca de Vea
Agregar, modificar o quitar un controlador ConfigDriver (en el archivo DLL de instalación)
Agregar, modificar o quitar un controlador SQLConfigDriver
Instalación de un controlador SQLInstallDriverEx