interfaz - El DSN especificado contiene una falta de coincidencia de arquitectura entre el controlador y la aplicación. JAVA
java swing tutorial pdf español (18)
Estoy tratando de conectarme a una base de datos creada por MS Access usando Java, pero parece que no puedo gestionarla. Estoy usando ODBC y obtengo esta excepción:
java.sql.SQLException: [Microsoft] [ODBC Driver Manager] El DSN especificado contiene una falta de coincidencia de arquitectura entre el controlador y la aplicación
Mi Java:
package javaapplication2;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
*
* @author Owner
*/
public class JavaApplication2 {
/**
* @param args the command line arguments
*
*/
public static void main(String[] args) {
// TODO code application logic here
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String sourceURL = new String("jdbc:odbc:myDatabase");
System.out.println(sourceURL);
Connection dbConnection = DriverManager.getConnection(sourceURL,"admin","");
Statement myStmt = dbConnection.createStatement();
String query = "INSERT INTO People(ID, Name, Surname, Age, Contact, Location, Course) VALUES"
+ " (1007, ''Elroy'', ''Smith'', ''33'', 21366688, ''Somewhere'', ''somecourse'')";
myStmt.executeUpdate(query);
ResultSet results = myStmt.executeQuery("SELECT * FROM People");
while(results.next())
{
System.out.print(results.getString(1));
System.out.print(results.getString(2));
System.out.print(results.getString(3));
System.out.println(results.getString(4));
}
results.close();
}
catch(ClassNotFoundException cnfe)
{
System.out.println(cnfe);
}
catch(SQLException sqle)
{
System.out.println(sqle);
}
}
}
¿Ha creado el DSN primero en el Panel de control> Herramientas administrativas> ODBC> Sistema DSN? Llámalo igual que "myDatabase" y si estoy pidiendo localizar la base de datos / archivo de acceso, especifica la ruta usando la opción de navegación. Una vez que su DSN se haya creado correctamente, podrá acceder fácilmente a su ur DB.
Creo que esto también será más útil.
para el partido de la falta de arquitectura,
simplemente copio el archivo jdk del archivo de 32 bits C: / Program Files (x86) / Java / jdk1.7.0_71 y lo pegué en el archivo de 64 bits C: / Program Files / Java / jdk1.7.0_10, luego cambie el nombre del archivo para que coincida con el archivo que reemplaza para evitar el error IDE (netbeans)
entonces es bueno que te vayas.
Nota: Debe copiar los archivos de 64 bits para que cuando quiera crear una aplicación de 64 bits pueda devolverlo a su ubicación
De forma predeterminada, el símbolo del sistema está conectado a System32. Ejecute un símbolo del sistema de 64 bits, es decir, C:/WINDOWS/SYSWOW64/CMD.EXE
. En eso, compila y ejecuta tu aplicación java.
El problema que enfrentaste podría deberse a que: tenías Office 32 bit y Command Prompt 64 bit. Para resolver el problema, debes seguir 2 pasos:
Abra ODBC Manager para DSN con: C: / Windows / SysWOW64 / odbcad32.exe Esto abrirá el Administrador de datos ODBC para la versión de 32 bits y verá todos los controladores de la base de datos.
Después de esto, debe abrir el símbolo del sistema de 32 bits con: C: / Windows / SysWOW64 / cmd.exe Esto abrirá la versión de 32 bits del símbolo del sistema. En este nuevo CMD, recompile su programa Java y ejecute su programa.
Espero que esto ayude
Encontré este problema. Esto se debe a la arquitectura de su computadora y a la arquitectura de la base de datos que está utilizando.
Si usa un sistema operativo de 32 bits, todo funciona bien porque solo puede instalar el software de 32 bits. El problema surge cuando usa el sistema operativo de 64 bits.
Para resolver este problema es simple: me tomó mucho tiempo descubrir este problema.
- Sabiendo que su sistema operativo es de 64 bits, pero su Microsoft Office es de 32 bits.
- Entonces, para que pueda acceder a su base de datos usando NetBean IDE (suponiendo que esté usando esto), necesita instalar 32 bits JDK. Si ha instalado 64 bits, debe desinstalarlo e instalar los 32 bits.
No puede acceder a su base de datos porque su JVM de 64 bits no es lo mismo que JVM de 32 bits.
Para agregar su base de datos a su sistema 1. Panel de control 2. Herramientas del administrador 3. Fuente de datos (ODBC) haga clic derecho sobre él cambie el destino a / sysWOW64 / odbcad32.exe cambie el inicio en r% / SysWOW64
Entonces deberías poder correr. Informarme si tienes algún problema con esto.
¡Gracias!
Hay un desajuste de la arquitectura. Su controlador JDBC y su JDK deben ser de la misma arquitectura. Si usa un controlador de 32 bits y su JDK tiene 64 bits, obtendrá ese error.
Mira this
Solución: depende de su arquitectura.
Necesitará controladores de 64 bits si su Java es de 64 bits.
He arreglado el error.
Sigue los pasos:
- Instalar JDK de la versión 32bt
- Instalar MS-Office 2007
Configurar el Panel de control: a. Panel de control b. Herramientas de administrador c. Fuente de datos (ODBC)
haga clic derecho sobre él cambie el destino a
/sysWOW64/odbcad32.exe
cambie el inicio enr%/SysWOW64
Ejecútelo y mejor suerte. Funciona en Windows 7 y 8
Elimine la versión más reciente de MS-Office e instale solo MS-Office 2007 si el problema persiste
Me encontré con este problema al actualizar a un servidor de Windows 7 con algunas aplicaciones CLASP heredadas. Intentando ejecutar una aplicación de 32 bits en una máquina de 64 bits.
Intente configurar la compatibilidad de 32 bits de los grupos de aplicaciones en True y / o cree dsn en 32 y 64 bits.
Abra la ventana de orígenes de datos odbc en ambas versiones desde el cuadro de ejecución. C: / Windows / SysWOW64 / odbcad32.exe C: / Windows / system32 / odbcad32.exe
Ninguno de estos lo hizo por mí. Encontré la respuesta en MSDN. Sin embargo, había indicios de ello. La arquitectura en el error se refiere a 32 vs 64 bits. Mi solución fue averiguar con qué aplicación se ejecuta mi aplicación (Acceso), que 2010 es 32b. Encontré esto mirando en la pestaña Proceso del Administrador de tareas donde todos los procesos 32b tienen * 32 al final de sus nombres. Como se dijo, el panel de control lanzará la versión de 64 bits de ODBC desde aquí
c:/windows/system32/odbcad32.exe
y la versión de 32 bits está aquí:
c:/windows/sysWOW64/odbcad32.exe
(el más fácil de copiar y pegar en el diálogo de ejecución)
Así que configuré DSN con nombres que terminan en 32 y 64 en cada uno de los paneles de control ODBC correspondientes (Administrador de AKA) que apuntaban a lo mismo. Luego, seleccioné / elegí la correcta según si la aplicación que la usa es 32b o 64b.
Obtiene este mismo error cuando intenta conectarse a una base de datos MySQL de MS-Access cuando la versión de bit (32 vs 64) de Access no coincide
- la versión de bit del controlador ODBC que está utilizando
- la versión de bit del administrador ODBC que utilizó para configurarlo.
Para aquellos de ustedes que intentan conectar MS-Access a MySQL en un sistema Windows de 64 bits, pasé por la tortura tratando de hacerlo funcionar tanto con MS-Access 2010 como con MS-Access 2013. Finalmente funcionó, y aquí están las lecciones que aprendí en el camino:
Compré una nueva computadora portátil con Windows 7 de 64 bits y tengo una aplicación que se basa en MS-Access utilizando tablas de MySQL.
Instalé la última versión de MySQL, 5.6, usando la instalación del paquete All In One. Esto le permite instalar tanto la base de datos como los controladores ODBC a la vez. Eso está bien, pero el controlador ODBC que instala parece ser el de 64 bits, por lo que no funcionará con MS-Access de 32 bits. También parece un poco problemático, no estoy seguro de eso. Cuando agrega un nuevo DSN en el Administrador ODBC, este controlador aparece como "Microsoft ODBC para Oracle". No pude hacer que esta funcione. Tuve que instalar el de 32 bits, que se analiza a continuación.
- MySQL estaba funcionando bien después de la instalación. Restauré la base de datos MySQL de mi aplicación de la forma habitual. Ahora quiero conectarme a él usando MS-Access.
Previamente había instalado Office 2013, que supuse que era de 64 bits. Pero al verificar la versión (Archivo, Cuenta, Acerca del acceso), veo que es de 32 bits. Tanto Access 2010 como 2013 se venden más comúnmente como versiones de 32 bits.
Mi máquina es una máquina de 64 bits. Por lo tanto, de forma predeterminada, cuando vaya a configurar sus DSN para MS-Access y vaya de la manera habitual al Administrador ODBC a través del Panel de control, Opciones administrativas, obtendrá el administrador ODBC de 64 bits. ¡No tienes forma de saber eso! Usted simplemente no puede decir. ¡Esto es una gran sorpresa! Es imposible configurar un DSN desde allí y hacer que se conecte con éxito a MS Access 32 bit. Obtendrás el temido error:
"el dsn especificado contiene una falta de coincidencia de arquitectura ..."
Debe descargar e instalar el controlador ODBC de 32 bits de MySQL. Usé la versión 3.5.1
Debe indicarle al Administrador de ODBC en el Panel de control que haga una caminata y en su lugar debe invocar explícitamente el Administrador de ODBC de 32 bits con este comando ejecutado en el Inicio, Símbolo del sistema:
c: / windows / sysWOW64 / odbcad32.exe
Creé un acceso directo a esto en mi escritorio. A partir de aquí, crea tu DSN con este administrador. Punto importante: ¡CONSTRUIRLOS COMO SISTEMAS DSNS, NO DADOS DE USUARIO! Esto me hizo tropezar por un tiempo.
Por cierto, la versión de 64 bits del Administrador ODBC también se puede ejecutar de forma explícita como:
c: / windows / system32 / odbcad32.exe
Una vez que haya instalado el controlador ODBC de 32 bits de MySql, cuando haga clic en Agregar en el Administrador ODBC, verá dos controladores en la lista. Elija "MySQL ODBC 5.2 ANSI Driver". No probé el controlador UNICODE.
Eso lo hace. Una vez que haya definido sus DSN en el administrador ODBC de 32 bits, puede conectarse a MySQL de la forma habitual desde Acceso - Datos externos, Base de datos ODBC, Enlace a la Base de datos, Seleccionar origen de datos máquina y DSN que creó para su MySQL la base de datos estará allí.
Para resolver este problema primero asegúrese de que su software java sea una versión de 32 bits si es una versión de 64 bits claramente mostrará el error de desajuste así que intente reinstalar la versión java de 32 bits Y ejecute el programa java con el comando de c:/windows/sysWOW64/odbcad32.exe
(el más fácil de copiar y pegar en el diálogo de ejecución) es suficiente que tu programa funcione
Para resolver este problema primero asegúrese de que su software java sea una versión de 32 bits si es una versión de 64 bits claramente mostrará el error de desajuste así que intente reinstalar la versión java de 32 bits Y ejecute el programa java con el comando de c: / Windows / sysWOW64 / odbcad32.exe (el más fácil de copiar y pegar en el diálogo de ejecución) es suficiente que tu programa funcione
Si está usando netbeans, vaya a tools-> java Platform, cambie jdk_home que apunta a c: / programfiles / java / jdk1_7 a c: programFiles (x86) / java / jdk1_6_21
si no es editable, encuentre netbeans.cnf y realice el cambio indicado para abouve jdk_home. reinicie Neatbeans y cómo funciona. Tuve el mismo problema, pero trabajé.
Si se está conectando desde una plataforma de 64 bits con un controlador de 32 bits, ejecute el archivo ejecutable C: / Windows / SysWOW64 / odbcad32.exe y cree el DSN. Funcionará.
Tuve muchos problemas para vincular MySQL desde una laptop de 64 bits, ejecutando Windows 7, usando MS Access 2010. Encontré el artículo anterior muy útil, pero aún no me pude conectar usando odbc 3.5.1. Como había vinculado previamente una máquina de 32 bits utilizando Connector / ODBC 5.1.13, descargué esa versión y la configuré usando las instrucciones anteriores. Éxito. La respuesta parece ser probar diferentes versiones de Connector.odbc.
Un poco tarde, pero desde que me encontré con el mismo problema, en su escenario exacto, pensé en agregar mi solución.
Tengo Windows 7 (64 bits) y Office 2010 (32 bits). Intenté con la cadena de conexión sin DSN:
jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=I:/TeamForge/ORS/CTFORS.accdb
y probé con la conexión DSN, usando las versiones System32 y SysWOW64 del Administrador ODBC, y nada de eso funcionó.
Lo que finalmente funcionó, fue hacer coincidir la versión de bit de Java con la versión de bit de Office. Una vez que hice eso, pude usar el modo de conexión menos DSN o DSN, sin ningún problema.
Vaya a este enlace y descargue ODBC Driver para 64 bits OS.
http://www.microsoft.com/en-us/download/details.aspx?id=13255
Vi esta respuesta y funcionó para mí. https://msdn.microsoft.com/en-us/library/ms712362%28v=vs.85%29.aspx
Después de haber instalado un controlador ODBC desde el programa de instalación del controlador, puede definir uno o más orígenes de datos para él. El nombre de fuente de datos (DSN) debe proporcionar una descripción única de los datos; por ejemplo, nómina o cuentas por pagar. Las fuentes de datos del usuario y del sistema que están definidas para todos los controladores instalados actualmente se enumeran en las pestañas DSN del usuario o DSN del sistema del cuadro de diálogo Administrador de orígenes de datos ODBC. Las fuentes de datos de archivos en un directorio determinado se enumeran en la pestaña Archivo DSN; el directorio que se mostrará se ingresa en el cuadro Buscar en la pestaña Archivo DSN. System_CAPS_noteNote
Para administrar una fuente de datos que se conecta a un controlador de 32 bits en una plataforma de 64 bits, use c: / windows / sysWOW64 / odbcad32.exe. Para administrar una fuente de datos que se conecta a un controlador de 64 bits, use c: / windows / system32 / odbcad32.exe. En Herramientas administrativas en un sistema operativo Windows 8 de 64 bits, hay iconos para el cuadro de diálogo Administrador de fuente de datos ODBC de 32 y de 64 bits.
Si utiliza el odbcad32.exe de 64 bits para configurar o eliminar un DSN que se conecta a un controlador de 32 bits, por ejemplo, Driver do Microsoft Access (* .mdb), recibirá el siguiente mensaje de error:
El DSN especificado contiene una falta de coincidencia de arquitectura entre el controlador y la aplicación
Para resolver este error, utilice odbcad32.exe de 32 bits para configurar o eliminar el DSN.
Una fuente de datos asocia un determinado controlador ODBC con los datos a los que desea acceder a través de ese controlador. Por ejemplo, puede crear una fuente de datos para usar el controlador ODBC dBASE para acceder a uno o más archivos dBASE que se encuentran en un directorio específico en su disco duro o en una unidad de red. Con el Administrador de orígenes de datos ODBC, puede agregar, modificar y eliminar orígenes de datos, tal como se describe en la siguiente tabla.