before getCount, you should add cursor.moveToFirst(). On Thu, Oct 22, 2009 at 1:05 PM, brucko <geoff.bruck...@gmail.com> wrote:
> > I'm having trouble with a SQLite database that I have on the SDCard. > > when I do a query that returns a cursor I keep getting an error when i > try to call the count() method. > > Here's the code > > Cursor cursor = mDb.query > (LOGON_TABLE, // table > new String[] { KEY_ROW_ID }, > // > columns, > KEY_USER_NAME + " = ? AND " + > KEY_CARRIER_ID + " = ? AND " > + > KEY_DEPOT + " = ? AND " + > KEY_TIME + " = ? AND " + > KEY_RUN + " = ?", > //selection, > new String[] { user, carrier, depot, > logonTime, run },// > selectionArgs, > null, null, null, > // > groupBy, having, orderBy > " 1 > "); // > limit > > if (cursor.getCount() < 1) { <--error occurs here > ... > } > > It gives a datatype mismatch as a result of calling count... > > 10-22 04:20:21.330: ERROR/AndroidRuntime(15768): > android.database.sqlite.SQLiteException: datatype mismatch > > 10-22 04:20:21.330: ERROR/AndroidRuntime(15768): at > android.database.sqlite.SQLiteQuery.native_fill_window(Native Method) > 10-22 04:20:21.330: ERROR/AndroidRuntime(15768): at > android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:75) > 10-22 04:20:21.330: ERROR/AndroidRuntime(15768): at > android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:288) > 10-22 04:20:21.330: ERROR/AndroidRuntime(15768): at > android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:269) > 10-22 04:20:21.330: ERROR/AndroidRuntime(15768): at > android.database.AbstractCursor.moveToPosition(AbstractCursor.java: > 171) > 10-22 04:20:21.330: ERROR/AndroidRuntime(15768): at > android.database.AbstractCursor.moveToFirst(AbstractCursor.java:248) > 10-22 04:20:21.330: ERROR/AndroidRuntime(15768): at > com.paperfree.database.DatabaseService.insertLogon > (DatabaseService.java:288) > 10-22 04:20:21.330: ERROR/AndroidRuntime(15768): at > com.paperfree.load.LoadView$2.onServiceConnected(LoadView.java:76) > 10-22 04:53:20.471: ERROR/AndroidRuntime(22252): > android.database.sqlite.SQLiteException: datatype mismatch > 10-22 04:53:20.471: ERROR/AndroidRuntime(22252): at > android.database.sqlite.SQLiteQuery.native_fill_window(Native Method) > 10-22 04:53:20.471: ERROR/AndroidRuntime(22252): at > android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:75) > 10-22 04:53:20.471: ERROR/AndroidRuntime(22252): at > android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:288) > > 10-22 04:53:20.471: ERROR/AndroidRuntime(22252): at > android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:269) > > 10-22 04:53:20.471: ERROR/AndroidRuntime(22252): at > com.paperfree.database.DatabaseService.insertLogon > (DatabaseService.java:268) > > The database file is on the sdCard and all the columns are there, but > I haven't put any data there so I am expexcting a cursor with zero > rows. > > Thanks > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---