2012-04-06 16 views
5

Birden çok satırı tabloya eklemek için işlemler kullanıyorum. Ancak, hala SD Kart üzerinde sqlite tablo ile oluşturulmuş geçici sqlite-günlük dosyası görüyorum.Android SQLite Journal dosyası nasıl devre dışı bırakılır?

Günlük dosyasının oluşturulmasını nasıl devre dışı bırakırım?

Teşekkür

+3

Günlük dosyası sqlite db tarafından oluşturulduğunda, işlemler bir sebepten ötürü işlemin harici yollarla kesildiğinden emin olmak için db bozulmayacaktır. Senin yerinde olsam bunu yalnız bırakırdım. –

+0

@ Mr.Will Peki, Android'de, diğer sistemlerde bu varsayılan davranış olmadığı zaman, veritabanına hiçbir şey dokunulmadığında, günümüzde tutulan günlüğü nedir? – Michael

cevap

8

Hiçbir -Dergi dosya oluşturulur, böylece bellekte günlük tutmak seçebilir: Bu veritabanını açmak her zaman çalıştırmak için gereken

pragma journal_mode=memory; 

Not.

Ben ne daha iyi bir fikir edinmek için aşağıdaki okumanızı öneririz oluyor:

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

+0

Peki neden bu dosya 'PRAGMA journal_mode = OFF' kullandıktan ve veritabanını kapattıktan sonra hala buralarda? – Michael

+0

Çalışmıyor. bkz: http://stackoverflow.com/questions/39246368/how-to-turn-off-journaling-sqlite-in-android?noredirect=1#comment65828847_39246368 –

5

dergi işlemleri çalıştırırken kullanılan bir iç SQLite dosyasıdır (geri rulo sağlamak için). Bunu devre dışı bırakamazsın ve istemiyorsun.

+3

Aslında PRAGMA journal_mode = OFF' –

+0

ile şunu devre dışı bırakabilirsiniz: Aşağıdakileri denedim: İmleç c1 = db.rawQuery ("PRAGMA journal_mode = OFF", null); c1.close(). Etkisi yok gibi görünüyor. Ben hala – Arvind

+2

oluşturulduğu günlük dosyası görüyorum Evet cevabımda bahsettiğim gibi, pragma devam etmemek, böylece her DB açtığınızda çalıştırmak gerekir. –

-1

Sen

@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);   
} 

Sen kullanmak gerekir kodunun altına kullanarak dergi dosyayı silebilirsiniz imleç. İmleç, bir veritabanı sorgusu tarafından döndürülen sonuç kümesine rastgele okuma-yazma erişimi sağlayan bir arabirimdir. İmleci kullanırsanız günlük dosyası silinir.

0

Lütfen hatırlatırsanız, PRAGMA journal_mode=OFF veya PRAGMA journal_mode=memory bildirimleri işlem başına geçerlidir. Her işlem için ayarlamanız gerekir.

İlgili konular