我正在尝试通过代码更改数据库的journal_mode。我尝试了SQLiteDatabase.execSQL(“PRAGMA journal_mode = OFF”),但它失败了,因为,表达式“PRAGMA journal_mode = OFF”返回结果(我从终端验证了这一点),因此Android认为这是一个查询并抱怨我应该使用execQuery代替。但我想要执行的不是查询。
我还尝试将pragma表达式编译为SQLiteStatement并调用execute方法,但结果相同。
有人可以通过代码建议任何替代方案吗?
谢谢, 兰吉特
答案 0 :(得分:3)
也许你正在遇到这个execSQL docs谈论的问题:
使用enableWriteAheadLogging()时,此类会自动管理journal_mode。因此,如果您的应用使用enableWriteAheadLogging()
,请不要使用“PRAGMA journal_mode”语句设置journal_mode
检查您是否使用了提前写入日志,然后它可能会有效。
更新:正如Ranjit在评论中所说,这应该有效:
Cursor c1 = db.rawQuery("PRAGMA journal_mode=OFF", null);
c1.close();
答案 1 :(得分:0)