【问题标题】:How to retrieve data from a Query instead of from Tables with Jackcess如何使用 Jackcess 从查询而不是从表中检索数据
【发布时间】:2014-04-23 09:32:14
【问题描述】:

我有一个 Access 数据库,为了使工作更轻松,我对数据库进行了查询。如何从查询而不是表中获取数据?

为了从表中获取数据,我使用了以下代码:

Table table = db.getTable("matchTable");
Cursor cursor = CursorBuilder.createCursor(table);

while (cursor.findNextRow(Collections.singletonMap("idMatch", 15))) {
       Row row = cursor.getCurrentRow();
       ...
}

【问题讨论】:

    标签: java ms-access jackcess


    【解决方案1】:

    根据 Jackcess 常见问题解答(具体来说,here):

    Jackcess 可以执行 SQL 查询吗?

    从 1.1.19 版本开始,Jackcess 能够读取 Access 数据库中保存的查询(即解释存储在系统查询表中的数据)。但是,Jackcess 没有能力执行这些查询。

    这意味着 Jackcess 可以检索与 Access 中保存的查询关联的 SQL 代码,但 Jackcess 不能执行该 SQL 代码(或返回其结果)。

    换句话说,如果我们在 Access 中有一个名为 [MySavedQuery] 的已保存查询,那么 Jackcess 可以检索到包含 SQL 命令的String,例如,

    SELECT * FROM Customers WHERE City='wherever'
    

    但 Jackcess 无法执行该命令以实际返回该查询的结果。此外,Jackcess 方法 db.getTable() 可以打开 Access ,但不能像打开表一样打开已保存的查询。

    但是,UCanAccess 可以执行已保存的 Access 查询并返回其结果。也就是说,UCanAccess 可以

    SELECT * FROM MySavedQuery
    

    【讨论】:

    • 所以在我的情况下我可以,因为查询在 Access DB 中,但我应该怎么做?
    • @Shiroga 我已经更新了我的答案,试图让它更清楚:Jackcess 无法返回 Access 保存查询的 results
    • UCanAccess 也适用于 Linux?
    猜你喜欢
    • 1970-01-01
    • 2016-06-09
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 2017-03-18
    • 2014-05-21
    相关资源
    最近更新 更多