/ / डेटाबेस संलग्न करके एंड्रॉइड डेटाबेस अपडेट - एंड्रॉइड, साइक्लाईट, एंड्रॉइड-साइक्लाइट, स्क्वलाइटोपेन्हेल्पर, एंड्रॉइड-साइकल

Android डेटाबेस डेटाबेस संलग्न करके अपडेट करें - android, sqlite, android-sqlite, sqliteopenhelper, android-sql

मेरे पास एक ऐप है और मैं नए मूल्यों को जोड़कर इसके डेटाबेस को अगले संस्करण में अपडेट करना चाहता हूं। नया डेटा उनके अस्थायी डेटाबेस में है।

यह मरा है onUpgrade() तरीका:

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// version 2

try{

db.execSQL("ALTER TABLE tbl_questions ADD COLUMN q_fav BOOLEAN DEFAULT 0");
db.execSQL("ALTER TABLE tbl_users ADD COLUMN user_voted BOOLEAN DEFAULT 0");
db.execSQL("INSERT INTO tbl_categories (_id, cat_title) VALUES (3, "u0639u0645u0648u0645u06CC (u0639u0644u0648u0645 u0627u0646u0633u0627u0646u06CC)")");
db.execSQL("CREATE TABLE [tbl_schedule] (" +
"[_id] INTEGER PRIMARY KEY, " +
"[lesson_name] VARCHAR, " +
"[lesson_unit] VARCHAR, " +
"[teacher_name] VARCHAR, " +
"[exam_date] VARCHAR, " +
"[description] VARCHAR);");
db.setTransactionSuccessful();
db.endTransaction();
db.execSQL("ATTACH DATABASE "/data/data/com.andrun.payamenoo/databases/db_temp.sqlite" AS SRC;");
db.beginTransaction();
db.execSQL("INSERT INTO MAIN.tbl_questions SELECT * FROM SRC.tbl_questions;");
//db.execSQL("DETACH SRC;");
}catch(Exception e){
e.printStackTrace();
}finally{
}

super.onUpgrade(db, oldVersion, newVersion);
}

चार पहले काम अच्छी तरह से। समस्या क्वेरी संलग्न है। कोड doesn "किसी भी अपवाद या किसी भी त्रुटि फेंक नहीं है, लेकिन यह भी डेटाबेस पर कोई प्रभाव नहीं पड़ता है और नया डेटा" जोड़ा नहीं जाता है।

मैं यह कैसे तय करुं?

उत्तर:

उत्तर № 1 के लिए 1

SQLiteDatabaseOpenHelper कंस्ट्रक्टर में आपके द्वारा पास की गई संख्या को बढ़ाना होगा।

यह DB_VERSION है, इसे बढ़ाकर, आपकाonUpgrad विधि को पुराने वर्जन (= जिस संस्करण से) और newVersion (= DB_VERSION जिसे आपने अभी तय किया है) के मापदंडों के साथ कहा जाएगा, इन पूर्णांकों के आधार पर आप प्रत्येक संस्करणों के लिए प्रत्येक तालिका से कर सकते हैं।