2010-03-04 25 views
5

Przez lata w systemach 32-bitowych nigdy nie miałem problemu. Dlaczego nie mogę używać 64-bitowego sterownika Java ODBC z bazą danych Access w systemie Windows Server 2008? Czy sterownik ODBC jest zapisany w 64-bitowym systemie w 32-bitowym kodzie? Tutaj jest błąd widzę, stosując 64-bitową JDK1.6.018:Jak używać 64-bitowego sterownika Java ODBC z bazą danych Access w systemie Windows 2008?

java.sql.SQLException: [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application 
     at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957) 
     at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114) 
     at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073) 
     at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323) 
     at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) 
     at java.sql.DriverManager.getConnection(DriverManager.java:582) 
     at java.sql.DriverManager.getConnection(DriverManager.java:185) 
     ..... 

Podejrzewam, że kierowca Dostęp jest 32-bitowy, ponieważ nie pojawiają się w panelu sterowania ODBC 64-bitowej dla Windows . Tylko dwa 64-bitowe sterowniki (dla SQL Server) są widoczne na karcie "Sterowniki" w panelu sterowania ODBC.

Co mogę zrobić? Wolałbym nie używać programu SQL Server i sterownika JDBC typu 4 (ale to byłby mój ostateczny wybór).

Odpowiedz

0

Program Microsoft Access w pakiecie Office 2010 będzie mieć wersję 64-bitową. Wcześniejsze wersje pakietu Microsoft Office mają tylko wersję 32-bitową.

Korzystanie z SQLExpress jest zarówno darmowe, jak i łatwe w użyciu, a Access i Java mogą się z nim łączyć, więc wydaje się dobrym wyborem.

Skoro powiedział, że była ostatecznością, druga opcja jest uruchomienie 32-bitowej JDK, który powinien działać dobrze na Server 2008.

+0

Wierzę, że jest problem z uruchomieniem 32-bitowego JDK na maszynie 64-bitowej. podejrzewam, że ma to coś wspólnego z tym, w jaki sposób JVM używa .dlls do zarządzania pamięcią (RAM). miałem problemy, kiedy próbowałem, i dlatego używam 64-bitowego jdk. – djangofan

+0

@djangofan, ograniczenie będzie dotyczyło ilości pamięci używanej przez JVM. Oczywiście, jeśli pojawią się subtelne problemy, niekoniecznie wiem. – Yishai

+0

tak, prawdopodobnie prawda. Myślałem, że to samo myśl, że zrobiłeś, najpierw ... – djangofan

2

Czy próbowałeś uruchamiania 32-bitowych menedżera ODBC w systemie Windows 2008 - sprawdzić, czy to pomoże w zdiagnozowaniu problemu?

Wersja 32-bitowa pliku odbcad32.exe znajduje się w folderze% SystemDrive% WindowsSysWoW64

+0

pomocna odpowiedź. dzięki. – djangofan

1

miałem ten sam problem i rozwiązanie, w moim przypadku było użyć 32-bitowej JDK.

+2

32-bitowy JDK działałby tylko wtedy, gdy zainstalowałbyś 32-bitowy MS Office 2010. Również w tym przypadku zwykle musisz użyć panelu sterowania odbccad32.exe, który znajduje się w katalogu SYSWOW64. Mówię "ogólnie", ponieważ są pewne zastrzeżenia. – djangofan

2

Miałem ten sam problem. Powodem było to, że używałem 64-bitowego ODN DSN z 32-bitowym JDK. Powinny one mieć taką samą architekturę (zarówno ODBC DSN, jak i JDK muszą mieć 64 bity lub 32 bity). Jeśli zarejestrujesz ODBC DSN na 32 bitach i wywołasz z aplikacji 64-bitowej (64-bitowa maszyna JVM), pojawi się błąd, że źródło DSN nie zostanie znalezione (Aby aplikacja wyświetliła źródło ODBC - JVM, z którą uruchamiasz aplikację powinna być taka sama, jak ODBS DSN: oba muszą być 64-bitowe lub oba 32-bitowe). Mam nadzieję że to pomoże.

+0

Tak, kiedy zdałem sobie sprawę, że są 2 panele kontrolne ODBC, to wszystko zaczęło mieć sens. – djangofan

2

Jeśli korzystasz z pakietu Microsoft Office 2010, który powróci do architektury 64-bitowej. Usunięcie tego błędu związanego z niedopasowaniem architektury między sterownikiem a aplikacją.

1

W moim przypadku, miałem 32 bit JDK 6u45 na XP, który użył jdbc: odbc sterownik do kwerendy plik Accdb. Tak więc miałem 32-bitowy JDK, a także 32-bitowy MS Office, który automatycznie instalował niezbędny sterownik w moim komputerze, kiedy go zainstalowałem. Następnie przeniosłem projekt do Windows 7 z Netbeans 7.3 z 32-bitowym JDK 6u45, ALE 64-bitowym MS Office 2013, więc wydaje się, że jest to problem, Jeśli masz 32-bitowy JDK zainstalowany, potrzebujesz 32-bitowej wersji pakietu Office (z odpowiednim sterownikiem dołączonym do tej wersji Office). I to samo z wersją 64-bitową.

W moim przypadku Szukałem archiwum Oracle Java dla wersji 64 bitowej JDK6u45 i zmienił JDK projektu do 64 bitowej wersji.

Powiązane problemy