我有一个需要从 Microsoft Access 数据库中提取的 Java 程序。我最近不得不更改代码以使用 UCanAccess 而不是 ODBC,因为 Java SE 8 不支持 JDBC-ODBC 桥(Manipulating an Access database from Java without ODBC)
当我运行下面显示的代码(只是 UCanAccess 网站上给出的示例代码)时,我收到一个错误 -
ERROR: net.ucanaccess.jdbc.UcanaccessSQLException: user lacks privilege or object not found: NULL
代码如下
Connection conn=DriverManager.getConnection("jdbc:ucanaccess://Z:\\Assignment.accdb");
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT * FROM tbl2014janjun"); //tbl2014janjun ORDER BY ID
while (rs.next()) {
System.out.println(rs.getString(1));
}
在测试时,我注意到这个代码可以访问一个单独的数据库,工作订单,并且输出符合预期。此外,每当此代码尝试运行时,它都会在服务器目录中生成锁定 laccdb 文件。因此,我认为问题在于用户权限。在此站点搜索可能的答案时,其中大部分与错误消息的后半部分有关 - 表格拼写错误等。我已确保拼写/位置/文件结构正确。
感谢您提供任何帮助。