Compartir a través de


Función SQLConfigDriver

Conformidad
Versión introducida: ODBC 2.5

Resumen
SQLConfigDriver carga el archivo DLL de instalación del controlador adecuado y llama a la función ConfigDriver .

También se puede acceder a la funcionalidad de SQLConfigDriver con ODBCCONF.EXE.

Sintaxis

  
BOOL SQLConfigDriver(  
     HWND     hwndParent,  
     WORD     fRequest,  
     LPCSTR   lpszDriver,  
     LPCSTR   lpszArgs,  
     LPSTR    lpszMsg,  
     WORD     cbMsgMax,  
     WORD *   pcbMsgOut);  

Argumentos

hwndParent
[Entrada] Identificador de ventana principal. La función no mostrará ningún cuadro de diálogo si el identificador es NULL.

fRequest
[Entrada] Tipo de solicitud. fRequest debe contener uno de los siguientes valores:

ODBC_CONFIG_DRIVER: cambia el tiempo de espera de agrupación de conexiones usado por el controlador.

ODBC_INSTALL_DRIVER: instala un nuevo controlador.

ODBC_REMOVE_DRIVER: quita un controlador existente.

Esta opción también puede ser específica del controlador, en cuyo caso la fRequest de la primera opción debe comenzar desde ODBC_CONFIG_DRIVER_MAX+1. La fRequest para cualquier opción adicional también debe comenzar a partir de un valor mayor que ODBC_CONFIG_DRIVER_MAX+1.

lpszDriver
[Entrada] Nombre del controlador tal y como está registrado en la información del sistema.

lpszArgs
[Entrada] Cadena terminada en null que contiene argumentos para un fRequest específico del controlador.

lpszMsg
[Salida] Cadena terminada en null que contiene un mensaje de salida de la configuración del controlador.

cbMsgMax
[Entrada] Longitud de lpszMsg.

pcbMsgOut
[Salida] Número total de bytes disponibles para devolver en lpszMsg. Si el número de bytes disponibles para devolver es mayor o igual que cbMsgMax, el mensaje de salida de lpszMsg se trunca a cbMsgMax menos el carácter de terminación null. El argumento pcbMsgOut puede ser un puntero nulo.

Devoluciones

La función devuelve TRUE si se realiza correctamente, FALSE si se produce un error.

Diagnóstico

Cuando SQLConfigDriver 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 de ellos en el contexto de esta función.

*pfErrorCode Error Descripción
ODBC_ERROR_GENERAL_ERR Error general del instalador Se produjo un error para el que no hubo ningún error de instalador específico.
ODBC_ERROR_INVALID_BUFF_LEN Longitud de búfer no válida El argumento lpszMsg no era válido.
ODBC_ERROR_INVALID_HWND Identificador de ventana no válido El argumento hwndParent no era válido.
ODBC_ERROR_INVALID_REQUEST_TYPE Tipo de solicitud no válido El argumento fRequest no era uno de los siguientes:

ODBC_INSTALL_DRIVER ODBC_REMOVE_DRIVER

El argumento fRequest era una opción específica del controlador que era menor o igual que ODBC_CONFIG_DRIVER_MAX.
ODBC_ERROR_INVALID_NAME Nombre de controlador o traductor no válido El argumento lpszDriver no era válido. No se encontró en el registro.
ODBC_ERROR_INVALID_KEYWORD_VALUE Pares de palabra clave-valor no válidos El argumento lpszArgs contenía un error de sintaxis.
ODBC_ERROR_REQUEST_FAILED Error de solicitud El instalador no pudo realizar la operación solicitada por el argumento fRequest . Error en la llamada a ConfigDriver .
ODBC_ERROR_LOAD_LIBRARY_FAILED No se pudo cargar el controlador ni la biblioteca de instalación del traductor No se pudo cargar la biblioteca de instalación del controlador.
ODBC_ERROR_OUT_OF_MEM No hay memoria suficiente El instalador no pudo realizar la función debido a una falta de memoria.

Comentarios

SQLConfigDriver permite a una aplicación llamar a la rutina ConfigDriver de un controlador sin tener que conocer el nombre y cargar el archivo DLL de instalación específico del controlador. Un programa de instalación llama a esta función después de instalar el archivo DLL de instalación del controlador. El programa de llamada debe tener en cuenta que es posible que esta función no esté disponible para todos los controladores. En tal caso, el programa de llamada debe continuar sin errores.

Opciones de Driver-Specific

Una aplicación puede solicitar características específicas del controlador expuestas por el controlador mediante el argumento fRequest . La fRequest de la primera opción será ODBC_CONFIG_DRIVER_MAX+1 y las opciones adicionales se incrementarán en 1 a partir de ese valor. Los argumentos requeridos por el controlador para esa función deben proporcionarse en una cadena terminada en null pasada en el argumento lpszArgs . Los controladores que proporcionan esta funcionalidad deben mantener una tabla de opciones específicas del controlador. Las opciones deben estar totalmente documentadas en la documentación del controlador. Los escritores de aplicaciones que usan opciones específicas del controlador deben tener en cuenta que este uso hará que la aplicación sea menos interoperable.

Establecer el tiempo de espera de agrupación de conexiones

Las propiedades de tiempo de espera de agrupación de conexiones se pueden establecer al establecer la configuración del controlador. Se llama a SQLConfigDriver con un fRequest de ODBC_CONFIG_DRIVER y lpszArgs establecido en CPTimeout. CPTimeout determina el período de tiempo que una conexión puede permanecer en el grupo de conexiones sin usarse. Cuando expira el tiempo de espera, la conexión se cierra y se quita del grupo. El tiempo de espera predeterminado es de 60 segundos.

Cuando se llama a SQLConfigDriver con fRequest establecido en ODBC_INSTALL_DRIVER o ODBC_REMOVE_DRIVER, el Administrador de controladores carga el archivo DLL de configuración del controlador adecuado y llama a la función ConfigDriver . Cuando se llama a SQLConfigDriver con un fRequest de ODBC_CONFIG_DRIVER, todo el procesamiento se realiza en el instalador ODBC, de modo que el archivo DLL de instalación del controlador no tenga que cargarse.

error de Hadoop

Una rutina de configuración del controlador puede enviar un mensaje de texto a una aplicación como cadenas terminadas en null en el búfer lpszMsg . El mensaje se truncará en cbMsgMax menos el carácter de terminación NULL por la función ConfigDriver si es mayor o igual que los caracteres cbMsgMax .

Para información acerca de Vea
Agregar, modificar o quitar un controlador ConfigDriver(en el archivo DLL de instalación)
Eliminación del origen de datos predeterminado SQLRemoveDefaultDataSource