2009-09-13 8 views
4

Je cherche un moyen d'ouvrir un fichier Access MDB dans une application Java (en utilisant JDBC).Accéder à Access via JDBC (en utilisant ODBC?)

Une recherche rapide sur Google suggère que j'ai besoin le pont JDBC-ODBC pour cette ...

Est-ce que cela signifie que je dois configurer chaque système que je veux courir mon application à fournir une source de données ODBC pour la MDB Je veux ouvrir?

Et encore une question (puisque je n'ai jamais utilisé ODBC auparavant): la communication se fera-t-elle sur une sorte de socket (dans un style client/serveur), ou par des appels de méthode/fonction Derby db)?

Répondre

7

1) Vous n'aurez pas besoin de configurer chaque système avec un DSN ODBC SYSTEM ou USER pour accéder à la MDB souhaitée. Vous pouvez toujours fournir toutes les informations dont vous avez besoin dans votre URL JDBC:

jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:/yourdb.mdb 

Mais gardez à l'esprit que le système sera besoin d'avoir le pilote que vous utilisez installé.

2) La communication se fera de la manière dont votre pilote ODBC communique. S'il ouvre une socket sur le serveur (comme une connexion Oracle ODBC a lieu), il ouvrira un socket. S'il utilise des appels de fonction de bibliothèque, il communiquera via les appels de fonction de bibliothèque.

La communication JDBC vers ODBC utilise JNI pour communiquer.

+0

ok le code serait windows seulement alors ... merci! – Buttercup

+0

Je suppose que vous pourriez avoir un pilote proxy JDBC. C'est-à-dire un pilote JDBC qui se connecte via un socket à un autre processus Java qui exécute ensuite les appels sur un vrai pilote JDBC (pont JDBC-ODBC). Je pense que de telles choses existent pour JDBC, OBDC et UDBC. –

+0

@Buttercup: Le code spécifique que j'ai posté est Windows uniquement. Mais vous pouvez toujours utiliser le pont JDBC-ODBC sous Linux (à condition que vous ayez installé ODBC, bien sûr). –

Questions connexes