Reputation: 1909
I have a DB in Access. When I try to connect to it using the library UCanAccess:
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
String url = "jdbc:ucanaccess://" + fileSrc;
conn = DriverManager.getConnection(url, user, password);
s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT * FROM patients");
Get when connecting:
conn = DriverManager.getConnection(url, user, password);
Such errors:
WARNING:External file C:\medbase\medbase.mdb does not exist
WARNING:given file does not exist: C:\medbase\medbase.mdb
WARNING:unexpected token: ___________
WARNING:unexpected token: ________
WARNING:unexpected token: _______________________
WARNING:unexpected token: ______________________
WARNING:unexpected token: ____________________
WARNING:unexpected token: ____________
WARNING:unexpected token: __________________
WARNING:unexpected token: ____________________
WARNING:unexpected token: ___________
net.ucanaccess.jdbc.UcanaccessSQLException: unexpected token: _________DEAA914C_823A_11D2_ABBA_525400DB56E6_
at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:247)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at ru.bigspawn.AccessDatabase.<init>(AccessDatabase.java:20)
at ru.bigspawn.Main.main(Main.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: java.sql.SQLSyntaxErrorException: unexpected token: _________DEAA914C_823A_11D2_ABBA_525400DB56E6_
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.executeUpdate(Unknown Source)
at net.ucanaccess.converters.LoadJet.exec(LoadJet.java:1308)
at net.ucanaccess.converters.LoadJet.access$0(LoadJet.java:1303)
at net.ucanaccess.converters.LoadJet$TablesLoader.loadForeignKey(LoadJet.java:626)
at net.ucanaccess.converters.LoadJet$TablesLoader.loadTableFKs(LoadJet.java:819)
at net.ucanaccess.converters.LoadJet$TablesLoader.createFKs(LoadJet.java:901)
at net.ucanaccess.converters.LoadJet$TablesLoader.loadTables(LoadJet.java:970)
at net.ucanaccess.converters.LoadJet$TablesLoader.access$3(LoadJet.java:966)
at net.ucanaccess.converters.LoadJet.loadDB(LoadJet.java:1361)
at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:236)
... 9 more
Caused by: org.hsqldb.HsqlException: unexpected token: _________DEAA914C_823A_11D2_ABBA_525400DB56E6_
at org.hsqldb.error.Error.parseError(Unknown Source)
at org.hsqldb.ParserBase.unexpectedToken(Unknown Source)
at org.hsqldb.ParserBase.checkIsIrregularCharInIdentifier(Unknown Source)
at org.hsqldb.ParserDQL.checkIsSchemaObjectName(Unknown Source)
at org.hsqldb.ParserDQL.readNewSchemaObjectName(Unknown Source)
at org.hsqldb.ParserDQL.readNewDependentSchemaObjectName(Unknown Source)
at org.hsqldb.ParserDDL.compileAlterTable(Unknown Source)
at org.hsqldb.ParserDDL.compileAlter(Unknown Source)
at org.hsqldb.ParserCommand.compilePart(Unknown Source)
at org.hsqldb.ParserCommand.compileStatements(Unknown Source)
at org.hsqldb.Session.executeDirectStatement(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
... 20 more
If I export only the required table and connect to it, no errors. But I need to work with a full database.
EDITED
I removed references to none existent files in DB, but the error remained:
WARNING:unexpected token: ___________
WARNING:unexpected token: ________
WARNING:unexpected token: _______________________
WARNING:unexpected token: ______________________
WARNING:unexpected token: ____________________
WARNING:unexpected token: ____________
WARNING:unexpected token: __________________
WARNING:unexpected token: ____________________
WARNING:unexpected token: ___________
net.ucanaccess.jdbc.UcanaccessSQLException: unexpected token: _________DEAA914C_823A_11D2_ABBA_525400DB56E6_
at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:247)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at ru.bigspawn.AccessDatabase.<init>(AccessDatabase.java:22)
at ru.bigspawn.Main.main(Main.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: java.sql.SQLSyntaxErrorException: unexpected token: _________DEAA914C_823A_11D2_ABBA_525400DB56E6_
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.executeUpdate(Unknown Source)
at net.ucanaccess.converters.LoadJet.exec(LoadJet.java:1308)
at net.ucanaccess.converters.LoadJet.access$0(LoadJet.java:1303)
at net.ucanaccess.converters.LoadJet$TablesLoader.loadForeignKey(LoadJet.java:626)
at net.ucanaccess.converters.LoadJet$TablesLoader.loadTableFKs(LoadJet.java:819)
at net.ucanaccess.converters.LoadJet$TablesLoader.createFKs(LoadJet.java:901)
at net.ucanaccess.converters.LoadJet$TablesLoader.loadTables(LoadJet.java:970)
at net.ucanaccess.converters.LoadJet$TablesLoader.access$3(LoadJet.java:966)
at net.ucanaccess.converters.LoadJet.loadDB(LoadJet.java:1361)
at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:236)
... 9 more
Caused by: org.hsqldb.HsqlException: unexpected token: _________DEAA914C_823A_11D2_ABBA_525400DB56E6_
at org.hsqldb.error.Error.parseError(Unknown Source)
at org.hsqldb.ParserBase.unexpectedToken(Unknown Source)
at org.hsqldb.ParserBase.checkIsIrregularCharInIdentifier(Unknown Source)
at org.hsqldb.ParserDQL.checkIsSchemaObjectName(Unknown Source)
at org.hsqldb.ParserDQL.readNewSchemaObjectName(Unknown Source)
at org.hsqldb.ParserDQL.readNewDependentSchemaObjectName(Unknown Source)
at org.hsqldb.ParserDDL.compileAlterTable(Unknown Source)
at org.hsqldb.ParserDDL.compileAlter(Unknown Source)
at org.hsqldb.ParserCommand.compilePart(Unknown Source)
at org.hsqldb.ParserCommand.compileStatements(Unknown Source)
at org.hsqldb.Session.executeDirectStatement(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
... 20 more
Upvotes: 1
Views: 740
Reputation: 1710
It's because of the name of tables and/or FK in access which likely have Cyrillic characters or something like that. This issue, that is strictly limited to metadata(e.g. column or table names)in ucanaccess 2, will be totally solved with ucanaccess 3.0.0. and characters of any alphabet will be supported. I'm working on the latest ucanaccess3 tests...
Upvotes: 1