【问题标题】:Using UCanAccess getting ERROR "unexpected token: table-name使用 UCanAccess 获取错误“意外令牌:表名
【发布时间】:2016-04-14 11:27:45
【问题描述】:

与之前关于“意外令牌”的问题有关

我收到以下错误

         UCAExc:::3.0.3.1 unexpected token: $BRANDRAP

当我在 NB IDE 中运行以下代码时

试试 { Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");

    Connection conn =  DriverManager.getConnection("jdbc:ucanaccess://E:/DEV05/AmexDW/$TPMAIN.MDB");
    Statement s = conn.createStatement();
    ResultSet rs = s.executeQuery("SELECT [l BL Item Headers].[BL Counter], [l BL Item Headers].[BL A/C], [l BL Item Headers].[BL Entry] FROM [l BL Item Headers]");

    while (rs.next()) 
    {
        System.out.print(rs.getString(2));
        System.out.print(" :  ");
        System.out.print(rs.getString(3));
        System.out.print(" :  ");
        System.out.print(rs.getString(4));
        System.out.print("\n"); 
    }  
  } 
  catch (SQLException e) 
  {
    System.out.println(e.getMessage());
    return;
  }
  catch (ClassNotFoundException nf) 
  {
    System.out.println(nf.getMessage());
    return;
  }

注意。 $BRANDRAP 是 $TPMAIN.MDB 数据库中的一个表,但我从 表格[l BL Header Items]

【问题讨论】:

    标签: ucanaccess


    【解决方案1】:

    这是因为在连接时抛出了异常。由于错误,以前的版本不支持表名或列名中的 $。相关的 3.0.3 修复没有解决特定情况(当表名以 $ 开头时)。完整的修复将在 3.0.4 中。它很快就会发布。

    【讨论】:

    • 表 [l BL 项目标题] 中的任何列名中都没有“$”字符,但 MS Access db $TPMAIN 中还有其他几个表
    • 正如我所说,在执行查询之前,在连接时抛出异常。很抱歉。
    • 在使用另一个数据库后,在 dbname 中没有“$”,没有带有“$”的表,也没有带有“$”的列作为下面的相关代码行:
    • 连接连接 = DriverManager.getConnection("jdbc:ucanaccess://S:/UAT/BSP_Reconciliation/BSPUPDATE.MDB");语句 s = conn.createStatement(); ResultSet rs = s.executeQuery("SELECT * FROM bspRecords");
    • 特殊字符 $ 已经存在,除非它是第一个字符。
    猜你喜欢
    • 2015-11-19
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    相关资源
    最近更新 更多