Can you give me a link with an example of that? 2011/5/26 Kostya Vasilyev <kmans...@gmail.com>
> You can use the pattern for the top level and the nested query both. > > -- Kostya > 2011/5/26 adek <adrian.ka...@gmail.com> > >> I tried to change my code this way. There is still a problem. >> >> I tried to check for empty rows but even then I've got this exception >> error. >> >> Maybe the problem is in my way of dealing with those two cursors >> (second cursor is in another) >> >> Maybe I'll start from the beggining and you will tell me a better way: >> >> I've got ONE ListView. On this list I'd like to have some values from >> database (easy - done with one cursor) >> but in some list positions there should be values with some conditions >> from another query (second cursor). >> >> >> On May 26, 10:18 am, Kostya Vasilyev <kmans...@gmail.com> wrote: >> > A cursor's initial position is -1, right before the first row, so it's >> quite >> > enough to do this: >> > >> > Cursor cursor = ..... query ... >> > if (cursor != null) { >> > ... get column indices here .... >> > while (cursor.moveToNext()) { >> > ... get data using the indices here ... >> > } >> > cursor.close(); >> > >> > } >> > >> > Here it's not necessary to use getCount or moveToFirst, or handle the >> case >> > of no data in any special way. >> > >> > -- Kostya >> > >> > 2011/5/26 adek <adrian.ka...@gmail.com> >> > >> > >> > >> > >> > >> > >> > >> > > Thanks. But this is strange. >> > > When I add this condition >> > >> > > if(cursor.getCount() > 0) } >> > > ... >> > >> > > My ListView is empty. In LogCat everything looks fine. >> > >> > > On May 26, 9:59 am, Senthil ACS <acs....@gmail.com> wrote: >> > > > Hi, >> > >> > > > After you get a cursor object from a query, check the count before >> > > > doing "moveToFirst()". >> > >> > > > if(cursor.getCount() > 0) >> > > > { >> > > > cursor.moveToFirst(); >> > > > ... processing ... >> > >> > > > } >> > >> > > > On May 26, 3:12 am, adek <adrian.ka...@gmail.com> wrote: >> > >> > > > > Hello, >> > >> > > > > As a beginner in android java world I need your help. I've got >> problem >> > > > > with famous "CursorIndexOutOfBoundsException". >> > >> > > > > I'm using SQLite db, and I have two cursors, I'm getting some rows >> > > > > from database. >> > > > > I need to get some previous values with some conditions with >> second >> > > > > cursor (c2) and put these values on ListView. >> > >> > > > > Code works with one exception: >> > > > > "android.database.CursorIndexOutOfBoundsException: Index 0 >> requested, >> > > > > with a size of 0". >> > >> > > > > ListView looks OK if I just ignore this exception but I want to >> fix >> > > > > it. >> > >> > > > > I know it is connected to with Cursor. I tried to check some >> > > > > conditions - it didn't help. Maybe if you could take a look at my >> code >> > > > > you find where is the cause. >> > >> > > > > Code: >> > >> > > > > public void LoadLogGrid() >> > > > > { >> > > > > dbHelper=new DatabaseHelper(this); >> > > > > try >> > > > > { >> > >> > > > > int LogName = (int) spinLog.getSelectedItemId(); >> > > > > Cursor c=dbHelper.getLogByLogID(LogName); >> > > > > if (c != null) c.moveToFirst(); >> > > > > int count = c.getCount(); >> > >> > > > > if (c.moveToFirst()){ >> > > > > ArrayList<String> mArrayList = new >> ArrayList<String>(); >> > >> > > > > int i=0; >> > > > > do { >> > >> > > > > int sVar1 = c.getInt(c.getColumnIndex("Var1")); >> > > > > Long sId = (long) >> c.getInt(c.getColumnIndex("_id")); >> > >> > > > > Cursor >> c2=dbHelper.getPrevLogByLogID(LogName,sVar1); >> > > > > c2.moveToFirst(); >> > >> > > > > if (c2!=null) { >> > > > > String sPrevOdo = >> > > c2.getString(c2.getColumnIndex("Odo")); >> > > > > mArrayList.add(sPrevOdo); >> > > > > c2.close(); >> > > > > } else { >> > > > > //stopManagingCursor(c2); >> > > > > //c2.close(); >> > > > > Log.d("A:", "Something"); >> > > > > } >> > >> > > > > String [] from=new String >> > > []{"Date","Col1","Col2","Col3"}; >> > > > > int [] to=new int [] >> > > > > >> {R.id.logDate,R.id.logCol1,R.id.logCol2,R.id.logCol3,R.id.rowOpt2}; >> > > > > SimpleCursorAdapter sca=new >> > > > > LogCursorAdapter(this,R.layout.loggridrow,c,from,to,mArrayList); >> > > > > grid.setAdapter(sca); >> > > > > registerForContextMenu(grid); >> > > > > i++; >> > >> > > > > } while (c.moveToNext()); >> > >> > > > > c.close(); >> > >> > > > > dbHelper.close(); >> > > > > } >> > >> > > > > } >> > > > > catch(Exception ex) >> > > > > { >> > > > > AlertDialog.Builder b=new >> AlertDialog.Builder(this); >> > > > > b.setMessage(ex.toString()); >> > > > > b.show(); >> > > > > } >> > >> > > > > } >> > >> > > > > Query in second cursor: >> > >> > > > > public Cursor getPrevLogByLogID(long LogID, long Var1) >> > > > > { >> > > > > SQLiteDatabase db=this.getReadableDatabase(); >> > > > > String[] params=new String[] >> > > > > {String.valueOf(LogID),String.valueOf(Var1)}; >> > >> > > > > Cursor c2=db.rawQuery("SELECT LogID as _id, Col1 >> from >> > > Log WHERE >> > > > > Col2=? AND Col3<? AND Full=1 ORDER BY Odo DESC", params); >> > > > > if (c2 != null) { c2.moveToFirst();} >> > > > > return c2; >> > > > > } >> > >> > > -- >> > > You received this message because you are subscribed to the Google >> > > Groups "Android Developers" group. >> > > To post to this group, send email to >> android-developers@googlegroups.com >> > > To unsubscribe from this group, send email to >> > > android-developers+unsubscr...@googlegroups.com >> > > For more options, visit this group at >> > >http://groups.google.com/group/android-developers?hl=en >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Android Developers" group. >> To post to this group, send email to android-developers@googlegroups.com >> To unsubscribe from this group, send email to >> android-developers+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/android-developers?hl=en >> > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en -- pozdrawiam, Adrian Kajda -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en