2017-08-05 8 views
-3

プラグマの安全な削除方法の使用例がありますか? 私のAndroidアプリにはそれが必要です。 私はすべてを試みましたが、いつもエラーが出ます。Android JavaでSqlite PRAGMA secure_deleteを使用する方法

db.rawQuery("PRAGMA secure_delete = FAST;",null); // Intermediate mode 
db.rawQuery("PRAGMA secure_delete = TRUE",null); // ON 
db.rawQuery("PRAGMA secure_delete = FALSE", null); // OFF 
Cursor c = db.rawQuery("PRAGMA secure_delete",null); // GET current state 
while (c.moveToNext()) { 
    for (int i=0; i < c.getCount();i++) { 
     Log.d("PRAGMA","Result ==>" + c.getString(i) + "<=="); 
    } 
} 

上記からログを: - - :

+0

どのように使用しようとしているかを示す[mcve]と、エラーに関連する完全なJavaスタックトレースを提供してください。 – CommonsWare

+0

FWIW、[このコード行](https://github.com/onionApps/ourbook/blob/master/app/src/main/java/onion/network/ChatDatabase.java#L48)は、誰かがそれを試している方法を示しています。私はそのコードがうまくいくかどうか分かりませんが、それは妥当と思われます。 – CommonsWare

答えて

0

PRAGMA secure_deleteの使用

08-07 17:20:34.590 11030-11030/? D/PRAGMA: Result ==>0<==

をオフにしすなわち、FASTも返す(上)TRUE、0を返します1

注!すべてが結果0または1でカーソルを戻すことができます。

注! trueまたはfalseの場合はそれぞれ1または0が機能しません。: -

08-07 17:19:51.831 10516-10516/? E/AndroidRuntime: FATAL EXCEPTION: main 
                Process: mjt.soqanda, PID: 10516 
                java.lang.RuntimeException: Unable to start activity ComponentInfo{mjt.soqanda/mjt.soqanda.MainActivity}: android.database.sqlite.SQLiteException: near "PRGARMA": syntax error (code 1): , while compiling: PRGARMA secure_delete = 1 
                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 

最小限のテストによると、

db.execSQL("PRAGMA seccure_delete = FALSE");

を使用して状態を変更しようとすると、何もしませんが、失敗しません。

+0

ダブル 'c'のために 'db.execSQL(" PRAGMA seccure_delete = FALSE ")'が失敗した可能性はありますか? (注:seCCure ') – PazO

関連する問題