Выборка из SQLITE

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Выборка из SQLITE

Сообщение Foenix » 28 апр 2013, 13:41

Дорогой no--, а вам не кажется, что нельзя так с женщинами разговаривать? Может быть вам тоже не нужно чем-нибудь страдать??
R.id.team

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

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Выборка из SQLITE

Сообщение Mikhail_dev » 28 апр 2013, 14:27

Я извиняюсь, если обидел данной фразой. Для меня она выглядит совершенно безобидной.

Tamachi
Сообщения: 203
Зарегистрирован: 17 апр 2013, 00:08

Re: Выборка из SQLITE

Сообщение Tamachi » 28 апр 2013, 22:40

no-- писал(а):
Она не встроенная, она встраиваемая
Встроенная - это когда что-то железно входит
В состав Андроида, java или чего-то там еще она не входит.
Она входит в состав андроида по дефолту. Мне не надо никакие библиотеки подключать дополнительно, ибо андроид имеет эту СУБД по дефолту. А значит встроенная по дефолту. И не страдайте маразмом в плане доказательств как правильно это называется, встраиваемая или встроенная.
Дык в том-то и дело, что нигде не написано. Написано, что всё зашибись, а на самом деле -- фигня.
Третий раз спрашиваю. Можно конкретики? Можно какой-то пример что ли?
Почему я прошу это сделать, потому что я практически уверен, что проблема тут не в СУБД, а в использовании в коде типов double или float, которые тоже не виноваты, ибо всему виной представление вещественного числа в самом компьютере. Есть нюансы. Про это можно легко нагуглить. Я написал какой тип позволяет избежать проблем.
И на счет производительности я бы тоже хотел глянуть, где она медленная. Я читал только одно мнение везде, что она быстрая. На том же самом stackoverflow. Что бы тебе теперь поверить, мне надо бы хотя бы увидеть хоть какие-то тесты.
Вот если знаешь как использовать тип double с SQLite -- объясни на примере. Я пытался -- у меня не получилось.
В эмуляторе работает. На девайсах -- нет.

Записываю в базу значение double, а читаю -- целое значение.
При этом если сменить системную локаль на USA --- всё начинает работать.
То есть видно, что ошибка проявляется на девайсах с русской локалью.

Tamachi
Сообщения: 203
Зарегистрирован: 17 апр 2013, 00:08

Re: Выборка из SQLITE

Сообщение Tamachi » 28 апр 2013, 22:47

rezak90 писал(а):не пойму что за гон на SQLite, сколько её используем то не было проблем ни с вещественными числами ни со скоростью

На некоторых устройствах, действительно работает.
Попробуй потестировать на FLY, например.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Выборка из SQLITE

Сообщение Mikhail_dev » 29 апр 2013, 10:19

Tamachi писал(а):
no-- писал(а):
Она не встроенная, она встраиваемая
Встроенная - это когда что-то железно входит
В состав Андроида, java или чего-то там еще она не входит.
Она входит в состав андроида по дефолту. Мне не надо никакие библиотеки подключать дополнительно, ибо андроид имеет эту СУБД по дефолту. А значит встроенная по дефолту. И не страдайте маразмом в плане доказательств как правильно это называется, встраиваемая или встроенная.
Дык в том-то и дело, что нигде не написано. Написано, что всё зашибись, а на самом деле -- фигня.
Третий раз спрашиваю. Можно конкретики? Можно какой-то пример что ли?
Почему я прошу это сделать, потому что я практически уверен, что проблема тут не в СУБД, а в использовании в коде типов double или float, которые тоже не виноваты, ибо всему виной представление вещественного числа в самом компьютере. Есть нюансы. Про это можно легко нагуглить. Я написал какой тип позволяет избежать проблем.
И на счет производительности я бы тоже хотел глянуть, где она медленная. Я читал только одно мнение везде, что она быстрая. На том же самом stackoverflow. Что бы тебе теперь поверить, мне надо бы хотя бы увидеть хоть какие-то тесты.
Вот если знаешь как использовать тип double с SQLite -- объясни на примере. Я пытался -- у меня не получилось.
В эмуляторе работает. На девайсах -- нет.

Записываю в базу значение double, а читаю -- целое значение.
При этом если сменить системную локаль на USA --- всё начинает работать.
То есть видно, что ошибка проявляется на девайсах с русской локалью.
Не используй тип double. Используй BigDecimal. Это мой ответ.

Tamachi
Сообщения: 203
Зарегистрирован: 17 апр 2013, 00:08

Re: Выборка из SQLITE

Сообщение Tamachi » 29 апр 2013, 12:41

