4

我正在尝试通过代码更改我的数据库的 journal_mode。我尝试了 SQLiteDatabase.execSQL("PRAGMA journal_mode=OFF") 但它失败了,因为表达式 "PRAGMA journal_mode=OFF" 返回了一个结果(我从终端验证了这一点),所以 Android 认为这是一个查询并抱怨我应该改用 execQuery 。但我要执行的不是查询。

我还尝试将 pragma 表达式编译为 SQLiteStatement 并调用 execute 方法,但结果相同。

有人可以提出任何替代方案来通过代码完成这项工作吗?

谢谢,兰吉特

4

2 回答 2

3

也许您遇到了execSQL 文档谈到的这个问题:

使用 enableWriteAheadLogging() 时,journal_mode 由此类自动管理。因此,如果您的应用正在使用 enableWriteAheadLogging(),请不要使用“PRAGMA journal_mode'”语句设置 journal_mode

检查您是否没有使用预写日志记录,然后它可能会起作用。

更新:正如 Ranjit 在评论中所说,这应该有效:

Cursor c1 = db.rawQuery("PRAGMA journal_mode=OFF", null); 
c1.close();
于 2011-03-02T05:19:28.233 回答
0

可以使用下一个命令来完成:

db.execSQL("PRAGMA journal_mode=OFF;");

(无需像罗伯特回答Cursor的其中一条评论中所建议的那样创建一个)

于 2017-07-14T08:49:03.700 回答