[android-beginners] Re: Problem with cursors

2010-06-17 Thread beka
I always use this method, so far it never crash yet

Cursor c;
...
//check if there is any cursor
if (c.getCount()  0) {
   //move to the first cursor
   c.moveToFirst();
   do {
  //retrieve the cursor data here
  .
   } while (cur.moveToNext()); //check if next cursor is still valid
}


On Jun 17, 4:25 pm, Justin Anderson janderson@gmail.com wrote:
 Did this help?

 --
 There are only 10 types of people in the world...
 Those who know binary and those who don't.
 --

 On Wed, Jun 16, 2010 at 2:38 PM, Justin Anderson 
 janderson@gmail.comwrote:

  Also, I use different methods in my while loop:

  Cursor dbCursor;
  ...
  dbCursor.moveToFirst();
  while (!dbCursor.isAfterLast())
  {
    //do stuff
    dbCursor.moveToNext();

  }

  --
  There are only 10 types of people in the world...
  Those who know binary and those who don't.
  --

  On Wed, Jun 16, 2010 at 2:07 PM, Mikey frak@gmail.com wrote:

  Mostly desperation - I will give your idea a try though - thanks!

  Mikey

  On 16 Jun 2010, at 21:04, Justin Anderson wrote:

  I'm not entirely sure, but I noticed my code is a little different than
  yours...

  Before I loop over the rows in the cursor I call moveToFirst().  So, with
  your code that would be c.moveToFirst() right before the while loop. I seem
  to remember having some weird issues with the Cursor class but haven't had
  any since I've made this change.

  Also, why are you setting c to null?  There really is no point in doing
  that as the garbage collector will get called on you move out of c's
  scope... which happens as soon as you leave the try block.

  Thanks,
  Justin

  --
  There are only 10 types of people in the world...
  Those who know binary and those who don't.
  --

  On Wed, Jun 16, 2010 at 12:13 PM, Mikey frak@gmail.com wrote:

  Hi,

  I am using a a Sqlite database in my application, but I am having a
  problem with it crashing (seemingly) randomly with the exception in 
  Cursor.
   (I have been unable to recreate the error to give you the exact exception
  but it is something like the cursor being in an invalid state.

  I am using the cursor as follows:

  public ArrayListString fetchPermanent() {
   ArrayListString rows = new ArrayListString();
  try {
   Cursor c = mDb.query(USERS, new String[] {SCREEN_NAME}, CONSTANT +
  ='C', null, null, null, null);
   if (c != null  c.getCount()  0) {
   while (!c.isLast()) {
  c.moveToNext();
   rows.add(c.getString(0));
  }
  c.close();
   c = null;
  }
   }
  catch (Exception e) {
  Log.e(DBERR, e.getMessage());
   }
  return rows;
   }

  Does anyone here have any idea what it is I am doing wrong?

  Mikey

  --
  You received this message because you are subscribed to the Google
  Groups Android Beginners group.

  NEW! Try asking and tagging your question on Stack Overflow at
 http://stackoverflow.com/questions/tagged/android

  To unsubscribe from this group, send email to
  android-beginners+unsubscr...@googlegroups.comandroid-beginners%2bunsubscr...@googlegroups.com
  For more options, visit this group at
 http://groups.google.com/group/android-beginners?hl=en

  --
  You received this message because you are subscribed to the Google
  Groups Android Beginners group.

  NEW! Try asking and tagging your question on Stack Overflow at
 http://stackoverflow.com/questions/tagged/android

  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

   --
  You received this message because you are subscribed to the Google
  Groups Android Beginners group.

  NEW! Try asking and tagging your question on Stack Overflow at
 http://stackoverflow.com/questions/tagged/android

  To unsubscribe from this group, send email to
  android-beginners+unsubscr...@googlegroups.comandroid-beginners%2bunsubscr...@googlegroups.com
  For more options, visit this group at
 http://groups.google.com/group/android-beginners?hl=en

-- 
You received this message because you are subscribed to the Google
Groups Android Beginners group.

NEW! Try asking and tagging your question on Stack Overflow at
http://stackoverflow.com/questions/tagged/android

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


[android-beginners] Re: Problem with cursors

2010-06-17 Thread beka
sorry, last line should be
while (c.moveToNext()); //check if next cursor is still valid

not cur.moveToNext() :p ...

On Jun 18, 10:03 am, beka id.b...@gmail.com wrote:
 I always use this method, so far it never crash yet

 Cursor c;
 ...
 //check if there is any cursor
 if (c.getCount()  0) {
    //move to the first cursor
    c.moveToFirst();
    do {
       //retrieve the cursor data here
       .
    } while (cur.moveToNext()); //check if next cursor is still valid

 }

 On Jun 17, 4:25 pm, Justin Anderson janderson@gmail.com wrote:

  Did this help?

  --
  There are only 10 types of people in the world...
  Those who know binary and those who don't.
  --

  On Wed, Jun 16, 2010 at 2:38 PM, Justin Anderson 
  janderson@gmail.comwrote:

   Also, I use different methods in my while loop:

   Cursor dbCursor;
   ...
   dbCursor.moveToFirst();
   while (!dbCursor.isAfterLast())
   {
     //do stuff
     dbCursor.moveToNext();

   }

   --
   There are only 10 types of people in the world...
   Those who know binary and those who don't.
   --

   On Wed, Jun 16, 2010 at 2:07 PM, Mikey frak@gmail.com wrote:

   Mostly desperation - I will give your idea a try though - thanks!

   Mikey

   On 16 Jun 2010, at 21:04, Justin Anderson wrote:

   I'm not entirely sure, but I noticed my code is a little different than
   yours...

   Before I loop over the rows in the cursor I call moveToFirst().  So, with
   your code that would be c.moveToFirst() right before the while loop. I 
   seem
   to remember having some weird issues with the Cursor class but haven't 
   had
   any since I've made this change.

   Also, why are you setting c to null?  There really is no point in doing
   that as the garbage collector will get called on you move out of c's
   scope... which happens as soon as you leave the try block.

   Thanks,
   Justin

   --
   There are only 10 types of people in the world...
   Those who know binary and those who don't.
   --

   On Wed, Jun 16, 2010 at 12:13 PM, Mikey frak@gmail.com wrote:

   Hi,

   I am using a a Sqlite database in my application, but I am having a
   problem with it crashing (seemingly) randomly with the exception in 
   Cursor.
    (I have been unable to recreate the error to give you the exact 
   exception
   but it is something like the cursor being in an invalid state.

   I am using the cursor as follows:

   public ArrayListString fetchPermanent() {
    ArrayListString rows = new ArrayListString();
   try {
    Cursor c = mDb.query(USERS, new String[] {SCREEN_NAME}, CONSTANT +
   ='C', null, null, null, null);
    if (c != null  c.getCount()  0) {
    while (!c.isLast()) {
   c.moveToNext();
    rows.add(c.getString(0));
   }
   c.close();
    c = null;
   }
    }
   catch (Exception e) {
   Log.e(DBERR, e.getMessage());
    }
   return rows;
    }

   Does anyone here have any idea what it is I am doing wrong?

   Mikey

   --
   You received this message because you are subscribed to the Google
   Groups Android Beginners group.

   NEW! Try asking and tagging your question on Stack Overflow at
  http://stackoverflow.com/questions/tagged/android

   To unsubscribe from this group, send email to
   android-beginners+unsubscr...@googlegroups.comandroid-beginners%2bunsubscr...@googlegroups.com
   For more options, visit this group at
  http://groups.google.com/group/android-beginners?hl=en

   --
   You received this message because you are subscribed to the Google
   Groups Android Beginners group.

   NEW! Try asking and tagging your question on Stack Overflow at
  http://stackoverflow.com/questions/tagged/android

   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

    --
   You received this message because you are subscribed to the Google
   Groups Android Beginners group.

   NEW! Try asking and tagging your question on Stack Overflow at
  http://stackoverflow.com/questions/tagged/android

   To unsubscribe from this group, send email to
   android-beginners+unsubscr...@googlegroups.comandroid-beginners%2bunsubscr...@googlegroups.com
   For more options, visit this group at
  http://groups.google.com/group/android-beginners?hl=en

-- 
You received this message because you are subscribed to the Google
Groups Android Beginners group.

NEW! Try asking and tagging your question on Stack Overflow at
http://stackoverflow.com/questions/tagged/android

To unsubscribe from this group, send email to