में एकाधिक तालिकाओं को बनाने में समस्याएं मैं डेटाबेस में एकाधिक तालिकाओं को बनाने के लिए निम्न कोड का उपयोग कर रहा हूं। लेकिन, मुझे समझ में नहीं आता कि यह समस्या क्यों होती है।sqlite
private static final String TABLE_SMSFilter = "SMSFilter";
public void onCreate(SQLiteDatabase db)
{
Log.d("Test", "Control is in Oncreate()");
String CREATE_SMSSSCHEDULE_TABLE = "CREATE TABLE " + TABLE_SMSSchedule
+ "(" + KEY_ID + " INTEGER PRIMARY KEY autoincrement,"
+ KEY_NUMBER + " TEXT)";
String CREATE_PROFILE_SCHEDULE_TABLE = "CREATE TABLE "
+ TABLE_ProfileSchedule + "(" + ProfileSchedule_ID
+ " INTEGER PRIMARY KEY autoincrement,"
+ ProfileSchedule_NUMBER + " TEXT, "
+ ProfileSchedule_ProfileMode + " TEXT,"
+ ProfileSchedule_CalendarID + "INTEGER)";
String CREATE_SMS_FILTER_TABLE = "CREATE TABLE " + TABLE_SMSFilter
+ "(" + SMSFilter_ID + " INTEGER PRIMARY KEY autoincrement,"
+ SMSFilter_NUMBER + " TEXT)";
db.execSQL(CREATE_SMSSSCHEDULE_TABLE);
db.execSQL(CREATE_PROFILE_SCHEDULE_TABLE);
db.execSQL(CREATE_SMS_FILTER_TABLE);
}
// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + TABLE_SMSSchedule);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_ProfileSchedule);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_SMSFilter);
// Create tables again
onCreate(db);
}
यहाँ डालने समारोह
public void addSMSFilter(SMSFilter filterVariable)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(SMSFilter_NUMBER, filterVariable.getPhoneNumber()); // Contact
// Name
// values.put(KEY_PH_NO, contact.getPhoneNumber()); // Contact Phone
Log.d("test", "inserting" + filterVariable.getPhoneNumber());
// Inserting Row
db.insert(TABLE_SMSFilter, null, values);
db.close(); // Closing database connection
}
और अब मेरा मुख्य गतिविधि में, मैं इस कोड इस तालिका
DatabaseHandler db = new DatabaseHandler(this);
SMSFilter sms = new SMSFilter("1234556");
db.addSMSFilter(sms);
में डालने के लिए प्रयोग किया जाता है, लेकिन यह मेरे कि कोई त्रुटि देता है तालिका "एसएमएसफिल्टर" मिला।
लॉग परिणाम जब databse version number
बदल गया है
11-25 22:52:22.643: I/Database(12209): sqlite returned: error code = 1, msg = no such table: SMSFilter
11-25 22:52:22.643: E/Database(12209): Error inserting PhoneNo=1234556
11-25 22:52:22.643: E/Database(12209): android.database.sqlite.SQLiteException: no such table: SMSFilter: , while compiling: INSERT INTO SMSFilter(PhoneNo) VALUES(?);
11-25 22:52:22.643: E/Database(12209): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
11-25 22:52:22.643: E/Database(12209): at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91)
11-25 22:52:22.643: E/Database(12209): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64)
11-25 22:52:22.643: E/Database(12209): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:80)
11-25 22:52:22.643: E/Database(12209): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:36)
11-25 22:52:22.643: E/Database(12209): at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1212)
11-25 22:52:22.643: E/Database(12209): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1610)
11-25 22:52:22.643: E/Database(12209): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1484)
11-25 22:52:22.643: E/Database(12209): at com.scheduler.database.DatabaseHandler.addSMSFilter(DatabaseHandler.java:327)
11-25 22:52:22.643: E/Database(12209): at com.schedule.test.TestActivity.onCreate(TestActivity.java:31)
11-25 22:52:22.643: E/Database(12209): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1069)
11-25 22:52:22.643: E/Database(12209): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751)
11-25 22:52:22.643: E/Database(12209): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2803)
11-25 22:52:22.643: E/Database(12209): at android.app.ActivityThread.access$2300(ActivityThread.java:135)
11-25 22:52:22.643: E/Database(12209): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2136)
11-25 22:52:22.643: E/Database(12209): at android.os.Handler.dispatchMessage(Handler.java:99)
11-25 22:52:22.643: E/Database(12209): at android.os.Looper.loop(Looper.java:144)
11-25 22:52:22.643: E/Database(12209): at android.app.ActivityThread.main(ActivityThread.java:4937)
11-25 22:52:22.643: E/Database(12209): at java.lang.reflect.Method.invokeNative(Native Method)
11-25 22:52:22.643: E/Database(12209): at java.lang.reflect.Method.invoke(Method.java:521)
11-25 22:52:22.643: E/Database(12209): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
11-25 22:52:22.643: E/Database(12209): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-25 22:52:22.643: E/Database(12209): at dalvik.system.NativeStart.main(Native Method)
संपूर्ण लॉगकैट क्या कहता है? – Ahmad
@ अहमद अद्यतन प्रश्न देखें –
क्या आपने ऐप को अनइंस्टॉल करने का प्रयास किया था और फिर इसे पुनः इंस्टॉल कर दिया था? – Luksprog