java - 用户缺乏保存查询的权限或未找到对象错误

标签 java jdbc ucanaccess

由于 Java 8 不支持 JDBC,我正在尝试修改我的程序,以便它仍然可以从 Microsoft Access 数据库中提取和修改数据。

它不断抛出 SQLException。目前,这就是我的代码打开数据库连接并进行查询的样子:

Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
con = DriverManager.getConnection("jdbc:ucanaccess://C:/Users/Andrew/Dropbox/Public/Schoolwork/IRC/BBFBL/BBFBLMasterVersion3.accdb"); //name of ODBC driver
Statement stmt = con.createStatement();
stmt.executeQuery("SELECT * FROM DraftNightQuery");

因为我看到了一个类似的问题,解决方案必须确保正确输入查询,这是它尝试访问的表的名称:

enter image description here

DraftNightQuery SQL:

SELECT Players.ID, Players.Last, Players.First, TotalStats.team, Players.DraftStatus, TotalStats.pos, Players.OwnerID, Owners.TeamName, Salaries!   [Salary] AS Salary, [TotalStats]![games_DH] AS DH, [TotalStats]![games_C] AS C, [TotalStats]![games_1B] AS 1B, [TotalStats]![games_2B] AS 2B, [TotalStats]![games_3B] AS 3B, [TotalStats]![games_SS] AS SS, [TotalStats]![games_LF]+[TotalStats]![games_CF]+[TotalStats]![games_RF] AS [OF], TotalStats.PG, TotalStats.GS, Players.PositionType
FROM Salaries INNER JOIN (Owners RIGHT JOIN (Players LEFT JOIN TotalStats ON Players.ID = TotalStats.ID) ON Owners.OwnerID = Players.OwnerID) ON Salaries.ID = Players.ID
WHERE (((Players.OwnerID) Is Null))
ORDER BY Players.Last, Players.First;

最佳答案

该查询最初可能不是使用 Access 中的设计 View 生成的,因为在特定情况下会使用感叹号(而不是简单的点)。无论如何,问题在于使用 ucanaccess 尚不支持的感叹号。 更换 !和 。应该可以解决问题(并且它与 ms access 兼容)。

关于java - 用户缺乏保存查询的权限或未找到对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28334698/

相关文章:

java - 外部同步LinkedHashmap

java - 圆的碰撞检测

java - 组织.hibernate.tool.schema.spi.CommandAcceptanceException : Error executing DDL via JDBC Statement

java - 将 Java 连接到网络驱动器上的 Access DB

java - 当我运行应用程序时强制关闭问题

java和javascript回调比较

java - jdeveloper 中 mySQL 的 jdbc 驱动程序异常

java - 如何使用 oracle.jdbc.driver.OracleLog?

Java:ucanaccess hsqldb java.lang.NoSuchMethodError:

java - 如何通过 UCanAccess 创建一个具有对另一个表的两个外键引用的表?