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
-~----------~----~----~----~------~----~------~--~---

Reply via email to