martes, 10 de enero de 2012

Driver ODBC 32 y 64 bits


Estoy preparándome un entorno de desarrollo para modificar un antiguo proyecto de Reporting Services que usa el conector de ODBC de MySQL.

Como estoy usando un Windows de 64 bits, me instalo el odbc de MySQL de 64 bits, hago la prueba y conecta bien a la base de datos.

El problema cuando intento usar el ODBC con el entorno de desarrollo BIDS (o Business Intelligence Development Studio), el plug-in de Visual Studio para Reporting Services.

Al intentar usarlo, me aparece el siguiente error:

“La arquitectura del DSN especificado no coincide entre el controlador y la aplicación”


El problema es que hemos instalado un ODBC de 64 bits  que usaremos en una aplicación de 32 bits.

Hay una forma de “bypassear” el problema.

La ubicación del Administrador de ODBC de 64 bits está en C:\Windows\System32\odbcad32.exe

Por compatibilidades, Windows 64 bits crea una carpeta SysWOW64 (Windows on Windows64) que contiene gran parte de aplicaciones de 32 bits para poder tener compatibilidad.

Por lo tanto, existe un Administrador de ODBC de 32 bits en C:\Windows\SysWOW64\odbcad32.exe

Cuando lo ejecutamos, en la carpeta controladores, vemos que el driver que tenemos de MySQL 64 bits no existe, y que tenemos los controladores de Access, Excel, TXT, etc.

Como solución final, ya os lo imagináis:

·         Borrar el ODBC

·         Borrar el driver de 64 bits de MySQL

·         Instalar el driver de 32 bits

·         Arrancar el administrador de ODBC de la carpeta C:\Windows\SysWOW64\odbcad32.exe

·         Crear un nuevo ODBC

Saludos.

9 comentarios:

Anónimo dijo...

Lo voy a probar tengo una interface en access que se conecta con tablas vinculadas atraves del odbc a mysql, hasta ahora lo habia montado en todos los sistemas operativos de windows sin problemas pero ayer me encontres con un windows 7 64, y hasta que no encontrado tu entrada estaba loco, buscando la solución, la pruebo y te cuento, GRACIAS

Juan Manuel Fenoll dijo...

Me alegro que te haya servido.

Saludos.

Luis... dijo...

Me sirvió.
Un millón de gracias.

Efectivamente es problema es usar un conector de 64 bits, con un MSAccess de 32 bits (en mi caso 2007), aunque el SO que lo soporte sea W7 64 bits..

Dentro de dos o tres años, cuando haya desaparecido todo el software de 32 bits el problema no llega a existir.

Anónimo dijo...

Dios graciiiasss.. tenia el mismo problema..

Anónimo dijo...

Espectacular solución!!!!!!!! 10000 GRACIAS!!!!!

Santi García

lukas dijo...

quiero aportar, este metodo no me ayudo completamente, ademas de hacer esto, tambien tuve que cambiar el JRE que se usaba en el proyecto:
en el proyecto de Java, en las propiedades, java build patch, add library, JRE, Installed JREs, search, y ahi busque la carpeta JAVA que esta en Archivos de programa(x86), (teniendo los JRE y JDK para 32bits de antemano) te busca los que tenes instalados y elegis uno, ejemplo, JRE 7, y ahi recien pude acceder a mi base de datos en access

Anónimo dijo...


Jesus
Hola he revisado vuestros comentarios y he intentado realizarlo con una BBDD de access 2010 y el ODBC me lo crea pero el programa de .net realizado en 32 bits y con odbc de 32 me sigue dando el mismo error al pasarlo al equipo de 64 bits, os ha pasado a alguien lo mismo.

Andres Campuzano dijo...

Mil grcias no sabia como configurarlo, esta explicaci{on está mucho mejor.

Itatí dijo...

Gracias! Me re sirvió!!