【问题标题】:"UCanAccess: user lacks privilege or object not found" second Connection“UCanAccess:用户缺少权限或找不到对象”第二个连接
【发布时间】:2019-02-21 23:25:55
【问题描述】:

现在我正在创建一个仪表板;我需要使用 MS-Access 数据库中的信息填充JTable,为此我使用了此代码。

try {
    con3 = Connectionz3.getConnection();//Connection Object 
    String dashboard2 = "Select * FROM [First_Entry]";
    pst3 = con.prepareStatement(dashboard2);
    rs3 = pst3.executeQuery();
    dtabla.setModel(DbUtils.resultSetToTableModel(rs3));

    PrinMenu.setVisible(false);
    Dashboard.setVisible(true);
}
catch (SQLException ex) {
        Logger.getLogger(Signin_Panel.class.getName()).log(Level.SEVERE, null, ex);
}

我得到了错误:

严重:无效
net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc:::4.0.4 用户缺少权限或找不到对象:FIRST_ENTRY

奇怪的是我正在使用这段代码调用同一个数据库:

    con2 = Connectionz2.getConnection(); //Connection Object
    String query = "INSERT INTO [First_Entry](Entry_ID, Entrydate, Category_Call, VA_Creator, Name_Creator, VA_Agent, Name_Agent, Call_Date, Call_ID, q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,q17,q18)" +
"values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

    PreparedStatement preparedStmt = con2.prepareStatement(query);
    preparedStmt.setInt(1, 0);
    preparedStmt.setString(2,cdate);
    preparedStmt.setString(3, Catcall);
    preparedStmt.setString(4, userva);
    preparedStmt.setString(5, fname+" "+lname);
    preparedStmt.setString(6,agentva);
    preparedStmt.setString(7,agentname);
    preparedStmt.setString(8, dotc);
    preparedStmt.setString(9, callid);
    preparedStmt.setInt(10, quest1);
    preparedStmt.setInt(11, quest2);
    preparedStmt.setInt(12, quest3);
    preparedStmt.setInt(13, quest4);
    preparedStmt.setInt(14, quest5);
    preparedStmt.setInt(15, quest6);
    preparedStmt.setInt(16, quest7);
    preparedStmt.setInt(17, quest8);
    preparedStmt.setInt(18, quest9);
    preparedStmt.setInt(19, quest10);
    preparedStmt.setInt(20,quest11);
    preparedStmt.setInt(21,quest12);
    preparedStmt.setInt(22,quest13);
    preparedStmt.setInt(23,quest14);
    preparedStmt.setInt(24,quest15);
    preparedStmt.setInt(25,quest16);
    preparedStmt.setInt(26,quest17);
    preparedStmt.setInt(27,quest18);

    preparedStmt.execute();

    con2.close();

这一次成功了。

我不知道我是否以错误的方式调用对象。我试图更改位置,更改表的名称但不起作用。使用其他数据库填充JTable 没有任何问题,有什么建议吗?

【问题讨论】:

    标签: java sql jdbc ucanaccess


    【解决方案1】:

    您的问题似乎在这里:

    con3 = Connectionz3.getConnection();//Connection Object 
    String dashboard2 = "Select * FROM [First_Entry]";
    pst3 = con.prepareStatement(dashboard2);
    

    注意您如何在上面的第一行定义con3,然后在上面的第三行使用con 而不是con3。

    所以把第三行改成:pst3 = con3.prepareStatement(dashboard2);

    【讨论】:

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