Ohh Kostya Thank you very much for your precious time. I will first
look tutorial and then try to fix the problem. Once again Thank you.

On Nov 29, 4:14 pm, Kostya Vasilyev <[email protected]> wrote:
> If you want a separate suffix sequence for each room name (if I
> understand you correctly), change your query for MAX_SUFFIX to filter by
> room name.
>
> SELECT MAX(RoomSuffix) FROM ROOM_TABLE_NAME WHERE RoomName = <room name
> here>
>
> I recommend you read through a SQL tutorial of some sorts. Here is one:
>
> http://www.sqltutorial.org/
>
> -- Kostya
>
> 29.11.2010 14:02, pramod.deore пишет:
>
> > You are right Kpstya after chenging to suf =
> > c4.getInt(c4.getColumnIndex("MAX_SUFFIX"))+1; It solve my partial
> > problem . But Now here is new issue arrise which is I also faced when
> > I user SharedPreference.
>
> > Now the problem is
>
> > If I have data like
> > 1    Hall      0
> > 2    Hall      1
> > 3    Kitchen   0
> > 4.   kitchen   2
> > 5.   Hall      3
>
> > Here what I want
>
> > 1    Hall      0
> > 2    Hall      1
> > 3    Kitchen   0
> > 4.   kitchen   1
> > 5.   Hall      2
>
> > On Nov 29, 3:42 pm, Kostya Vasilyev<[email protected]>  wrote:
> >> Your code never gets the actual value for MAX_SUFFIX.
>
> >> You're calling getColumnIndex, but never - getInt.
>
> >> I see you tried to fix it by doing "+1" on the value - that's a pretty
> >> good tip-off that you are doing something wrong.
>
> >> -- Kostya
>
> >> 29.11.2010 13:33, pramod.deore пишет:
>
> >>> Hi, But there is a problem . getColumnIndex("MAX_SUFFIX") doesn't
> >>> return the highest integer.
> >>> Here is in short what I am doing:-
> >>> I have at table which have 3 columns:1. RoomId, 2. RoomaName 3.
> >>> RoomSuffix
> >>> If suppose in database there are following data
> >>> RoomID      RoomName
> >>>      1          Hall
> >>>      2          Kitchen
> >>> and suppose user again add Hall then in that case RoomSuffix must have
> >>> to increase by 1.
> >>> RoomID     RoomName      RoomSuffix
> >>>      1          Hall           0
> >>>      2          Kitchen        0
> >>>      3          Hall           1
> >>>      4          Hall           2
> >>> Here I had created a table as
> >>> public void insertToRoomTable(String roomName)
> >>> {
> >>>     try
> >>>       {
> >>> sampleDB.execSQL("CREATE TABLE IF NOT EXISTS " +
> >>>                       ROOM_TABLE_NAME +
> >>>                       " (RoomID integer primary key
> >>> autoincrement,RoomName VARCHAR,RoomSuffix integer);");
> >>> boolean roomExist = checkRoomExist(roomName);
> >>> System.out.println ("!...@#!@#...@#!@#"+roomExist);
> >>>             System.out.println ("Here value of suf" +suf);
> >>>             sampleDB.execSQL("INSERT INTO " +
> >>>                                     ROOM_TABLE_NAME +
> >>>                                     " Values 
> >>> (null,'"+roomName+"','"+suf+"');");
> >>>           }
> >>>             catch (Exception e)
> >>>             {
> >>>                     e.printStackTrace();
> >>>             }
> >>> }
> >>> public boolean checkRoomExist(String name)
> >>> {
> >>>     Cursor c = sampleDB.rawQuery("SELECT RoomName FROM "
> >>> +ROOM_TABLE_NAME , null);
> >>>             if (c != null )
> >>>             {
> >>>                     System.out.println ("%%%%%%%%%%%"+c.getCount());
> >>>                     if  (c.moveToFirst())
> >>>                     {
> >>>                             do
> >>>                             {
> >>>                                     rname = 
> >>> c.getString(c.getColumnIndex("RoomName"));
> >>>                                     System.out.println ("name is "+name);
> >>>                                     System.out.println ("name is "+rname);
> >>>                                     if (name.equalsIgnoreCase(rname))
> >>>                                     {
> >>>                                             System.out.println ("Room 
> >>> already exist");
> >>>                                             //String str = "select 
> >>> max(RoomSuffix) from RoomTable";
> >>>                                             Cursor c4 = 
> >>> sampleDB.rawQuery("SELECT MAX(RoomSuffix) AS
> >>> MAX_SUFFIX FROM RoomTable",null);
> >>>                                             if (c4 != null )
> >>>                                     {
> >>>                                             if  (c4.moveToFirst())
> >>>                                             {
> >>>                                                     do
> >>>                                                     {
> >>>                                                             
> >>> System.out.println ("***********************");
> >>>                                                             
> >>> System.out.println
> >>> (c4.getColumnIndex("MAX_SUFFIX"));
> >>>                                                             suf = 
> >>> c4.getColumnIndex("MAX_SUFFIX")+1;
> >>>                                                             
> >>> System.out.println ("!!!!!!!!!!!!"+suf);
> >>>                                                     }
> >>>                                                     while 
> >>> (c4.moveToNext());
> >>>                                                     return true;
> >>>                                             }
> >>>                                     }
> >>>                                     }
> >>>                             }
> >>>                             while (c.moveToNext());
> >>>                     }
> >>>             }
> >>>             c.close();
> >>>     return false;
> >>> }
> >>> But here is problem is that If there is a record say like
> >>> 1    Hall   0
> >>> 2    Hall   1
> >>> Upto this ok, But when add another record for Hall then also it enter
> >>> it as
> >>> 3    Hall   1
> >>> Means every time
> >>> Cursor c4 = sampleDB.rawQuery("SELECT MAX(RoomSuffix) AS MAX_SUFFIX
> >>> FROM RoomTable",null);
> >>>                                             if (c4 != null )
> >>>                                     {
> >>>                                             if  (c4.moveToFirst())
> >>>                                             {
> >>>                                                     do
> >>>                                                     {
> >>>                                                             
> >>> System.out.println ("***********************");
> >>>                                                             
> >>> System.out.println
> >>> (c4.getColumnIndex("MAX_SUFFIX"));
> >>>                                                             suf = 
> >>> c4.getColumnIndex("MAX_SUFFIX")+1;
> >>>                                                           //Here it
> >>> always returns 0.
> >>>                                                             
> >>> System.out.println ("!!!!!!!!!!!!"+suf);
> >>>                                                     }
> >>>                                                     while 
> >>> (c4.moveToNext());
> >>>                                                     return true;
> >>>                                             }
> >>>                                     }
> >>> Value of suf = 0.
> >>> On Nov 29, 3:15 pm, "pramod.deore"<[email protected]>    wrote:
> >>>> This one_
> >>>> - Rewrite the query as "SELECT MAX(RoomSuffix) AS MAX_SUFFIX FROM
> >>>> RoomTable"
> >>>> This assigns a known column name (MAX_SUFFIX) to the expression.
> >>>> You then can call getColumnIndex("MAX_SUFFIX").
> >>>> On Nov 29, 2:28 pm, Kostya Vasilyev<[email protected]>    wrote:
> >>>>> Just curious - which of the three possible fixes did you apply?
> >>>>> 29.11.2010 12:17, pramod.deore пишет:
> >>>>>> Thanks Kostya . It works
> >>>>>> On Nov 29, 1:36 pm, Kostya Vasilyev<[email protected]>      wrote:
> >>>>>>> That's because your query has an expression, max(RoomSuffix).
> >>>>>>> The result (cursor) also uses that expression as the column name, and
> >>>>>>> not just "RoomSuffix".
> >>>>>>> You could do one of the following to fix this:
> >>>>>>> - Call c.getInt(1) without c.getColumnIndex, since you know there is
> >>>>>>> only one column.
> >>>>>>> - Rewrite the query as "SELECT MAX(RoomSuffix) AS MAX_SUFFIX FROM 
> >>>>>>> RoomTable"
> >>>>>>> This assigns a known column name (MAX_SUFFIX) to the expression.
> >>>>>>> You then can call getColumnIndex("MAX_SUFFIX").
> >>>>>>> - Use SQLiteStatement.simpleQueryForLong with your query:
> >>>>>>>> public long simpleQueryForLong ()
> >>>>>>>> Since: API Level 1
> >>>>>>>> Execute a statement that returns a 1 by 1 table with a numeric value.
> >>>>>>>> For example, SELECT COUNT(*) FROM table;
> >>>>>>>> Returns
> >>>>>>>> The result of the query.
> >>>>>>> -- Kostya
> >>>>>>> 29.11.2010 11:15, pramod.deore пишет:
> >>>>>>>> Why I am getting this exception? RoomSuffix is an int. Then why I got
> >>>>>>>> error when I execute
> >>>>>>>> suf = c45.getInt(c45.getColumnIndex("RoomSuffix"));
> >>>>>>>> Thanks
> >>>>>>>> On Nov 29, 11:55 am, "pramod.deore"<[email protected]>        
> >>>>>>>> wrote:
> >>>>>>>>> Hi, I want to retrieve int  value from cursor
> >>>>>>>>> Cursor c = sampleDB.rawQuery("select max(RoomSuffix)from
> >>>>>>>>> RoomTable",null);
> >>>>>>>>> and here RoomSuffix is an int, but when I tried to retrieve value as
> >>>>>>>>> if (c != null )
> >>>>>>>>>                                     {
> >>>>>>>>>                                             if  (c.moveToFirst())
> >>>>>>>>>                                             {
> >>>>>>>>>                                                     do
> >>>>>>>>>                                                     {
> >>>>>>>>>                                                             
> >>>>>>>>> System.out.println ("Inside do");
> >>>>>>>>>                                                             
> >>>>>>>>> System.out.println (c.getColumnCount());    //here i
> >>>>>>>>> get 1
> >>>>>>>>>                                                             suf = 
> >>>>>>>>> c.getInt(c.getColumnIndex("RoomSuffix"));//
> >>>>>>>>> here it throws Exception
> >>>>>>>>>                                                     }
> >>>>>>>>>                                                     while 
> >>>>>>>>> (c.moveToNext());
> >>>>>>>>>                                             }
> >>>>>>>>>                                     }
> >>>>>>>>> and logcat output is
> >>>>>>>>> 11-29 12:07:28.835: ERROR/CursorWindow(956): Bad request for field
> >>>>>>>>> slot 0,-1. numRows = 1, numColumns = 1
> >>>>>>>>> 11-29 12:07:28.843: WARN/System.err(956):
> >>>>>>>>> java.lang.IllegalStateException: get field slot from row 0 col -1
> >>>>>>>>> failed
>
> ...
>
> read more »

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to