Я имею дело с проблемой, которая возникла для приложения, над которым я работаю, которое подключается к файлу Access через JDBC-ODBC.На других платформах Windows эта проблема не встречалась, но в 64-разрядных блоках Windows 7 при попытке подключения с использованием строк подключения без DSN возвращается:
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Попытка нескольких вариантов строки, но все они вернули одну и ту же ошибку.Вот как он пытается подключиться в данный момент:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
StringBuffer databaseConnectionString;
if (SystemUtils.IS_OS_WINDOWS_7) {
databaseConnectionString = new StringBuffer("jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=");
databaseConnectionString.append(databaseFile);
} else {
databaseConnectionString = new StringBuffer("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=");
databaseConnectionString.append(databaseFile);
databaseConnectionString.append(";DriverID=22;READONLY=false}");
}
Проверка драйвера в 32-разрядном ODBC Data Source Admin подтверждает, что драйверы присутствуют.Однако когда regedt32.exe используется для проверки драйверов ODBC (HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI/ODBC Drivers)
, ни один из них не появляется.
Может ли кто-нибудь помочь пролить свет на это?