2010-11-01 26 views
8

Bir geri alma modeline bir onay modelinden başvurumu adapte çalışıyorum. bilmiyorum olanlarınız için, bu tek bir tıklama ile bir şeyler silebilirsiniz ama bunun bir hata olduğunu eğer o/o için bir şeyler yapmak isteyen her zaman kullanıcıyı kesintiye ile değil de, tıpkı kolayca geri alabilirsiniz nerede can sıkıcı sormak "İstediğinizden emin misiniz ...?" iletişim yoluyla soru.SQLite DB değişiklikleri için tek adımlı geri alma nasıl uygulanır?

My uygulama Android SQLite DB tarafından desteklenen ve ben silme ve güncelleme işlemlerinin sınırlı sayıda geri almak isterler edilir. Ayrıca, sadece bir ardışık değişikliği geri almak için gerekiyor ve bilgi çok uzun süre etrafında sopa zorunda değildir. Ben geri al/redo okumaya

Herşey verileri depolamak için bir komut modeli kullanmak için söylüyor. Sorum şu: veritabanı değişikliklerini hafif bir şekilde nasıl geri yükleyebilirim?

+0

Değişikliklerin hala geri alınabilse bile, diğer sorgularda görünmesini istediğinizi mu söylüyorsunuz? –

+0

@ Space_C0wb0y Değişikliklerin kaydedilmesi ve uçucu olmaması gerekir, böylece diğer sorgular bunları okuyabilir, ancak son işlemi tamamen geri alabilmem gerekir. – CodeFusionMobile

cevap

3

Komut şablonunun fikri, her komutun nasıl geri alınabileceğini bilmesidir. Örneğin, bir AddPersonCommand veritabanınızda Persons masaları için yeni bir kayıt eklemek istiyorum. Bu komutu geri almak için, o kişiyi tekrar silmeniz gerekir.

Uygulama türüne ve veritabanının karmaşıklığına bağlı olarak, değişiklikleri normalde yaptığınız gibi veritabanına yazabilirsiniz. Her zaman son X komutu nesnelerini saklarsınız (X, geri alınabilecek eylemlerin sayısıdır) ve gerekirse undo-yöntemlerini çağırır.

1

Ayrıca, android'in SQLiteDatabase'i etrafındaki sarıcı olan RestorableSQLiteDatabase kitaplığını kullanabilir ve bir etiket adı kullanarak değişiklikleri geri almak için otomatik olarak geri yükleme SQL sorguları üretir.

İlgili konular