Страница 6 из 11
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 10 дек 2013, 16:27
Foenix
в конце запроса limit 5 например
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 15 янв 2014, 12:32
TittTitov
Здравстуйте!
Что означает восклицательный знак в строке if (c != null) { ? Спасибо!
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 15 янв 2014, 12:38
Mikhail_dev
В связке с равно это знак неравенства. Читайте основы Java, с такими вопросами изучение андроида будет кошмаром.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 15 янв 2014, 13:34
TittTitov
m090050 писал(а):Читайте основы Java, с такими вопросами изучение андроида будет кошмаром.
Честно говоря, так и есть (я про кошмар).
Но обилие информации, как выясняется на практике, не всегда есть гуд.
Может быть, имеет смылсл создать на сайте раздел "Основы ява", на темы которого давать ссылку в уроках? Лично из своего опыта - не знаю за что хвататься. Книг по яве полно, интеренет ресурсов ещё больше. Но, во-первых, материал нужный не всегда излагается доступно, а во-вторых, этот (нужный) материал очень часто трудно выделить из огромного количества текста. Сорри за беспокойство и Спасибо ещё раз за ответ.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 15 янв 2014, 14:10
Mikhail_dev
Что почитать?
Java для начинающих
Я всегда всем советую Хорстманна.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 02 фев 2014, 12:39
_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
При этом все это дело надо сортировать по убыванию, то есть сначала должны идти строки с датами наибольшего значения.
Если не трудно, объясните на примере кода.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 02 фев 2014, 13:28
altwin
_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
При этом все это дело надо сортировать по убыванию, то есть сначала должны идти строки с датами наибольшего значения.
Если не трудно, объясните на примере кода.
[syntax=sql]SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;[/syntax]
и все по такому примеру, для сортировки
ORDER BY column_name DESC. Если по русски -sql вам нужен -это его задача.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 02 фев 2014, 14:27
_ILYA_
да читал я про это, как то абстрактно и не понятно, одна каша в голове.
Не могли бы вы привести код с методом query. Как это будет выглядеть с моим примером, я думаю сразу понятней будет и не только мне
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 02 фев 2014, 14:47
Foenix
разберись с уроком получше, там это все есть.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 02 фев 2014, 18:56
_ILYA_
Foenix писал(а):разберись с уроком получше, там это все есть.
мне не понятно в каком порядке, в условие, записывать число, месяц, год.
Может я и не прав но там пример не совсем удачный, весь день голову ломаю.
Если не трудно объясните на примере моей программы, если не трудно конечно.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 02 фев 2014, 19:42
Foenix
тогда почитай данную тему.
У тебя не правильно выбран способ хранения даты в таблице.
Хранить лучше двумя способами. Понятный - в формате "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...
третий сам догадаешься
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 03 фев 2014, 18:22
_ILYA_
аутентичный, в формате int как число секунд даты (я забыла, кажется какой-то день 1971 го года).
Я то же думал об этом, но пожалуй так не пойдет, потому что все это дело надо будет в список вставить.
Понятный - в формате "YYYYMMDD"
а что это дает? и вообще что это, один или три столбца? какой тип, text или integer?
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 03 фев 2014, 18:46
altwin
_ILYA_ писал(а):Я то же думал об этом, но пожалуй так не пойдет, потому что все это дело надо будет в список вставить.
не понял сути? речь о unix timestamp на сколько я понял(время в секундах с полуночи 1 января 1970 года), т.е. имеет вид
1234567890, что мешает поместить это в список?
и вообще что это, один или три столбца? какой тип, text или integer?
это как бы date, вы просто определяете формат вывода, чтобы в дальнейшем было удобно работать, как например в вашем случае фильтруя по дате.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 03 фев 2014, 19:06
_ILYA_
не понял сути? речь о unix timestamp на сколько я понял(время в секундах с полуночи 1 января 1970 года), т.е. имеет вид 1234567890, что мешает поместить это в список?
в списке надо в формате
ДД ММ ГГГГ
Подскажите как правильней сделать, иначе боюсь криво получится
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 03 фев 2014, 20:25
Foenix
да оставь как есть и не парься, тебе ж не в гугл свой код сдавать?
при выводе на экран просто в select выбери что нужно day+month+year да и все
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 03 фев 2014, 21:27
altwin
Foenix писал(а):да оставь как есть и не парься, тебе ж не в гугл свой код сдавать?
при выводе на экран просто в select выбери что нужно day+month+year да и все
как бы если цель понять как работает, то в первую очередь следует разобраться, что такое timestamp и как его преобразовать в другой формат даты. Если проблема возникает на стадии хранения timestamp в списке и проблема в том, что не в том порядке год/месяц выводятся - нужно разбираться, дальше будет больше и понять уже будет на много труднее.
в списке надо в формате
ДД ММ ГГГГ
[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
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 03 фев 2014, 22:18
Foenix
ну жути нагнал ))
вообще-то нужно различать использование данного формата в java и в sqlite . Там это вовсе не timestamp называется. И дело тут не в том, чтоб получить заданную величину секунд и потом ее отформатировать (кстати, можно юзать класс Calendar), а чтоб В СПИСКЕ (читай "в курсор") получить отформатированную дату, чтоб потом ее вывести на экран. Для этого нужно юзать только функции sqlite.
В общем, почитаь можно тут
http://sqlite.org/lang_datefunc.html
Вообще говоря, можно и не паритсья, как я сказала.
Есть еще куча разных способов форматнуть (или не форматировать
)дату и вывести ее на экран)
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 03 фев 2014, 22:22
altwin
ну в Learn SQL the hard way, описанно, как работать с sqlite3 на практике, достаточно прочитать "книжку" выполнив простые упражнения все станет очевидно. unix timestamp это довольно общее понятие и знать его более, чем достаточно, чтобы понимать принцип остального... это как раз одна из частей фундаментальных "китов"
Вообще я привел выше книжку, прочитав ее -любой новичек может претендовать на уровень middle, проблем с стандартными задачами не будет вообще, но как бы главное читать внимательно
Кстати книжку эту стоит поискать на rutracker, там помоему версия 4.2 (это версия книги, последняя рассматриваемая версия Android 4.1 помоему.)была... хоть и не последняя но бесплатно, в ней должно быть не много более 1500 страниц.
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 04 фев 2014, 23:41
_ILYA_
Ни как не врублюсь, почему падает приложение
Код: Выделить всё
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);
DB_TABLE, COLUMN_YEAR, COLUMN_MONTH -строковые константы
Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор
Добавлено: 04 фев 2014, 23:46
altwin
_ILYA_ писал(а):Ни как не врублюсь, почему падает приложение
Код: Выделить всё
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);
DB_TABLE, COLUMN_YEAR, COLUMN_MONTH -строковые константы
COLUMN_YEAR = 2014, не хватает кавычек...