isn't options a forbidden name for a table?? it's like a table called delete or select... select * from select...
you should definitely try with another tablename. 2009/5/11 moazzamk <moazz...@gmail.com> > > Use a different database name and see if that helps (since it will run > your onCreate() method). You can also try changing the name of the > table to something else (like user_options) and see if that works. I > wonder if options is an internal keyword used by SQLite. > > - Moazzam > http://moazzam-khan.com/ > > On May 7, 1:42 pm, Glen Humphrey <glendon.humphr...@gmail.com> wrote: > > It looks to me like your program tries to fetch from the options table > > before it has been created. > > > > On May 7, 2:28 am, "mic.ger...@gmail.com" <mic.ger...@gmail.com> > > wrote: > > > > > Hi all, > > > I am developing an application that need a database (store username > > > and password) and when I try to access to it I obtain those errors in > > > the logCat : > > > > > 05-07 09:02:17.194: ERROR/AndroidRuntime(520): Uncaught handler: > > > thread main exiting due to uncaught exception > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): > > > android.database.sqlite.SQLiteException: no such table: options: , > > > while compiling: SELECT DISTINCT _id, title, body FROM options WHERE > > > _id=0 > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.database.sqlite.SQLiteProgram.native_compile(Native Method) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.database.sqlite.SQLiteProgram.compile(SQLiteProgram.java:110) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:48) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.database.sqlite.SQLiteDirectCursorDriver.query > > > (SQLiteDirectCursorDriver.java:49) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.database.sqlite.SQLiteDatabase.rawQueryWithFactory > > > (SQLiteDatabase.java:1017) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.database.sqlite.SQLiteDatabase.queryWithFactory > > > (SQLiteDatabase.java:905) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:863) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > com.android.application.MonkeySMS.OptionDb.fetchOption(OptionDb.java: > > > 84) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > com.android.application.MonkeySMS.Option$1.onClick(Option.java:70) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.view.View.performClick(View.java:2129) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.view.View.onTouchEvent(View.java:3543) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.widget.TextView.onTouchEvent(TextView.java:4664) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.view.View.dispatchTouchEvent(View.java:3198) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:857) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:857) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:857) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:857) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:857) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > com.android.internal.policy.impl.PhoneWindow > > > $DecorView.superDispatchTouchEvent(PhoneWindow.java:1593) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent > > > (PhoneWindow.java:1089) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.app.Activity.dispatchTouchEvent(Activity.java:1871) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > com.android.internal.policy.impl.PhoneWindow > > > $DecorView.dispatchTouchEvent(PhoneWindow.java:1577) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.view.ViewRoot.handleMessage(ViewRoot.java:1140) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.os.Handler.dispatchMessage(Handler.java:88) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.os.Looper.loop(Looper.java:123) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > android.app.ActivityThread.main(ActivityThread.java:3739) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > java.lang.reflect.Method.invokeNative(Native Method) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > java.lang.reflect.Method.invoke(Method.java:515) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run > > > (ZygoteInit.java:739) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > com.android.internal.os.ZygoteInit.main(ZygoteInit.java:497) > > > 05-07 09:02:17.213: ERROR/AndroidRuntime(520): at > > > dalvik.system.NativeStart.main(Native Method) > > > > > The problem appends when the program arrives at this line in my > > > program : > > > > > if(mOptionDb.fetchOption(0)==null && mOptionDb.fetchOption(1)==null){ > > > mOptionDb.createOption(titleDb0, > txtUsername.toString > > > ()); > > > mOptionDb.createOption(titleDb1, > txtPassword.toString > > > ()); > > > } > > > > > mOptionDb is an OptionDb. > > > > > The OptionDb file is the following : > > > > > public class OptionDb { > > > > > private Context mCtx; > > > > > public static final String KEY_TITLE = "title"; > > > public static final String KEY_BODY = "body"; > > > public static final String KEY_ROWID = "_id"; > > > > > private static final String TAG = "OptionDbAdapter"; > > > private DatabaseHelper mDbHelper; > > > private SQLiteDatabase mDb; > > > > > private static final String DATABASE_CREATE = > > > "create table options (_id integer primary key autoincrement, > > > " > > > + "title text not null, body text not null);"; > > > > > private static final String DATABASE_NAME = "data"; > > > private static final String DATABASE_TABLE = "options"; > > > private static final int DATABASE_VERSION = 2; > > > > > private static class DatabaseHelper extends SQLiteOpenHelper { > > > > > DatabaseHelper(Context context) { > > > super(context, DATABASE_NAME, null, DATABASE_VERSION); > > > } > > > > > @Override > > > public void onCreate(SQLiteDatabase db) { > > > > > db.execSQL(DATABASE_CREATE); > > > } > > > > > @Override > > > public void onUpgrade(SQLiteDatabase db, int oldVersion, int > > > newVersion) { > > > Log.w(TAG, "Upgrading database from version " + oldVersion > > > + " to " > > > + newVersion + ", which will destroy all old > > > data"); > > > db.execSQL("DROP TABLE IF EXISTS notes"); > > > onCreate(db); > > > } > > > } > > > > > public OptionDb(Context ctx) { > > > this.mCtx = ctx; > > > } > > > > > public OptionDb open() throws SQLException { > > > mDbHelper = new DatabaseHelper(mCtx); > > > mDb = mDbHelper.getWritableDatabase(); > > > return this; > > > } > > > > > public void close(){ > > > mDbHelper.close(); > > > } > > > > > public void createOption(String title, String body) { > > > ContentValues initialValues = new ContentValues(); > > > initialValues.put(KEY_TITLE, title); > > > initialValues.put(KEY_BODY, body); > > > > > mDb.insert(DATABASE_TABLE, null, initialValues); > > > //return mDb.insert(DATABASE_TABLE, null, initialValues); > > > } > > > > > public boolean deleteOption(long rowId) { > > > > > return mDb.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, > > > null) > 0; > > > } > > > > > public Cursor fetchOption(long rowId) throws SQLException { > > > > > Cursor mCursor = > > > > > mDb.query(true, DATABASE_TABLE, new String[] > > > {KEY_ROWID, > > > KEY_TITLE, KEY_BODY}, KEY_ROWID + "=" + rowId, > > > null, > > > null, null, null, null); > > > if (mCursor != null) { > > > mCursor.moveToFirst(); > > > } > > > return mCursor; > > > > > } > > > > > public boolean updateOption(long rowId, String title, String body) > > > { > > > ContentValues args = new ContentValues(); > > > args.put(KEY_TITLE, title); > > > args.put(KEY_BODY, body); > > > > > return mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" + > > > rowId, null) > 0; > > > } > > > > > } > > > > > I don't know if the problem comes from the way the program access the > > > database or if database needs permission... > > > I am a little bit lost. > > > Thank you for your help. > > > Michaël > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Beginners" group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~----------~----~----~----~------~----~------~--~---