کلیدستان

نسخه‌ی کامل: مشکل در قرائت دیتابیس، در برنامه اندروید
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
باسلام
برنامه ای با استفاده از دیتابیس نوشتم ولی متاسفانه اون رو اجرا نمیکنه ارور های اون به شرح ذیل است :

کد پی‌اچ‌پی:
09-24 20:05:58.956D/dalvikvm(3952): GC_FOR_ALLOC freed 69K4free 7961K/8259Kpaused 13mstotal 13ms
09
-24 20:05:58.964I/dalvikvm-heap(3952): Grow heap (frag case) to 15.849MB for 8370940-byte allocation
09
-24 20:05:58.976D/dalvikvm(3952): GC_FOR_ALLOC freed <1K2free 16135K/16455Kpaused 12mstotal 12ms
09
-24 20:05:58.976D/dalvikvm(3952): GC_CONCURRENT freed 1K2free 16135K/16455Kpaused 1ms+1mstotal 3ms
09
-24 20:05:59.160D/libEGL(3952): loaded /system/lib/egl/libEGL_emulation.so
09
-24 20:05:59.160D/(3952): HostConnection::get() New Host Connection established 0xb789a240tid 3952
09
-24 20:05:59.168D/libEGL(3952): loaded /system/lib/egl/libGLESv1_CM_emulation.so
09
-24 20:05:59.168D/libEGL(3952): loaded /system/lib/egl/libGLESv2_emulation.so
09
-24 20:05:59.252W/EGL_emulation(3952): eglSurfaceAttrib not implemented
09
-24 20:05:59.260D/OpenGLRenderer(3952): Enabling debug mode 0
09
-24 20:05:59.324W/EGL_emulation(3952): eglSurfaceAttrib not implemented
09
-24 20:05:59.448D/OpenGLRenderer(3952): TextureCache::getcreate texture(0xb78c8f38): namesizemSize 183709288370928
09
-24 20:06:02.188E/SQLiteLog(3952): (1near ")"syntax error
09
-24 20:06:02.188W/System.err(3952): android.database.sqlite.SQLiteExceptionnear ")"syntax error (code 1): , while compilingCREATE  TABLE Love(id INTEGER PRIMARY KEY  NOT NULL,khande INTEGER NOT NULL  DEFAULT 0fav INTEGER NOT NULL  DEFAULT 0onvan TEXTmatn TEXTmanba TEXT,  )
09-24 20:06:02.192W/System.err(3952):     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
09-24 20:06:02.192W/System.err(3952):     at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
09-24 20:06:02.192W/System.err(3952):     at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
09-24 20:06:02.192W/System.err(3952):     at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
09-24 20:06:02.192W/System.err(3952):     at android.database.sqlite.SQLiteProgram.<init>;(SQLiteProgram.java:58)
09-24 20:06:02.192W/System.err(3952):     at android.database.sqlite.SQLiteStatement.<init>;(SQLiteStatement.java:31)
09-24 20:06:02.192W/System.err(3952):     at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1663)
09-24 20:06:02.192W/System.err(3952):     at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1594)
09-24 20:06:02.192W/System.err(3952):     at ir.Reyhaneh.database.DBAdapter$DatabaseHelper.onCreate(DBAdapter.java:69)
09-24 20:06:02.192W/System.err(3952):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
09-24 20:06:02.192W/System.err(3952):     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
09-24 20:06:02.192W/System.err(3952):     at ir.Reyhaneh.database.DBAdapter.open(DBAdapter.java:91)
09-24 20:06:02.192W/System.err(3952):     at ir.Reyhaneh.AkharZaman.MainActivity.onCreate(MainActivity.java:47)
09-24 20:06:02.192W/System.err(3952):     at android.app.Activity.performCreate(Activity.java:5008)
09-24 20:06:02.192W/System.err(3952):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
09-24 20:06:02.192W/System.err(3952):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
09-24 20:06:02.192W/System.err(3952):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
09-24 20:06:02.192W/System.err(3952):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
09-24 20:06:02.192W/System.err(3952):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
09-24 20:06:02.192W/System.err(3952):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-24 20:06:02.192W/System.err(3952):     at android.os.Looper.loop(Looper.java:137)
09-24 20:06:02.192W/System.err(3952):     at android.app.ActivityThread.main(ActivityThread.java:4745)
09-24 20:06:02.192W/System.err(3952):     at java.lang.reflect.Method.invokeNative(Native Method)
09-24 20:06:02.192W/System.err(3952):     at java.lang.reflect.Method.invoke(Method.java:511)
09-24 20:06:02.192W/System.err(3952):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
09-24 20:06:02.192W/System.err(3952):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-24 20:06:02.192W/System.err(3952):     at dalvik.system.NativeStart.main(Native Method)
09-24 20:06:02.192I/FullBook Esfandune(3952): 3
09
-24 20:06:02.196E/SQLiteLog(3952): (1no such tableLove
09
-24 20:06:02.196D/AndroidRuntime(3952): Shutting down VM
09
-24 20:06:02.196W/dalvikvm(3952): threadid=1thread exiting with uncaught exception (group=0xa622a288)
09-24 20:06:02.196E/AndroidRuntime(3952): FATAL EXCEPTIONmain
09
-24 20:06:02.196E/AndroidRuntime(3952): java.lang.RuntimeExceptionUnable to start activity ComponentInfo{ir.Reyhanehsoft.blog.Love_Famouse/ir.Reyhaneh.AkharZaman.MainActivity}: android.database.sqlite.SQLiteExceptionno such tableLove (code 1): , while compilingSELECT idonvanmatnmanbafavkhande FROM Love
09
-24 20:06:02.196E/AndroidRuntime(3952):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.os.Looper.loop(Looper.java:137)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.app.ActivityThread.main(ActivityThread.java:4745)
09-24 20:06:02.196E/AndroidRuntime(3952):     at java.lang.reflect.Method.invokeNative(Native Method)
09-24 20:06:02.196E/AndroidRuntime(3952):     at java.lang.reflect.Method.invoke(Method.java:511)
09-24 20:06:02.196E/AndroidRuntime(3952):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
09-24 20:06:02.196E/AndroidRuntime(3952):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-24 20:06:02.196E/AndroidRuntime(3952):     at dalvik.system.NativeStart.main(Native Method)
09-24 20:06:02.196E/AndroidRuntime(3952): Caused byandroid.database.sqlite.SQLiteExceptionno such tableLove (code 1): , while compilingSELECT idonvanmatnmanbafavkhande FROM Love
09
-24 20:06:02.196E/AndroidRuntime(3952):     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.database.sqlite.SQLiteProgram.<init>;(SQLiteProgram.java:58)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.database.sqlite.SQLiteQuery.<init>;(SQLiteQuery.java:37)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1161)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1032)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1200)
09-24 20:06:02.196E/AndroidRuntime(3952):     at ir.Reyhaneh.database.DBAdapter.getAllContacts(DBAdapter.java:119)
09-24 20:06:02.196E/AndroidRuntime(3952):     at ir.Reyhaneh.AkharZaman.MainActivity.onCreate(MainActivity.java:49)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.app.Activity.performCreate(Activity.java:5008)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
09-24 20:06:02.196E/AndroidRuntime(3952):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
09-24 20:06:02.196E/AndroidRuntime(3952):     ... 11 more 

