Comment se connecter à une version 32 bits de l'Accès de Base de données à partir de la JVM 64 bits?
Jusqu'à présent, lorsque j'ai eu à se connecter à un 32 bits d'Accès de Base de données, j'ai simplement exécuté, l'application à l'aide de JVM 32 bits. Cependant, je suis en train de développer une application qui nécessite une JVM 64 bits, mais j'ai encore besoin de vous connecter à un 32-bit, Base de données Access. Lorsque j'essaie de connecter, je reçois cette exception:
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
C'est mon code:
String s = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + path;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(s, user, password);
Découvrez ce post, il semble comme un problème semblable, stackoverflow.com/questions/3454701/.... Specifilcally, regardez la dernière réponse concernant l'installation de 64 bits de MS Access Redistribuable pack de Microsoft.
Parfois, c'est aussi le compte de l'utilisateur reportez-vous à stackoverflow.com/a/36793611/808723
Parfois, c'est aussi le compte de l'utilisateur reportez-vous à stackoverflow.com/a/36793611/808723
OriginalL'auteur Pedro | 2012-04-23
Vous devez vous connecter pour publier un commentaire.
De mon expérience
Pour l'Utilisateur (ou Système ?) DSN ODBC y sont séparés 32 bits et 64 bits des définitions. Je pense que vous avez probablement un 32 bits
définition, mais Java ODBC-Pont est à la recherche pour le 64 bits définition. Vous ne pouvez pas connecter directement à
un 32 bits pilote ODBC Access à partir d'une version 64 bits du programme (vous obtenez un message d'erreur disant cela, si vous essayez).
Alors que Microsoft distribue 32 bits ODBC Microsoft Pilotes d'Accès avec Windows (32 &64 bits), il n'a pas
distribuer 64 bits de Donnée pilotes avec Windows 64. Il y a un 64 bits Pilote ODBC Access
disponible auprès de Microsoft. Il y a quelques problèmes avec le téléchargement et l'installation de la version 64 bits de Donnée pilote
Je ne l'ai pas testé avec Java 7.
Avec la version 6 de java, je pense que vous pouvez être OK si les champs de type Chaîne sont à la fin de SQL select relevés.
J'ai trouvé quelques instructions SQL travaillé certains n'ont pas.
De pilote 64 bits vous ne savez pas où il sera installé. Cela rend d'installation automatisée
les scripts difficile à écrire.
Vous aurez également besoin de créer des 64 bits ODBC définitions.
===============================================
Sur une note différente, Il peut être possible d'utiliser une Base de données Proxy/mise en commun package d'exécution dans un java 32 bits
(et vous connecter via TCP/IP ?). Je ne l'ai Jamais essayé.
Java 64 -->> DB Proxy exécution 32 bits de Java DB -->> Ms Access
Base De Données Liste De Proxy: http://www.manageability.org/blog/stuff/jdbc-proxy-drivers
quelque chose comme SSL-SQL-Serveur Proxy peut travailler
Bonne chance, j'espère que certains on peut vous fournir une solution
Depuis l'original de la réplique, il y a 2 du pilote JDBC
Open Source: http://ucanaccess.sourceforge.net/site.html
Commercial: http://www.csv-jdbc.com/stels_mdb_jdbc.htm
Je n'ai pas essayé soit de
Edit: 8 Mai 2014
Semble être de plus en plus commerciaux pilotes Easysoft Pilote et HXTT Pilote
Ce L'Article peut être utile
Edit 6 Jan 2016
Que Gord Thompson dit; ODBC-Pont a été supprimé à partir de Java 8. La bonne nouvelle, c'est UCanAccess est activement développé et ils semblent faire des progrès constants.
OriginalL'auteur Bruce Martin
Maintenant que le JDBC-ODBC Bridge a été supprimé à partir de Java 8 l'ensemble de ces problèmes liés à l'Accès ODBC seront de plus en plus devenir une chose du passé, et un "vrai" pilote JDBC sera nécessaire.
Comme mentionné dans une précédente réponse, UCanAccess est un open-source gratuit option. C'est un pur Java mise en œuvre à ne pas utiliser ODBC, afin qu'il fonctionne indépendamment de la plate-forme (Windows, Linux, ...) ou de l'architecture (32 bits ou 64 bits).
Pour plus d'informations sur l'utilisation de UCanAccess, reportez-vous à la question ici.
OriginalL'auteur Gord Thompson
Le problème est que vous devez exécuter sur Java 32 bits essayez d'installer la dernière version de JDK et il fonctionnera
Je l'exécute à l'aide de la version de JDK "jdk-7u67-windows-i586.exe"
OriginalL'auteur Ahmed Salem