【问题标题】:UCAExc:::3.0.7 user lacks privilege or object not found: SLIPSETUCAExc:::3.0.7 用户缺少权限或找不到对象:SLIPSET
【发布时间】:2017-04-15 04:25:15
【问题描述】:

我查看了此站点上的类似主题,但建议的答案似乎都不起作用。我正在编写一个使用 SQL 与 Access 数据库交互的 java 程序。我已成功连接到数据库并从中提取信息。但是,我需要更新数据库,并且一直遇到此错误

UCAExc:::3.0.7 用户缺少权限或找不到对象:SLIPSET

为什么我无法成功更新 Access 数据库?

这是与更新相关的代码

String sqlSlip ="UPDATE Slip" +
                "SET slipOpen = 0 AND boatID =?" +
                "WHERE slipNumber = ?";

PreparedStatement slipUpdate = connection.prepareStatement(sqlSlip);
slipUpdate.setDouble(1, boatIDdub);
slipUpdate.setDouble(2, rs.getInt("slipNumber"));

ResultSet updateSlip = slipUpdate.executeQuery();

String sqlCustomer = " INSERT INTO Customer(customerLName, customerFName, slipNumber, boatID, customerNumber)" +
                     "VALUES (?, ?, ?, ?, ?)";

PreparedStatement custUpdate = connection.prepareStatement(sqlCustomer);
custUpdate.setString(1,custLName);
custUpdate.setString(2, custFName);
custUpdate.setDouble(3, rs.getInt("slipNumber"));
custUpdate.setDouble(4, boatIDdub);
custUpdate.setDouble(5, customerNumber);

ResultSet updateCust = custUpdate.executeQuery();
connection.close()

【问题讨论】:

    标签: java sql ms-access jdbc ucanaccess


    【解决方案1】:

    如果您要检查 sqlSlip 字符串的内容,您会看到它包含

    UPDATE SlipSET slipOpen = 0 AND boatID =?WHERE slipNumber = ?
    

    您需要在每个字符串片段的末尾添加一个空格并使用逗号而不是AND ...

    String sqlSlip ="UPDATE Slip " +
                    "SET slipOpen = 0, boatID = ? " +
                    "WHERE slipNumber = ?";
    

    ... 使字符串包含

    UPDATE Slip SET slipOpen = 0, boatID = ? WHERE slipNumber = ?
    

    还要注意,要执行 INSERT 查询,您需要使用 .executeUpdate(),而不是 .executeQuery()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 2017-06-14
      • 2019-05-31
      • 2017-08-31
      • 1970-01-01
      • 1970-01-01
      • 2014-08-05
      相关资源
      最近更新 更多