Вывод результата запроса в лог.(проблема)

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
comradesaaxov
Сообщения: 23
Зарегистрирован: 09 ноя 2013, 13:39

Вывод результата запроса в лог.(проблема)

Сообщение comradesaaxov » 09 ноя 2013, 13:54

Привет всем, суть проблемы такова есть таблица my_table (id не пишу, так как пытаюсь освоить удаление\добавление строк поэтому привязываться к нему не вижу смысла )

id | CUP | FREE
- | 2 | 0
- | 0 | 4

с выводом всей таблицы проблем нет :

Код: Выделить всё

public void onClick(View v){
        switch (v.getId()){
            case R.id.button:
                Cursor c = sqdb.query("my_table",null,null,null,null,null,null);
                if (c.moveToFirst()){
                    int idColIndex = c.getColumnIndex("id");
                    int cupColIndex = c.getColumnIndex("cup");
                    int frenchColIndex = c.getColumnIndex("free");

                    do{
                        Log.d("LOG_TAG", "ID = " + c.getInt(idColIndex) + ", CUP =" + c.getInt(cupColIndex) + ", FREE =" + c.getInt(frenchColIndex)  );
                    } while (c.moveToNext());
                       }else
                    c.close();
                break;
тут все прекрасно, таблица выводится в логе, ура.
пытаюсь идти дальше и вывести суммы строк каждого столбца то есть значение CUP 2+0=2, FREE 0+4=4
и тут "прикра невдача спиткала радянських спортсменив"

Код: Выделить всё

case R.id.button1:
                String your_query= "SELECT sum(CUP) as cup, sum(FREE)as free FROM my_table ";
                Cursor result = sqdb.rawQuery(your_query, null);
                
                     if (result.moveToFirst()){
                    //int idColIndex = result.getColumnIndex("id");
                    int cupColIndex = result.getColumnIndex("cup");
                    int frenchColIndex = result.getColumnIndex("free");}

                    do{
                       Log.d("LOG_TAG", " CUP =" + result.getInt(cupColIndex) + ", FREE =" + result.getInt(frenchColIndex)  );
                    } while (result.moveToNext());
                }else
                    result.close();
                break;
собственно вот. обьясните плз что не так, и как вывести нужный результат.
спс

Аватара пользователя
trew
Сообщения: 450
Зарегистрирован: 28 сен 2013, 17:34

Re: Вывод результата запроса в лог.(проблема)

Сообщение trew » 09 ноя 2013, 14:27

Цикл используют, чтобы вывесит в log несколько строк из таблицы. Как у тебя в первом случае.
Во втором случае цикл не нужен т.к. у тебя только одну строку возвращает запрос!

[syntax=java]case R.id.button1:
String your_query= "SELECT sum(CUP) as cup, sum(FREE)as free FROM my_table ";
Cursor result = sqdb.rawQuery(your_query, null);

//int idColIndex = result.getColumnIndex("id");
int cupColIndex = result.getColumnIndex("cup");
int frenchColIndex = result.getColumnIndex("free");

// result.moveToFirst(); -- кажется будет работать и без этой строки
Log.d("LOG_TAG", " CUP =" + result.getInt(cupColIndex) + ", FREE =" + result.getInt(frenchColIndex) );
result.close();
break; [/syntax]
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

comradesaaxov
Сообщения: 23
Зарегистрирован: 09 ноя 2013, 13:39

Re: Вывод результата запроса в лог.(проблема)

Сообщение comradesaaxov » 09 ноя 2013, 15:21

trew писал(а):Цикл используют, чтобы вывесит в log несколько строк из таблицы. Как у тебя в первом случае.
Во втором случае цикл не нужен т.к. у тебя только одну строку возвращает запрос!

[syntax=java]case R.id.button1:
String your_query= "SELECT sum(CUP) as cup, sum(FREE)as free FROM my_table ";
Cursor result = sqdb.rawQuery(your_query, null);

//int idColIndex = result.getColumnIndex("id");
int cupColIndex = result.getColumnIndex("cup");
int frenchColIndex = result.getColumnIndex("free");

// result.moveToFirst(); -- кажется будет работать и без этой строки
Log.d("LOG_TAG", " CUP =" + result.getInt(cupColIndex) + ", FREE =" + result.getInt(frenchColIndex) );
result.close();
break; [/syntax]
хм без result.moveToFirst(); получил:

[syntax=java]java.lang.IllegalStateException: Couldn't read row 0, col 2 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.[/syntax]

а с result.moveToFirst() все получилось! спс

Аватара пользователя
trew
Сообщения: 450
Зарегистрирован: 28 сен 2013, 17:34

Re: Вывод результата запроса в лог.(проблема)

Сообщение trew » 09 ноя 2013, 15:26

Это и для меня опыт :)
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

Ответить