4

コードを使用して、データベースの journal_mode を変更しようとしています。私は SQLiteDatabase.execSQL("PRAGMA journal_mode=OFF") を試しましたが、式 "PRAGMA journal_mode=OFF" が結果を返すため (ターミナルからこれを確認しました)、Android はこれがクエリであると判断し、私が代わりに execQuery を使用する必要があります。しかし、私が実行しようとしているのはクエリではありません。

また、プラグマ式を SQLiteStatement にコンパイルして、execute メソッドを呼び出してみましたが、結果は同じでした。

誰かがコードを介してこれを機能させるための代替案を提案できますか?

ありがとう、ランジット

4

2 に答える 2

3

おそらく、あなたはexecSQL docsが話しているこの問題に苦しんでいます:

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 に答える