我有一个Access数据库,为了让工作更容易,我对数据库进行了查询。如何从查询中获取数据而不是从表中获取数据?
为了从表格中获取数据,我使用了以下代码:
Table table = db.getTable("matchTable");
Cursor cursor = CursorBuilder.createCursor(table);
while (cursor.findNextRow(Collections.singletonMap("idMatch", 15))) {
Row row = cursor.getCurrentRow();
...
}
根据Jackess常见问题解答(特别是此处):
Jackess可以执行SQL查询吗?
自1.1.19版本起,Jackess能够读取保存在Access数据库中的查询(即解释存储在系统查询表中的数据)。但是,Jackess不具备执行这些查询的能力。
这意味着Jackess可以检索与Access中保存的查询相关联的SQL代码,但Jackess不能执行该SQL代码(或返回其结果)。
换句话说,如果我们在Access中有一个名为[MySavedQuery]的已保存查询,那么Jackess可以检索包含SQL命令的String
,例如
SELECT * FROM Customers WHERE City='wherever'
但是jaccess无法执行该命令来实际返回该查询的结果。此外,Jackess方法db.getTable()
可以打开Access表,但不能像打开表一样打开已保存的查询。
但是,UCanAccess可以执行保存的Access查询并返回查询结果。也就是说,UCanAccess可以进行
SELECT * FROM MySavedQuery