我正在处理一个我一直在处理的应用程序出现的问题,该应用程序通过 JDBC-ODBC 连接到 Access 文件。在其他 Windows 平台上,尚未遇到此问题,但在 Windows 7 64 位机器上,尝试使用无 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 数据源管理中的驱动程序确认驱动程序存在。但是,当使用 regedt32.exe 检查 ODBC 驱动程序(HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI/ODBC Drivers)
时,它们都不会出现。
任何人都可以帮助阐明这一点吗?