我目前正在研究Java应用程序,目的是使用Jackcess开源库读取Microsoft Access文件。Java应用程序稍后将显示Access文件中包含的表。
到目前为止,这是我的代码:
public class Test {
public static void main(String[] args) throws IOException {
File file = new File("\\\\student.local\\Files\\Home\\nat12mja\\Downloads\\Testdoc.accdb");
Database db = DatabaseBuilder.open(file);
Table table = db.getTable("Table1");
for(Row row : table){
System.out.println(row.get("Field1"));
}
}
}
这些是我的进口:
import java.io.File;
import java.io.IOException;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.DatabaseBuilder;
另外,我已将以下Jar文件添加到引用的库中:
commons-lang-2.4.jar,commons-logging-1.1.jar,jackcess-2.0.2.jar
当我运行我的应用程序时,我收到此错误消息(System.out.println()按预期工作):
dec 21, 2013 1:54:27 EM com.healthmarketscience.jackcess.impl.IndexData setUnsupportedReason
WARNING: unsupported collating sort order SortOrder[1053(0)] for text index, making read-only
dec 21, 2013 1:54:27 EM com.healthmarketscience.jackcess.impl.DatabaseImpl readSystemCatalog
INFO: Could not find expected index on table MSysObjects
我已经测试了同一个Access文件的旧版本,但是问题仍然存在。
这是图书馆相关的问题吗?还是我想念其他东西?
Text
当数据库使用“常规”排序顺序时,Jackcess仅支持Access数据库中字段的索引(参考:here)。
根据相关的Microsoft Office支持页面:
要重置现有数据库的排序顺序,请选择要使用的语言,然后在数据库上运行压缩操作。
因此,对于Access 2010,这大概意味着File > Options
要从Access功能区栏中进行选择,在“常规”选项卡上为“新数据库排序顺序”选择“常规”或“常规-旧版”,...
...然后对数据库执行“压缩和修复”。
注意:如果Windows使用的是非英语语言环境,则上述步骤可能无法解决问题。有关详细信息,请参见此答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句