如何从Query而不是使用Jackcess的表中检索数据

时间:2014-04-23 09:32:14

标签: java ms-access jackcess

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

要从我使用此代码的表中获取数据:

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

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

1 个答案:

答案 0 :(得分:2)

根据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