Урок 36. SQLite. Подробнее про метод query. Условие, сортировка, группировка

Обсуждение уроков
Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение doter.ua » 15 май 2015, 19:41

wtor писал(а):
Foenix писал(а):какие логи, где, для какого показа?
Не обязательно, это для отладки.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение Foenix » 15 май 2015, 20:22

та не, это чисто для показа.
Из готового приложения их вообще лучше убирать в целях конспирации и быстродействия
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение doter.ua » 15 май 2015, 20:47

Foenix писал(а):та не, это чисто для показа.
Из готового приложения их вообще лучше убирать в целях конспирации и быстродействия
Life's too short for remove logs.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Радислав Гандопас
Сообщения: 9
Зарегистрирован: 29 апр 2015, 09:47

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение Радислав Гандопас » 29 май 2015, 15:09

Чем отличается String[]name от String name[]?

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение doter.ua » 29 май 2015, 15:59

Радислав Гандопас писал(а):Чем отличается String[]name от String name[]?
Ничем. http://stackoverflow.com/a/129188
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

msv_serg
Сообщения: 5
Зарегистрирован: 14 май 2015, 15:19

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение msv_serg » 23 июн 2015, 18:43

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

for (String cn : c.getColumnNames()) {
            str = str.concat(cn + " = "
                + c.getString(c.getColumnIndex(cn)) + "; ");
          }
я не пойму одного, зачем сначала надо узнавать индекс столбца по его имени c.getColumnIndex(cn)), а потом по полученному индексу находить значение столбца? неужели нельзя сразу по имени столбца узнавать его значение???

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение Foenix » 24 июн 2015, 00:21

нет
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

dmitry_n
Сообщения: 7
Зарегистрирован: 06 июн 2015, 13:47

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение dmitry_n » 14 июл 2015, 20:05

Здравствуйте. В уроке был упомянута только функция count(*) as Count, а как записать другие функции (например, макс. или мин.) в этой View?

alex1
Сообщения: 12
Зарегистрирован: 22 июл 2015, 13:45

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение alex1 » 04 авг 2015, 13:31

dmitry_n писал(а):Здравствуйте. В уроке был упомянута только функция count(*) as Count, а как записать другие функции (например, макс. или мин.) в этой View?
Почитайте про SQL, там несложно.
"max(people)" можно написать, например, или "min(people)", "avg(people)".
Без кавычек ес-но.

Аватара пользователя
TheCoder
Сообщения: 16
Зарегистрирован: 23 апр 2015, 17:23

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение TheCoder » 21 авг 2015, 19:42

Как можно сделать запрос в БД с between для дат? Неважно в каком формате хранятся даты (String/int/long).

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение Foenix » 22 авг 2015, 00:08

да нет, как раз таки важно как хранятся даты. Храни в целочисленном виде и выбирай.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Батька Андройд
Сообщения: 8
Зарегистрирован: 20 авг 2015, 10:17

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение Батька Андройд » 21 окт 2015, 08:40

Здравствуйте. У меня есть БД в которой есть колонка с названием например зарплаты и мне нужно проверить есть ли в БД строка в которой значение в колонке зарплаты будет равна тому что я введу в EditText. Попытался реализовать это следующем образом:

- считал из EditText значение
- методом query считал из БД с условием, что значение в нужном мне столбике должно быть равно тому что я ввел в edittext
(selection = "зарплаты = ?") ну и в массив значений для условия то что ввел в edittext
- все это присвоил объекту cursor конечно

Я предположил что если данного значения зарплаты в БД не будет, то cursor = null, но он не null и при этом при попытке посмотреть что в нем ничего не показывает.
Подскажите как вообще реализуется проверка на то есть ли строка с определенным значением в определенном столбце в базе данных?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение Foenix » 21 окт 2015, 15:43

у курсора есть метод, recCount() или как-то так, проверяй вначале на нул, потом на кол-во записей.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Night_Scream
Сообщения: 54
Зарегистрирован: 23 сен 2013, 10:51

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение Night_Scream » 21 окт 2015, 18:00

Ребят, а как можно узнать список всех созданных баз в своем приложении, созданных этим же приложением?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение Foenix » 21 окт 2015, 19:06

интересно, а зачем тебе столько баз?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Night_Scream
Сообщения: 54
Зарегистрирован: 23 сен 2013, 10:51

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение Night_Scream » 21 окт 2015, 20:51

Пишу приложение в котором на рабочую область можно перетаскивать различные компоненты, нужно сохранять их состояние\размер\координаты и другое...
При запуске можно создать новый проект и указать ему имя, можно загрузить ранее созданный.
Вот и задался вопросом как и где всё это хранить...
В SharedPreferences можно хранить только ключ - значение, нет вложенностей как например в layout файлах, ну допустим пользователь создал 20 элементов на рабочей области и у каждого элемента по 10 параметров, всё это сохранить а потом достать без группировки никак нормально.

Решил писать в SQLite, всё вроде достаточно просто, подумал делать название нового проекта=название базы, в базе нужные таблицы с нужными полями, удалять просто через this.deleteDatabase("name").
Так и пришел к выводу что нужен список баз в папке databases, пользователь выбрал, база загрузилась.

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение doter.ua » 21 окт 2015, 21:34

Проще хранить в общей таблице, добавив поле проектИД. Еще есть ленивый варик с JSON, но про него не расскажу, учи БД)
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Night_Scream
Сообщения: 54
Зарегистрирован: 23 сен 2013, 10:51

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение Night_Scream » 21 окт 2015, 21:53

Про ID была такая мысль конечно, но по базе как то проще, файл этот экспортнул и перенес целый проект, удобно.
С БД у меня на уровне уверенного пользователя, админю несколько серверов MySQL...
С JSON в принципе мысль для SharedPreferences, но ...

Накидал код, взгляните, что может пойти не так (напомню, цель найти все созданные базы приложением)

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

String pathDb = "data/data/" + getApplicationContext().getPackageName() + "/" + "databases/";
        File[]fList;
        File f = new File(pathDb);
        fList = f.listFiles();
        if(f.length()>0) {
            for (int i = 0; i < fList.length; i++) {
                if (fList[i].isFile()) Log.d("scream", "Файл - " + fList[i].getName());
            }
        }else{
            Log.d("scream","нет файлов");
        }
Показывает все файлы в папке, есть 2 проблемки.
1) нет расширения.
2) андроид создает на базу по 2 файла nameBD и nameBD-journal их тоже надо будет фильтровать.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение Foenix » 22 окт 2015, 00:57

тебе правильно сказали как делать надо
несколько баз заводить при такой задаче очень глупо. Кто-то увидит у тебя такое - на работу не возьмет.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Night_Scream
Сообщения: 54
Зарегистрирован: 23 сен 2013, 10:51

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Сообщение Night_Scream » 22 окт 2015, 08:01

Foenix писал(а):тебе правильно сказали как делать надо
несколько баз заводить при такой задаче очень глупо. Кто-то увидит у тебя такое - на работу не возьмет.
Понял, спасибо.

Ответить