[英]SqlJet Transactions misuse error
我正在尝试使用SqlJet事务时访问我的数据库,但我总是得到这个错误
org.tmatesoft.sqljet.core.SqlJetException: MISUSE: error code is MISUSE
这是我的代码:
SqlJetDb db = null;
try {
File dbFile = new File(Configuration.DATABASE_NAME);
db = SqlJetDb.open(dbFile, true);
db.getOptions().setAutovacuum(true);
db.beginTransaction(SqlJetTransactionMode.READ_ONLY);
ISqlJetTable table = db.getTable("customers");
ISqlJetCursor cursor = table.order(table.getPrimaryKeyIndexName());
if (!cursor.eof()) {
do {
getInitData(cursor);
} while (cursor.next());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
db.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
有人知道这个问题有什么问题吗? 由于这个列表,实际的库使用是不正确的,但我已经检查出来,并没有任何问题。 http://grepcode.com/file/repo1.maven.org/maven2/org.tmatesoft.sqljet/sqljet/1.0.2/org/tmatesoft/sqljet/core/SqlJetErrorCode.java#SqlJetErrorCode
谢谢!
这是因为您正在尝试打开已由另一个进程打开的数据库。 它发生在我身上,因为dbs是由Firefox SQLite Manager打开的,但基本上它可能由访问你的数据库的任何其他线程或进程发生。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.