Il DSN specificato contiene un errore di disallineamento dell’architettura

ho questo errore:

Il DSN specificato contiene un’incompatibilità dell’architettura tra il driver e l’applicazione

durante il tentativo di connettersi al database utilizzando NetBeans e Java Programming Language

Sto usando Microsoft Access 2010 e il mio sistema in esecuzione su Windows 7 a 64 bit.

Come risolvo questo problema? Grazie a tutti.

Quel messaggio appare nelle seguenti circostanze:

  • hai installato l’Access Database Engine (aka “ACE”),
  • si crea un DSN ODBC per la connessione al database e
  • il tuo codice Java è in esecuzione in una JVM (Java Virtual Machine) il cui “bit-ness” è diverso da quello della versione installata di ACE.

Per esempio,

  1. potresti avere installata la versione a 32 bit di ACE e provare a collegarti dal codice Java in esecuzione su una JVM a 64 bit, oppure

  2. si potrebbe avere la versione 64-bit di ACE installata e si sta tentando di connettersi dal codice Java in esecuzione in una JVM a 32 bit.

Se si desidera utilizzare effettivamente il bridge JDBC-ODBC, la soluzione è passare alla versione “altra” di ACE (ovvero passare da 32-bit a 64-bit o viceversa) oppure eseguire il codice Java sotto una JVM con la stessa “bit-ness” della versione installata di ACE.

(Si noti che se è installato Office, “passare a ACE a 64 bit” significa realmente “passare a Office a 64 bit”. Non è ansible “combinare” componenti di Office a 32 bit e 64 bit.)

Tuttavia, ora che il bridge JDBC-ODBC è stato rimosso da Java 8, è consigliabile utilizzare invece il driver JDBC di UCanAccess . È una pura implementazione Java che non utilizza Access ODBC per manipolare il database, quindi funziona con entrambe le JVM a 32 e 64 bit su tutte le piattaforms che eseguono Java (cioè, non solo Windows). Per maggiori dettagli, vedi

Manipolazione di un database di Access da Java senza ODBC