PDA

Ver la versión completa : Problema al conectar BD Access con Java



xXBeRSeKeRXx
29/08/2011, 22:41
Hola, dando mis primeros pasos con Java y Bases de datos y al intentar conectarme a una sencilla BD hecha en Access me genera el siguiente error:


[Microsoft][Administrador de controladores ODBC] La arquitectura del DSN especificado no coincide entre el controlador y la aplicación.

La parte de conexión es esta:



try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:PruebaODBC";
Connection conn=DriverManager.getConnection( url , "" , "" );
// ...
}// ...


Desconozco que datos puedan serles de utilidad para solucionar esto pero doy algo de data de los que uso:

IDE: Eclipse IDE for Java Developers. Version: Helios Service Release 2
BD: Access 2007
SO: Windows 7 64 bits

Antes me daba otro error y lo solucioné cambiando el destino en Panel de control > Sistema y seguridad > Herramientas administrativas > Orígenes de datos ODBC por %windir%\SysWOW64\odbcad32.exe

Por lo que leí tendría que ver con que mi SO es de 64 bits, pero no logro solucionarlo...

Saludos y gracias!...

MECHAS
29/08/2011, 23:29
Hola, dando mis primeros pasos con Java y Bases de datos y al intentar conectarme a una sencilla BD hecha en Access me genera el siguiente error:


[Microsoft][Administrador de controladores ODBC] La arquitectura del DSN especificado no coincide entre el controlador y la aplicación.

La parte de conexión es esta:



try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:PruebaODBC";
Connection conn=DriverManager.getConnection( url , "" , "" );
// ...
}// ...


Desconozco que datos puedan serles de utilidad para solucionar esto pero doy algo de data de los que uso:

IDE: Eclipse IDE for Java Developers. Version: Helios Service Release 2
BD: Access 2007
SO: Windows 7 64 bits

Antes me daba otro error y lo solucioné cambiando el destino en Panel de control > Sistema y seguridad > Herramientas administrativas > Orígenes de datos ODBC por %windir%\SysWOW64\odbcad32.exe

Por lo que leí tendría que ver con que mi SO es de 64 bits, pero no logro solucionarlo...

Saludos y gracias!...
Tenes el registro agregado en la tabla OBDC del sistema operativo?

xXBeRSeKeRXx
29/08/2011, 23:47
Dónde me fijo?...

MECHAS
29/08/2011, 23:57
Por lo general el modo de llegar en todos los sistemas operativos es medio distinto, pero lo que si es igual es la aplicacion, fijate si podes ubicarlo desde el panel de control "origenes de datos (ODCB)", si tenes windows xp en la solapa DNS tiene que aparecer el nombre de tu dns si mal no recuerdo dnsprueba o algo asi, no recuerdo como le pusiste, y despues tenes que configurar el tipo de controlador que va a usar para conectarse a la DB, en este caso seria algun controlador relacionado con java, un usuario y contraseña en el caso que este a modo mixta la autentificacion, pero para no hacerte quilombo dejala administrada por el usuario admin, osea auntentificada por el sist. op.
Si tenes algun otro sistema operativo, hablando de windows vista en adelante es un poco mas de quilombo, y antes de arrancar tendrias que leerte alguna guia de DNS, para no marearte osea para el agregado del registro, la config es exactamente igual para cualquiera de los sistema op.

Igual ojo ehh yo me manejo bien con sql, java no he tocado mucho, pero en su gran mayoria los administradores de base de datos se manejan y configuran iguales. Y Acces permite conecciones por medio de ODBC asi que supongo que es lo mismo.

xXBeRSeKeRXx
30/08/2011, 00:22
Creo que te referís a lo que ya modifiqué, esta es la screen:

http://i55.tinypic.com/senmkn.png

MECHAS
30/08/2011, 00:47
Bueno entonces si esta todo bien configurado, el problema puede estar en que acces no tiene controladores de 64 bits compatibles, es una mierda en fin, para solucionar eso bajate el jdk de 32 bits, y proba a ver si al menos podes conectarte a la DB.

Edit 1: igual tomalo con pinzas, porque como te aclare hoy, no soy amante de acces, siempre me parecio un administrador de BD de lo mas pedorro, asi que no me meti mucho en el tema.
Se que que hay algunos Accesdataengine x64 dando vueltas, pero ni idea la verdad como funciona ese contronlador.

Avr1l
30/08/2011, 00:50
no entiendo nada de lo q hablan, apenas se usar access xdd

xXBeRSeKeRXx
30/08/2011, 00:54
Bueno entonces si esta todo bien configurado, el problema puede estar en que acces no tiene controladores de 64 bits compatibles, es una mierda en fin, para solucionar eso bajate el jdk de 32 bits, y proba a ver si al menos podes conectarte a la DB.

Ok pruebo con eso...

Vos dijiste que la tenés clara con bases no?... Porque estoy haciendo un curso de Oracle pero falta para la parte de administración y demás, recién vamos por sentencias, tenés idea si conectarme a una BD con Oracle tendrá el mismo problema que con la de Access?...

Gracias!!

MECHAS
30/08/2011, 01:00
Ok pruebo con eso...

Vos dijiste que la tenés clara con bases no?... Porque estoy haciendo un curso de Oracle pero falta para la parte de administración y demás, recién vamos por sentencias, tenés idea si conectarme a una BD con Oracle tendrá el mismo problema que con la de Access?...

Gracias!!

No creo, oracle es una division de desarrollo que tambien tiene aplicaciones de java, no creo que tengas problemas, lo que si es un poco mas compleja, pero muy versatil, del estilo sql.

Edit 1: osea oracle es la empresa que crea mucahas aplicaciones, entre ellas administradores de base de datos, java, jdk, etc. Asi que en teoria no tendrias que tener ningun tipo de problemas con el sistema operativo de 64 bits, al contrario te tendria que ir de maravilla