2012-07-05 14 views

cevap

3

Yaptığım gibi ayrı bir veritabanı oluşturmak, mevcut olandan her şeyi yeni bir kopyaya kopyalamak ve daha sonra eski veritabanını oraya bırakmak ve bilgileri geçici veritabanından geri kopyalamak. Orada bunu yapmak için başka bir yoludur ama olup olmadığını, bu

+0

çok daha kolay gibi görünüyor. SQLiteOpenHelper'ı kullanıyorum. Yani DB zaten varsa onCreate() hiçbir zaman çağrılmaz. Sürüm numarası arttığında, onUpdate() çağrılır. OnUpdate() Yeni tablomu "var değilse tablo oluştur" ekledim. SQLITE.ORG belgelerinden: Ancak, "IF NOT EXISTS" deyimi CREATE TABLE ifadesinin bir parçası olarak belirtilmişse ve aynı adın bir tablosu veya görünümü zaten mevcutsa, CREATE TABLE komutunun hiçbir etkisi yoktur (ve hata mesajı alınmadı). Şimdi masa oluşturuldu ve iyi. – venni

0

, SQLiteOpenHelper genişleten bir sınıf oluşturun onOpen (SQLiteDatabase db) geçersiz hakkında duymak tablo oluşturma ile bir String yaratacak eğer

emin sorgulayın ve db.execSQL (String str) kullanın;

4

Daha kolay görünüyor. SQLiteOpenHelper'ı kullanıyorum. Yani DB zaten mevcut ise onCreate() asla çağrılmamıştır. Sürüm numarası arttığında, onUpdate() çağrılır. OnUpdate() 'de yeni tablomu "var olsaydı tablo oluştur" ekledim. SQLITE.ORG belgelerinden: Ancak, "IF NOT EXISTS" deyimi CREATE TABLE deyiminin bir parçası olarak belirtilmişse ve aynı adın bir tablosu veya görünümü zaten mevcutsa, CREATE TABLE komutunun hiçbir etkisi yoktur (ve hata mesajı verilir). Şimdi masa oluşturuldu ve iyi. Eğer istediğiniz veritabanının eski versiyonu

İşte
@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    if (oldVersion == xyz) { 
     db.execSQL(QUERY_CREATE_TABLE_..........NEW); 
    } 
} 

xyz: - gibi

0

varolan veritabanında yeni bir tablo eklemek istiyorsanız o zaman ONUPGRADE içinde bu yapmalıyım() yöntemi yeni tablo ekle.

Ve sonra ONUPGRADE() yöntem çağrıları veritabanı sürümü artırmak ve durum tablo eklemek kullanırken Database_Version

artırmak unutmayın.

Ve ayrıca, mevcut tablolarla onCreate içinde yeni tablo() oluşturmak gibi taze yükler için: -

@Override 
public void onCreate(SQLiteDatabase db) { 
     db.execSQL(QUERY_CREATE_TABLE_..........OLD); 
     db.execSQL(QUERY_CREATE_TABLE_..........OLD); 
     db.execSQL(QUERY_CREATE_TABLE_..........NEW); 
} 
İlgili konular