4

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

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

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

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

1 回答 1

3

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

Jackcess 可以执行 SQL 查询吗?

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

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

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

SELECT * FROM Customers WHERE City='wherever'

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

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

SELECT * FROM MySavedQuery
于 2014-04-23T17:45:14.777 回答