SQLite数据库被锁定?

3

我刚刚尝试向 SQLite 数据库添加行,其中文本部分包含“/”字符。

这是我进行连接的方式:

private SQLiteDatabase db;

this.db = this.getWritableDatabase();


    db.beginTransaction();

    ..............................
    insertion stuffs
    ..............................

    db.setTransactionSuccessful();
    db.endTransaction();

在尝试插入新行时,应用程序崩溃并在日志中给出以下错误:
08-24 19:01:09.477  27064-27064/? E/SQLiteLog﹕ (10) POSIX Error : 11 SQLite Error : 3850
08-24 19:01:09.477  27064-27064/? E/SQLiteLog﹕ (5) database is locked
Process: .MyService, PID: 17827
android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_mode

这是因为斜杠字符还是其他什么原因?在插入那一行之前它运行得很好,或者是我的表已经损坏了?

你确定在添加之前关闭了所有其他的数据库实例吗? - tyczj
@tyczj,我添加了我使用的SQLite事务方法。 - EspeH
1个回答

3

2
按相反的顺序:首先结束事务,然后关闭连接。 - Phantômaxx
我确实执行了 endTransaction,但不知何故我再也无法产生这个错误了。 - EspeH
1
@EspeH 我认为是一个未完成的事务导致了数据库的锁定。 - teoreda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接