Урок 36. SQLite. Подробнее про метод query. Условие, сортировка, группировка
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
в конце запроса limit 5 например
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Здравстуйте!
Что означает восклицательный знак в строке if (c != null) { ? Спасибо!
Что означает восклицательный знак в строке if (c != null) { ? Спасибо!
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
В связке с равно это знак неравенства. Читайте основы Java, с такими вопросами изучение андроида будет кошмаром.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Честно говоря, так и есть (я про кошмар).m090050 писал(а):Читайте основы Java, с такими вопросами изучение андроида будет кошмаром.
Но обилие информации, как выясняется на практике, не всегда есть гуд.
Может быть, имеет смылсл создать на сайте раздел "Основы ява", на темы которого давать ссылку в уроках? Лично из своего опыта - не знаю за что хвататься. Книг по яве полно, интеренет ресурсов ещё больше. Но, во-первых, материал нужный не всегда излагается доступно, а во-вторых, этот (нужный) материал очень часто трудно выделить из огромного количества текста. Сорри за беспокойство и Спасибо ещё раз за ответ.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Ни как не могу разобраться с сортировкой.
В приложении буде БД вроде этой:
столбцы day, month, year -число, месяц, год.
1. нужно выводить все строки с определенным годом, например с 2014
2. нужно выводить все строки с определенным месяцем и годом, например 2 2014
3. нужно выводить все строки с определенным числом, месяцем и годом например 15 7 2013
При этом все это дело надо сортировать по убыванию, то есть сначала должны идти строки с датами наибольшего значения.
Если не трудно, объясните на примере кода.
В приложении буде БД вроде этой:
Код: Выделить всё
class DBHelper extends SQLiteOpenHelper
{
public DBHelper(Context context)
{
super(context, "mydb", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.exsecSQL("create table mytable(" +
"_id integer primary key autoincrement, " +
"day integer, " +
"month integer, " +
"year integer, " +
"mydata text" +
");");
}
}
столбцы day, month, year -число, месяц, год.
1. нужно выводить все строки с определенным годом, например с 2014
2. нужно выводить все строки с определенным месяцем и годом, например 2 2014
3. нужно выводить все строки с определенным числом, месяцем и годом например 15 7 2013
При этом все это дело надо сортировать по убыванию, то есть сначала должны идти строки с датами наибольшего значения.
Если не трудно, объясните на примере кода.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
[syntax=sql]SELECT column_name,column_name_ILYA_ писал(а):Ни как не могу разобраться с сортировкой.
В приложении буде БД вроде этой:Код: Выделить всё
class DBHelper extends SQLiteOpenHelper { public DBHelper(Context context) { super(context, "mydb", null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.exsecSQL("create table mytable(" + "_id integer primary key autoincrement, " + "day integer, " + "month integer, " + "year integer, " + "mydata text" + ");"); } }
столбцы day, month, year -число, месяц, год.
1. нужно выводить все строки с определенным годом, например с 2014
2. нужно выводить все строки с определенным месяцем и годом, например 2 2014
3. нужно выводить все строки с определенным числом, месяцем и годом например 15 7 2013
При этом все это дело надо сортировать по убыванию, то есть сначала должны идти строки с датами наибольшего значения.
Если не трудно, объясните на примере кода.
FROM table_name
WHERE column_name operator value;[/syntax]
и все по такому примеру, для сортировки ORDER BY column_name DESC. Если по русски -sql вам нужен -это его задача.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
да читал я про это, как то абстрактно и не понятно, одна каша в голове.
Не могли бы вы привести код с методом query. Как это будет выглядеть с моим примером, я думаю сразу понятней будет и не только мне
Не могли бы вы привести код с методом query. Как это будет выглядеть с моим примером, я думаю сразу понятней будет и не только мне
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
разберись с уроком получше, там это все есть.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
мне не понятно в каком порядке, в условие, записывать число, месяц, год.Foenix писал(а):разберись с уроком получше, там это все есть.
Может я и не прав но там пример не совсем удачный, весь день голову ломаю.
Если не трудно объясните на примере моей программы, если не трудно конечно.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
тогда почитай данную тему.
У тебя не правильно выбран способ хранения даты в таблице.
Хранить лучше двумя способами. Понятный - в формате "YYYYMMDD" и аутентичный, в формате int как число секунд даты (я забыла, кажется какой-то день 1971 го года). Все это было на форуме.
Если ничего не менять, в принципе, тоже можно. Примерно таким запросом.
select * from mytable where year = 2014 order by year desc, month decs,day desc
select *from mytable where month = 2 and year 2014 order by...
третий сам догадаешься
У тебя не правильно выбран способ хранения даты в таблице.
Хранить лучше двумя способами. Понятный - в формате "YYYYMMDD" и аутентичный, в формате int как число секунд даты (я забыла, кажется какой-то день 1971 го года). Все это было на форуме.
Если ничего не менять, в принципе, тоже можно. Примерно таким запросом.
select * from mytable where year = 2014 order by year desc, month decs,day desc
select *from mytable where month = 2 and year 2014 order by...
третий сам догадаешься
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Я то же думал об этом, но пожалуй так не пойдет, потому что все это дело надо будет в список вставить.аутентичный, в формате int как число секунд даты (я забыла, кажется какой-то день 1971 го года).
а что это дает? и вообще что это, один или три столбца? какой тип, text или integer?Понятный - в формате "YYYYMMDD"
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
не понял сути? речь о unix timestamp на сколько я понял(время в секундах с полуночи 1 января 1970 года), т.е. имеет вид 1234567890, что мешает поместить это в список?_ILYA_ писал(а):Я то же думал об этом, но пожалуй так не пойдет, потому что все это дело надо будет в список вставить.
это как бы date, вы просто определяете формат вывода, чтобы в дальнейшем было удобно работать, как например в вашем случае фильтруя по дате.и вообще что это, один или три столбца? какой тип, text или integer?
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
в списке надо в форматене понял сути? речь о unix timestamp на сколько я понял(время в секундах с полуночи 1 января 1970 года), т.е. имеет вид 1234567890, что мешает поместить это в список?
ДД ММ ГГГГ
Подскажите как правильней сделать, иначе боюсь криво получится
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
да оставь как есть и не парься, тебе ж не в гугл свой код сдавать?
при выводе на экран просто в select выбери что нужно day+month+year да и все
при выводе на экран просто в select выбери что нужно day+month+year да и все
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
как бы если цель понять как работает, то в первую очередь следует разобраться, что такое timestamp и как его преобразовать в другой формат даты. Если проблема возникает на стадии хранения timestamp в списке и проблема в том, что не в том порядке год/месяц выводятся - нужно разбираться, дальше будет больше и понять уже будет на много труднее.Foenix писал(а):да оставь как есть и не парься, тебе ж не в гугл свой код сдавать?
при выводе на экран просто в select выбери что нужно day+month+year да и все
[syntax=java5]String timestamp = (DateFormat.format("dd-MM-yyyy hh:mm:ss", new java.util.Date()).toString());[/syntax]в списке надо в формате
ДД ММ ГГГГ
Вы хотите быть программистом? вам определнно нужно разобраться, что происходит в это строке, объяснять проще не куда, просто не торопитесь, не понимаете, оставьте на завтра. Двигаться дальше нужно только тогда, когда пробелы заполненны.
P.S. тут совсем не много читать: http://ru.wikipedia.org/wiki/UNIX-%D0%B ... 0%BC%D1%8F
но научиться переводить время и дату в timestamp и обратно нужно обязательно, это значительно упрощает жизнь.
Еще не помешало бы пройти вот этот простенький, но очень полезный курс: http://sql.learncodethehardway.org/book/
Заодно и английский подтяните, а sql пригодится в жизни любого программиста.
[ОФФТОП]
И главное, если вам интересно разобраться в Android, почитайте: http://commonsware.com/Android/Android-3_7-CC.pdf
ничего лучше я не встречал, на оф сайте вы найдете более новые версии, книга доступна по подписке(не бесплатно) и рассмариваются все детали всех версий, осторожно, там более 2500 т. страниц... там раскрыто много нюансов пропущенных в документации(можно оценить качество примеров тут: https://github.com/commonsguy/cw-omnibus ).
Так же полезно почитать все перечисленное по ссылкам тут: http://www.reddit.com/r/androiddev/wiki/index
и просматривать темы тут: http://www.reddit.com/r/androiddev
Последний раз редактировалось altwin 03 фев 2014, 22:19, всего редактировалось 1 раз.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
ну жути нагнал ))
вообще-то нужно различать использование данного формата в java и в sqlite . Там это вовсе не timestamp называется. И дело тут не в том, чтоб получить заданную величину секунд и потом ее отформатировать (кстати, можно юзать класс Calendar), а чтоб В СПИСКЕ (читай "в курсор") получить отформатированную дату, чтоб потом ее вывести на экран. Для этого нужно юзать только функции sqlite.
В общем, почитаь можно тут http://sqlite.org/lang_datefunc.html
Вообще говоря, можно и не паритсья, как я сказала.
Есть еще куча разных способов форматнуть (или не форматировать )дату и вывести ее на экран)
вообще-то нужно различать использование данного формата в java и в sqlite . Там это вовсе не timestamp называется. И дело тут не в том, чтоб получить заданную величину секунд и потом ее отформатировать (кстати, можно юзать класс Calendar), а чтоб В СПИСКЕ (читай "в курсор") получить отформатированную дату, чтоб потом ее вывести на экран. Для этого нужно юзать только функции sqlite.
В общем, почитаь можно тут http://sqlite.org/lang_datefunc.html
Вообще говоря, можно и не паритсья, как я сказала.
Есть еще куча разных способов форматнуть (или не форматировать )дату и вывести ее на экран)
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
ну в Learn SQL the hard way, описанно, как работать с sqlite3 на практике, достаточно прочитать "книжку" выполнив простые упражнения все станет очевидно. unix timestamp это довольно общее понятие и знать его более, чем достаточно, чтобы понимать принцип остального... это как раз одна из частей фундаментальных "китов"
Вообще я привел выше книжку, прочитав ее -любой новичек может претендовать на уровень middle, проблем с стандартными задачами не будет вообще, но как бы главное читать внимательно
Кстати книжку эту стоит поискать на rutracker, там помоему версия 4.2 (это версия книги, последняя рассматриваемая версия Android 4.1 помоему.)была... хоть и не последняя но бесплатно, в ней должно быть не много более 1500 страниц.
Вообще я привел выше книжку, прочитав ее -любой новичек может претендовать на уровень middle, проблем с стандартными задачами не будет вообще, но как бы главное читать внимательно
Кстати книжку эту стоит поискать на rutracker, там помоему версия 4.2 (это версия книги, последняя рассматриваемая версия Android 4.1 помоему.)была... хоть и не последняя но бесплатно, в ней должно быть не много более 1500 страниц.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Ни как не врублюсь, почему падает приложение
так работает
DB_TABLE, COLUMN_YEAR, COLUMN_MONTH -строковые константы
Код: Выделить всё
return m_db.rawQuery("select *from " + DB_TABLE + " where COLUMN_YEAR = 2014" +
" order by " + COLUMN_MONTH + " desc", null);
Код: Выделить всё
return m_db.rawQuery("select *from " + DB_TABLE, null);
Последний раз редактировалось _ILYA_ 04 фев 2014, 23:55, всего редактировалось 1 раз.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
COLUMN_YEAR = 2014, не хватает кавычек..._ILYA_ писал(а):Ни как не врублюсь, почему падает приложениетак работаетКод: Выделить всё
return m_db.rawQuery("select *from " + DB_TABLE + " where COLUMN_YEAR = 2014" + " order by, " + COLUMN_MONTH + " desc", null);
DB_TABLE, COLUMN_YEAR, COLUMN_MONTH -строковые константыКод: Выделить всё
return m_db.rawQuery("select *from " + DB_TABLE, null);