Pergunta

I am using transactions to insert multiple rows into table. But, I still see temporary sqlite-journal file being created on SD Card along with sqlite table.

How do I disable creation of journal file?

Thanks

Foi útil?

Solução

You can elect to keep the journal in memory so that no -journal file is created:

pragma journal_mode=memory;

Note that you need to run this each time you open the database.

I recommend that you read the following to get a better idea of what is going on:

http://www.sqlite.org/pragma.html#pragma_journal_mode

Outras dicas

The journal is an internal SQLite file that is used when running transactions (to ensure roll back). You cannot disable it, and you don't want to.

Please remind, the statement PRAGMA journal_mode=OFF or PRAGMA journal_mode=memory is valid per transaction base. You need to set it for every transaction.

You can delete journal file using below code

@Override
public void onOpen(SQLiteDatabase db) {         
    Cursor cc = db.rawQuery("PRAGMA journal_mode=DELETE",null);
    Log.i(TAG,"--- cursor count " + cc.getCount());     
    super.onOpen(db);        
}

You need to use cursor. Cursor is a interface provides random read-write access to the result set returned by a database query. The journal file will get delete if you use cursor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top