我有一个Access DB,为了让工作更轻松,我对DB进行了查询。我如何从查询中而不是从表中获取数据?
要从我使用此代码的表中获取数据:
Table table = db.getTable("matchTable");
Cursor cursor = CursorBuilder.createCursor(table);
while (cursor.findNextRow(Collections.singletonMap("idMatch", 15))) {
Row row = cursor.getCurrentRow();
...
}
答案 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