no-- писал(а): Не используй тип double. Используй BigDecimal. Это мой ответ.
Это не ответ. В SQLite нет такого типа BigDecimal. (читай в доках http://sqlite.org/lang_createtable.html)

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Выборка из SQLITE

Сообщение Mikhail_dev » 29 апр 2013, 17:46

Сейчас к сожалению нету времени проверить, но где-то я видел что BigDecimal или сам переводится, или можно перевести в Numeric тип, который является суперклассом для всех типов таких как double, float, int и т.д. А он на сколько знаю есть в SQLIte.

Tamachi
Сообщения: 203
Зарегистрирован: 17 апр 2013, 00:08

Re: Выборка из SQLITE

Сообщение Tamachi » 29 апр 2013, 19:29

В SQLite есть только REAL. Остальные типы не поддерживают плавающую точку.

Но проблема глубже. Проблема в том, что SQLite хранит любые данные, в том числе и REAL, в _строковом_ виде.

Из-за этой "строковости" и проблемы с локалью, и тормоза -- всё отсюда.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Выборка из SQLITE

Сообщение Mikhail_dev » 29 апр 2013, 21:50

Хорошо. Давай тогда так. Сделай пару тестов, наглядных, что бы можно было видеть это всем. И сделай еще кое что. Выведи результаты double в лог, перед записью в БД.

Tamachi
Сообщения: 203
Зарегистрирован: 17 апр 2013, 00:08

Re: Выборка из SQLITE

Сообщение Tamachi » 30 апр 2013, 06:53

no-- писал(а):Хорошо. Давай тогда так. Сделай пару тестов, наглядных, что бы можно было видеть это всем. И сделай еще кое что. Выведи результаты double в лог, перед записью в БД.
Я уже поудалял из проекта всё что касалось SQLite и REAL. Не хочу отвлекаться от основной канвы разработки.
У меня уже и без того непредвиденный перерасход времени. Но когда время появится -- обязательно вернусь к этой теме.

Правда непонятно, как я пришлю тебе скриншоты экрана: ведь на эмуляторе это делать не имеет смысла (ведь баг SQLite НЕ наблюдается на эмуляторе. ). Следовательно надо делать на реальном устройстве. Однако я не знаю как сделать скриншот экрана на реальном устройстве. Для скриншота нужен rooted-device.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Выборка из SQLITE

Сообщение rezak90 » 30 апр 2013, 09:00

1) для скриншота достаточно подключить к пк любой телефон и в эклипсе есть кнопочка во вкладке Devices - Screen Capture;
2) возможно ещё модет быть дело в версии SQLite, может на телефоне стоит более старая
R.id.team
Политика на форуме запрещена

Tamachi
Сообщения: 203
Зарегистрирован: 17 апр 2013, 00:08

Re: Выборка из SQLITE

Сообщение Tamachi » 30 апр 2013, 11:48

rezak90 писал(а):1) для скриншота достаточно подключить к пк любой телефон и в эклипсе есть кнопочка во вкладке Devices - Screen Capture;
2) возможно ещё модет быть дело в версии SQLite, может на телефоне стоит более старая
Касательно кнопочки "Screen Capture": не всякий телефон можно к ней подключить. У меня не получилось подключить к ней мой FLY.
Всё что касается отладки я делаю полностью на устройстве. Никаких DDMS и завязок на компьютер!

Касательно версии SQLite: Возможно проблема кроется в версии SQLite, а возможно в том, что не все производители телефонов прикручивают к SQLite необходимые плагины. Особенно это касается тех производителей, которые не упомянуты на гуглёвом сайте как партнеры. (То есть те, кто тупо скачивает с гугла бинарик для прошивки устроойства и не заморачивается с установкой нужных плагинов)

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Выборка из SQLITE

Сообщение Mikhail_dev » 30 апр 2013, 13:10

Касательно кнопочки "Screen Capture": не всякий телефон можно к ней подключить. У меня не получилось подключить к ней мой FLY.
Если телефон не отображается в списке устройств, то стоит добавить его vendorID. Вот тут информация.
Если для Fly или чего другого нету VendorId в общем списке, то стоит его найти. К примеру на линуксе это команда в консоли "lsusb -v ". Об этом тут.
Всё что касается отладки я делаю полностью на устройстве. Никаких DDMS и завязок на компьютер!
1. Каким образом ты делаешь это на устройстве?
2. О каких завязках идёт речь?

Tamachi
Сообщения: 203
Зарегистрирован: 17 апр 2013, 00:08

Re: Выборка из SQLITE

Сообщение Tamachi » 30 апр 2013, 14:33

1. Пользуюсь CatLog и смежными средствами. Ничего лучше этого придумать невозможно!
2. Я имел в виду дополнительные фреймворки от гугля + дрова для смартфона. Всё это нарушает чистоту тестирования. И ко всему прочему очень тяжело ставится на комп, конфликтует с другими компонентами Eclipse.

3. На установку и прикрутку и допилку всяких отладочных средств уходит ну офигенно много времени. На написание проекта
времени ушло бы меньше! Я устал трахаться с Эклипсом и очень доволен режимом отладки на устройстве. Кстати, если бы я этого
не делал, так никогда бы и не обнаружил упомянутый баг. А потом бы очень долго думал на тему "Почему так много людей скачало мою программу, но никто не начал ею пользоваться".

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Выборка из SQLITE

Сообщение Mikhail_dev » 30 апр 2013, 14:44

1. Пользуюсь CatLog и смежными средствами. Ничего лучше этого придумать невозможно!
Что значит невозможно? Куда удобнее кликнуть по строке с ошибкой и уже перейти на ту самую строку с ошибкой. CatLog я так понимаю это не умеет. И да, что за смежные средства?
2. Я имел в виду дополнительные фреймворки от гугля
Это стандартное ПО, идущее в комплекте с Android SDK.
Кстати, если бы я этого
не делал, так никогда бы и не обнаружил упомянутый баг. А потом бы очень долго думал на тему "Почему так много людей скачало мою программу, но никто не начал ею пользоваться".
Лично я до сих пор не вижу данного бага от тебя. Может стоит позабыть о нем, раз на то пошло?

Узнал про SQLite. BigDecimal должен приводится к типу Number. double и float где нужна точность - лесом.

Ответить