I'm trying to use the jackcess library to create a database and import data into it. The problem I have found is that if I create a table named "type", which is a reserved word for jackcess, then I can not import data into this table using the ImportBuilder. A new table is generated with the prefix "x" (the new table will be named "xtype").
I also have tried to create the table with another name, import data and the rename to reserved name. But I wasn't able to find any method to rename tables.
The table has to be named "type".
What should I do?
Jackcess does appear reluctant to import a text file directly into a new table named
type, but the following code seems to do the trick:
// open existing database Database db = DatabaseBuilder.open(new File( "C:/Users/Gord/Desktop/foo.accdb")); String tempTableName = "TemporaryNameForTable"; // import CSV file into new table with temporary name ImportUtil.Builder ib = new ImportUtil.Builder(db); ib.setTableName(tempTableName); ib.importFile(new File("C:/Users/Gord/Desktop/foo.csv")); // rename the new table Table mso = db.getSystemTable("MSysObjects"); Row r = CursorBuilder.findRow(mso, Collections.singletonMap("Name", tempTableName)); r.put("Name", "type"); // new name is "type" mso.updateRow(r); db.close();