Выборка из SQLITE
Re: Выборка из SQLITE
Дорогой no--, а вам не кажется, что нельзя так с женщинами разговаривать? Может быть вам тоже не нужно чем-нибудь страдать??
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
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Выборка из SQLITE
Я извиняюсь, если обидел данной фразой. Для меня она выглядит совершенно безобидной.
Re: Выборка из SQLITE
Вот если знаешь как использовать тип double с SQLite -- объясни на примере. Я пытался -- у меня не получилось.no-- писал(а):Она не встроенная, она встраиваемаяВстроенная - это когда что-то железно входитОна входит в состав андроида по дефолту. Мне не надо никакие библиотеки подключать дополнительно, ибо андроид имеет эту СУБД по дефолту. А значит встроенная по дефолту. И не страдайте маразмом в плане доказательств как правильно это называется, встраиваемая или встроенная.В состав Андроида, java или чего-то там еще она не входит.Третий раз спрашиваю. Можно конкретики? Можно какой-то пример что ли?Дык в том-то и дело, что нигде не написано. Написано, что всё зашибись, а на самом деле -- фигня.
Почему я прошу это сделать, потому что я практически уверен, что проблема тут не в СУБД, а в использовании в коде типов double или float, которые тоже не виноваты, ибо всему виной представление вещественного числа в самом компьютере. Есть нюансы. Про это можно легко нагуглить. Я написал какой тип позволяет избежать проблем.
И на счет производительности я бы тоже хотел глянуть, где она медленная. Я читал только одно мнение везде, что она быстрая. На том же самом stackoverflow. Что бы тебе теперь поверить, мне надо бы хотя бы увидеть хоть какие-то тесты.
В эмуляторе работает. На девайсах -- нет.
Записываю в базу значение double, а читаю -- целое значение.
При этом если сменить системную локаль на USA --- всё начинает работать.
То есть видно, что ошибка проявляется на девайсах с русской локалью.
Re: Выборка из SQLITE
rezak90 писал(а):не пойму что за гон на SQLite, сколько её используем то не было проблем ни с вещественными числами ни со скоростью
На некоторых устройствах, действительно работает.
Попробуй потестировать на FLY, например.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Выборка из SQLITE
Не используй тип double. Используй BigDecimal. Это мой ответ.Tamachi писал(а):Вот если знаешь как использовать тип double с SQLite -- объясни на примере. Я пытался -- у меня не получилось.no-- писал(а):Она не встроенная, она встраиваемаяВстроенная - это когда что-то железно входитОна входит в состав андроида по дефолту. Мне не надо никакие библиотеки подключать дополнительно, ибо андроид имеет эту СУБД по дефолту. А значит встроенная по дефолту. И не страдайте маразмом в плане доказательств как правильно это называется, встраиваемая или встроенная.В состав Андроида, java или чего-то там еще она не входит.Третий раз спрашиваю. Можно конкретики? Можно какой-то пример что ли?Дык в том-то и дело, что нигде не написано. Написано, что всё зашибись, а на самом деле -- фигня.
Почему я прошу это сделать, потому что я практически уверен, что проблема тут не в СУБД, а в использовании в коде типов double или float, которые тоже не виноваты, ибо всему виной представление вещественного числа в самом компьютере. Есть нюансы. Про это можно легко нагуглить. Я написал какой тип позволяет избежать проблем.
И на счет производительности я бы тоже хотел глянуть, где она медленная. Я читал только одно мнение везде, что она быстрая. На том же самом stackoverflow. Что бы тебе теперь поверить, мне надо бы хотя бы увидеть хоть какие-то тесты.
В эмуляторе работает. На девайсах -- нет.
Записываю в базу значение double, а читаю -- целое значение.
При этом если сменить системную локаль на USA --- всё начинает работать.
То есть видно, что ошибка проявляется на девайсах с русской локалью.
Re: Выборка из SQLITE
Это не ответ. В SQLite нет такого типа BigDecimal. (читай в доках http://sqlite.org/lang_createtable.html)no-- писал(а): Не используй тип double. Используй BigDecimal. Это мой ответ.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Выборка из SQLITE
Сейчас к сожалению нету времени проверить, но где-то я видел что BigDecimal или сам переводится, или можно перевести в Numeric тип, который является суперклассом для всех типов таких как double, float, int и т.д. А он на сколько знаю есть в SQLIte.
Re: Выборка из SQLITE
В SQLite есть только REAL. Остальные типы не поддерживают плавающую точку.
Но проблема глубже. Проблема в том, что SQLite хранит любые данные, в том числе и REAL, в _строковом_ виде.
Из-за этой "строковости" и проблемы с локалью, и тормоза -- всё отсюда.
Но проблема глубже. Проблема в том, что SQLite хранит любые данные, в том числе и REAL, в _строковом_ виде.
Из-за этой "строковости" и проблемы с локалью, и тормоза -- всё отсюда.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Выборка из SQLITE
Хорошо. Давай тогда так. Сделай пару тестов, наглядных, что бы можно было видеть это всем. И сделай еще кое что. Выведи результаты double в лог, перед записью в БД.
Re: Выборка из SQLITE
Я уже поудалял из проекта всё что касалось SQLite и REAL. Не хочу отвлекаться от основной канвы разработки.no-- писал(а):Хорошо. Давай тогда так. Сделай пару тестов, наглядных, что бы можно было видеть это всем. И сделай еще кое что. Выведи результаты double в лог, перед записью в БД.
У меня уже и без того непредвиденный перерасход времени. Но когда время появится -- обязательно вернусь к этой теме.
Правда непонятно, как я пришлю тебе скриншоты экрана: ведь на эмуляторе это делать не имеет смысла (ведь баг SQLite НЕ наблюдается на эмуляторе. ). Следовательно надо делать на реальном устройстве. Однако я не знаю как сделать скриншот экрана на реальном устройстве. Для скриншота нужен rooted-device.
Re: Выборка из SQLITE
1) для скриншота достаточно подключить к пк любой телефон и в эклипсе есть кнопочка во вкладке Devices - Screen Capture;
2) возможно ещё модет быть дело в версии SQLite, может на телефоне стоит более старая
2) возможно ещё модет быть дело в версии SQLite, может на телефоне стоит более старая
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Выборка из SQLITE
Касательно кнопочки "Screen Capture": не всякий телефон можно к ней подключить. У меня не получилось подключить к ней мой FLY.rezak90 писал(а):1) для скриншота достаточно подключить к пк любой телефон и в эклипсе есть кнопочка во вкладке Devices - Screen Capture;
2) возможно ещё модет быть дело в версии SQLite, может на телефоне стоит более старая
Всё что касается отладки я делаю полностью на устройстве. Никаких DDMS и завязок на компьютер!
Касательно версии SQLite: Возможно проблема кроется в версии SQLite, а возможно в том, что не все производители телефонов прикручивают к SQLite необходимые плагины. Особенно это касается тех производителей, которые не упомянуты на гуглёвом сайте как партнеры. (То есть те, кто тупо скачивает с гугла бинарик для прошивки устроойства и не заморачивается с установкой нужных плагинов)
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Выборка из SQLITE
Если телефон не отображается в списке устройств, то стоит добавить его vendorID. Вот тут информация.Касательно кнопочки "Screen Capture": не всякий телефон можно к ней подключить. У меня не получилось подключить к ней мой FLY.
Если для Fly или чего другого нету VendorId в общем списке, то стоит его найти. К примеру на линуксе это команда в консоли "lsusb -v ". Об этом тут.
1. Каким образом ты делаешь это на устройстве?Всё что касается отладки я делаю полностью на устройстве. Никаких DDMS и завязок на компьютер!
2. О каких завязках идёт речь?
Re: Выборка из SQLITE
1. Пользуюсь CatLog и смежными средствами. Ничего лучше этого придумать невозможно!
2. Я имел в виду дополнительные фреймворки от гугля + дрова для смартфона. Всё это нарушает чистоту тестирования. И ко всему прочему очень тяжело ставится на комп, конфликтует с другими компонентами Eclipse.
3. На установку и прикрутку и допилку всяких отладочных средств уходит ну офигенно много времени. На написание проекта
времени ушло бы меньше! Я устал трахаться с Эклипсом и очень доволен режимом отладки на устройстве. Кстати, если бы я этого
не делал, так никогда бы и не обнаружил упомянутый баг. А потом бы очень долго думал на тему "Почему так много людей скачало мою программу, но никто не начал ею пользоваться".
2. Я имел в виду дополнительные фреймворки от гугля + дрова для смартфона. Всё это нарушает чистоту тестирования. И ко всему прочему очень тяжело ставится на комп, конфликтует с другими компонентами Eclipse.
3. На установку и прикрутку и допилку всяких отладочных средств уходит ну офигенно много времени. На написание проекта
времени ушло бы меньше! Я устал трахаться с Эклипсом и очень доволен режимом отладки на устройстве. Кстати, если бы я этого
не делал, так никогда бы и не обнаружил упомянутый баг. А потом бы очень долго думал на тему "Почему так много людей скачало мою программу, но никто не начал ею пользоваться".
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Выборка из SQLITE
Что значит невозможно? Куда удобнее кликнуть по строке с ошибкой и уже перейти на ту самую строку с ошибкой. CatLog я так понимаю это не умеет. И да, что за смежные средства?1. Пользуюсь CatLog и смежными средствами. Ничего лучше этого придумать невозможно!
Это стандартное ПО, идущее в комплекте с Android SDK.2. Я имел в виду дополнительные фреймворки от гугля
Лично я до сих пор не вижу данного бага от тебя. Может стоит позабыть о нем, раз на то пошло?Кстати, если бы я этого
не делал, так никогда бы и не обнаружил упомянутый баг. А потом бы очень долго думал на тему "Почему так много людей скачало мою программу, но никто не начал ею пользоваться".
Узнал про SQLite. BigDecimal должен приводится к типу Number. double и float где нужна точность - лесом.