* اسم جدول دیتابیس من هم Love هست .
لطفا راهنمایی کنید .
سلام.
از پیام هایی که نمایش داده شده است، خط زیر را ببینید :

کد:
09-24 20:06:02.188: W/System.err(3952): android.database.sqlite.SQLiteException: near ")": syntax error (code 1): , while compiling: CREATE TABLE Love(id INTEGER PRIMARY KEY NOT NULL,khande INTEGER NOT NULL DEFAULT 0, fav INTEGER NOT NULL DEFAULT 0, onvan TEXT, matn TEXT, manba TEXT, )

که اعلام کرده است که دستور مربوط به ساخت (CREATE) پایگاه داده، درست نوشته نشده است و بنابراین هیچ پایگاه داده ای ساخته نشده است. بنابراین در تمام مراحل بعدی کار با پایگاه داده نیز، خطا اعلام خواهد شد.
عبارت مربوط به دستور ساخت پایگاه داده را چک کنید که صحیح باشد.
در مورد دستوری که نوشته اید، این قسمت رو ببینید :

کد:
matn TEXT, manba TEXT,  )

در انتهای آن، دیگر نیازی به علامت , نیست، بنابراین آن را به شکل زیر تغییر بدهید :

کد:
matn TEXT, manba TEXT)

ببینید که باز هم خطا میده یا نه.

سلام استاد
از پاسخ شما بسیار متشکرم . به جز اون مشکلی که شما گفتید ، یک ایراد دیگه داشتم که اسم جدول دیتابیس رو اشتباه در DBAdapter نوشته بودم که جواب اون رو از سایت stackoverflow.com پیدا کردم .

حقیقتا نزدیک یک هفته شده دارم دنبال ایرادم می گردم که خدارا شکر برطرف شد .

یا علی مدد