Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Resumen
En este artículo se muestra cómo confirmar que un controlador open Database Connectivity (ODBC) está instalado, registrado y configurado correctamente en un equipo Windows. Úselo cuando una aplicación no se pueda conectar a una base de datos, cuando un controlador ODBC no aparezca en el administrador de orígenes de datos ODBC o cuando reciba el error Data source name not found and no default driver specified (SQLSTATE IM002). Los pasos de comprobación abarcan las versiones de 32 bits y de 64 bits del Administrador de orígenes de datos ODBC, las entradas del nombre de origen de datos (DSN) y del controlador en el registro de Windows, y la cadena de conexión que la aplicación pasa al Administrador de controladores ODBC.
¿Qué versión del Administrador de orígenes de datos ODBC debe abrir?
En las versiones de 64 bits de Windows, hay dos copias del Administrador de orígenes de datos ODBC, y cada copia administra los controladores y los DSN del sistema que corresponden a su arquitectura de bits:
Para las aplicaciones de 64 bits, seleccione Windows+R y escriba ODBCAD32.EXE o C:\WINDOWS\SYSTEM32\ODBCAD32.EXE.
Para las aplicaciones de 32 bits, seleccione Windows+R y escriba C:\WINDOWS\SYSWOW64\ODBCAD32.EXE.
Ambos ejecutables se denominan odbcad32.exe, por lo que la ruta de acceso de la carpeta determina cuál se abre. Asegúrate siempre de que la herramienta coincida con la arquitectura de la aplicación que realiza la conexión. Una aplicación de 32 bits no puede cargar un controlador ODBC de 64 bits y una aplicación de 64 bits no puede cargar un controlador ODBC de 32 bits.
Ejemplo de cadena de conexión ODBC
Las aplicaciones que llaman a un controlador ODBC pueden usar nombres de origen de datos (DSN) o cadenas de conexión sin DSN. Estos son unos ejemplos:
driver={ODBC Driver 18 for SQL Server};server=sqlprod01;database=AdventureWorks;trusted_connection=yesdsn=userdsn1dsn=test;uid=<user name>;pwd=<password>
El primer cadena de conexión especifica explícitamente el nombre del controlador, el nombre del servidor, el nombre de la base de datos y si se debe usar la seguridad integrada (trusted_connection). Es una conexión sin DSN.
La segunda y la tercera cadena de conexión usan un DSN, que es una encapsulación de estos elementos almacenados en el registro. El nombre de usuario y la contraseña no se pueden almacenar en el DSN y deben especificarse explícitamente. Para obtener más información sobre los atributos de DSN, consulte DSN cadena de conexión atributo.
Un DSN es un acceso directo para que las aplicaciones carguen el controlador, lo que proporciona un nivel de direccionamiento indirecto. Mediante el uso de un DSN, puede cambiar el servidor, la base de datos e incluso el tipo de base de datos al que se conecta la aplicación sin cambiar la aplicación.
El nombre del controlador del cadena de conexión debe coincidir con el nombre de un controlador registrado en el equipo. Los nombres del controlador y del DSN no distinguen entre mayúsculas y minúsculas, pero la ortografía y la puntuación deben coincidir exactamente. Si no coincide ningún controlador registrado, el Administrador de controladores ODBC no puede cargar el controlador.
Nota:
El controlador SQL Server (sqlsrv32.dll) que se incluye con Windows y el controlador SQL Server Native Client (SQL Server Native Client 11.0) no se recomiendan para nuevos desarrollos.
SQL Server Native Client no se incluye con SQL Server 2022 (16.x) y versiones posteriores o SQL Server Management Studio 19 y versiones posteriores. Para las nuevas conexiones, use el controlador ODBC de Microsoft para SQL Server, que puede descargar para Windows, Linux y macOS.
Compruebe que el controlador y el DSN aparecen en el administrador del origen de datos ODBC.
Use el administrador de orígenes de datos ODBC para comprobar la presencia de controladores ODBC y DSN. Abra la versión que coincida con la arquitectura de su aplicación y, a continuación, compruebe la pestaña Controladores para verificar si el controlador figura en la lista. Las capturas de pantalla siguientes muestran controladores de 64 y 32 bits:
Si aparece el controlador, cree un DSN de prueba en la pestaña DSN del sistema o DSN de usuario y ejecute una prueba de conexión. Una prueba correcta confirma que el controlador se carga y que se puede acceder al servidor. Si el controlador no aparece en la lista, vuelva a instalar el controlador y, a continuación, compruebe las claves del Registro como se describe en la sección siguiente.
Información del controlador ODBC y del DSN en el registro
La información del controlador y del DSN se almacena en el registro:
En equipos de 64 bits, la redirección del Registro separa la información de 32 bits y de 64 bits para los controladores y los DSN del sistema. La Wow6432Node entrada del Registro almacena el controlador de 32 bits y la información de DSN del sistema. Los DSN de usuario no se redirigen, por lo que las herramientas de 32 y 64 bits muestran todos los DSN de usuario. Las claves pertinentes son:
-
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC(controladores de 64 bits y DSN del sistema) -
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC(controladores de 32 bits y DSN del sistema) -
HKEY_CURRENT_USER\Software\ODBC(DSN de usuario para el usuario actual)
La subclave ODBC.INI contiene una lista de todos los DSN y las subclaves correspondientes a cada DSN. La subclave ODBCINST.INI enumera todos los controladores.
Si hay un problema al cargar un controlador a través del DSN, compruebe la ODBC.INI subclave para averiguar qué controlador usa el DSN.
Confirme también que la ruta de acceso del controlador que aparece en ODBCINST.INI apunta a un archivo DLL que existe en el disco. Una entrada del Registro que hace referencia a un archivo DLL que falta o se mueve es una causa común de errores de carga después de una desinstalación, una actualización o una limpieza manual de archivos. Para conocer los nombres de archivo y las ubicaciones que instala el controlador ODBC de Microsoft para SQL Server, consulte Requisitos del sistema, instalación y archivos de controlador.
Nota:
La entrada de LastUser no afecta a la cadena de conexión. Solo se usa al probar el DSN en el administrador de orígenes de datos ODBC.
Solución de problemas de error IM002: No se encontró el nombre del origen de datos y no se ha especificado ningún controlador predeterminado.
Valide el nombre del servidor, el nombre de la base de datos y si el controlador está instalado. Si el controlador no se puede cargar, recibirá el siguiente mensaje de error:
ERROR [IM002] [Microsoft][ODBC Driver Manager] No se encontró el nombre del origen de datos y no se especificó ningún controlador predeterminado.
Este error significa que el Administrador de controladores ODBC no pudo resolver el nombre del controlador o DSN en el cadena de conexión. Compruebe los siguientes elementos en orden:
- El nombre de DSN de la cadena de conexión coincide con un DSN que aparece en el administrador de orígenes de datos ODBC.
- Se ha instalado un controlador de la misma arquitectura. Un DSN de usuario aparece tanto en las herramientas de 32 bits como en las de 64 bits, pero la conexión falla si el controlador al que apunta no está instalado para la arquitectura de la aplicación. Para obtener más información, vea Herramienta de administrador de ODBC que muestra los DSN de usuario de 32 bits y de 64 bits.
- El DSN del sistema se creó en la herramienta correspondiente a la arquitectura de la aplicación. Los DSN del sistema se redirigen al registro, por lo que un DSN del sistema creado en la herramienta de 64 bits no está disponible para una aplicación de 32 bits.
- El ámbito de DSN coincide con la cuenta que ejecuta la aplicación. Un DSN de usuario en
HKEY_CURRENT_USERno es visible para un servicio que se ejecuta en una cuenta diferente. Use un DSN del sistema para servicios y aplicaciones web. - El nombre del controlador en una cadena de conexión sin DSN coincide con un controlador que figura en la subclave
ODBCINST.INI.
Aunque la ruta del controlador en el DSN sea incorrecta, el administrador de controladores aún puede localizarlo en la subclave ODBCINST.INI a partir del nombre del controlador indicado en la clave del Registro Orígenes de datos ODBC.
Si el controlador se carga pero la conexión sigue fallando, el problema suele ser la red, la autenticación o el cifrado relacionados en lugar de un problema de instalación. Para esos síntomas, consulte Solución de problemas de conectividad en SQL Server.
Compatibilidad con controladores ODBC que no son de Microsoft
Para los controladores ODBC que no son de Microsoft, el soporte de Microsoft se limita a las siguientes acciones:
- Compruebe si las claves del Registro del controlador están presentes. Si no lo son, vuelva a instalar el controlador o consulte al proveedor.
- Compruebe si las rutas de acceso apuntan a un archivo DLL que existe. Si no lo hacen, vuelva a instalar el controlador o consulte al proveedor.
- Cree un DSN de prueba y realice una prueba de conexión.
- Ayude a capturar una traza de Process Monitor (Procmon) que el proveedor pueda analizar.
El comportamiento del controlador, los defectos del controlador y la lógica de instalación del controlador siguen siendo responsabilidad del proveedor que produjo el controlador.
Aviso de declinación de responsabilidades sobre la información de terceros
Los productos de terceros que describe este artículo son fabricados por empresas independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.