Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
yura91
28 / 26 / 2
Регистрация: 23.10.2013
Сообщений: 2,195
#1

Узнать размер всех данных в SQLite - Android

03.05.2016, 00:05. Просмотров 302. Ответов 11
Метки нет (Все метки)

Вот я сохранил некоторые данные в SQLite могу ли я узнать размер данных, которые хранятся в SQLite, то есть размер самой SQLite с моими данными? И есть ли ограничения на хранение данных в мобильной базе? Какой максимальный размер можно хранить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
 Аватар для YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
03.05.2016, 00:51     Узнать размер всех данных в SQLite #2
Цитата Сообщение от yura91 Посмотреть сообщение
Какой максимальный размер можно хранить?
Около 140Tb.
yura91
28 / 26 / 2
Регистрация: 23.10.2013
Сообщений: 2,195
03.05.2016, 11:05  [ТС]     Узнать размер всех данных в SQLite #3
А текущий размер базы данных(ну сколько в данный момент в ней байт хранится) как можно узнать?
Паблито
резкий
1944 / 1684 / 521
Регистрация: 12.05.2014
Сообщений: 6,018
Завершенные тесты: 1
03.05.2016, 11:39     Узнать размер всех данных в SQLite #4
зачем? информации о размере файла не хватает?

Добавлено через 7 минут
Java
1
2
3
        db.getMaximumSize(); // кэп говорит что метод возвращает максимальный размер базы
        File file = new File(db.getPath());
        file.length(); // и размер файла
yura91
28 / 26 / 2
Регистрация: 23.10.2013
Сообщений: 2,195
03.05.2016, 12:19  [ТС]     Узнать размер всех данных в SQLite #5
Ну то есть смотрите если я создал SQLite и сохранил в нее некоторые данные. То изначально(до вставки данных) у меня файл SQLite был пустой и размер этого файла был равен нулю, ну а после того как я вставил в SQLite некоторые данные то размер файла SQLite стал равным размеру (в байтах) данных что я туда положил верно? Или же у файла SQLite есть еще какой то заголовок там и такого типа и размер файла базы изначально не равен нулю, а равен размеру этого заголовка?

Добавлено через 2 минуты
И сколько этот заголовок занимает? Если он конечно есть. Просто мне нужно узнать не столько размер самого файла SQLite, сколько размер всех моих данных, которые лежат в этом файле в данный момент.
Паблито
резкий
1944 / 1684 / 521
Регистрация: 12.05.2014
Сообщений: 6,018
Завершенные тесты: 1
03.05.2016, 12:21     Узнать размер всех данных в SQLite #6
зачем?
DarkVortex
102 / 68 / 18
Регистрация: 07.07.2014
Сообщений: 239
03.05.2016, 12:29     Узнать размер всех данных в SQLite #7
https://www.sqlite.org/pragma.html
Результат запроса "PRAGMA page_count;" помножьте на "PRAGMA page_size;"
Получите размер данных +/- PRAGMA page_size
yura91
28 / 26 / 2
Регистрация: 23.10.2013
Сообщений: 2,195
03.05.2016, 12:32  [ТС]     Узнать размер всех данных в SQLite #8
Ну просто мое приложение должно читать некоторую информацию, размер которой заранее не известен (это список контактов телефона - они как известно хранятся в своей базе) сохранять ее в базу данных свою и по TCP передавать. Мне во первых нужно знать точно сколько контактов у пользователя(чтобы правильно расчитать размер буфера для передачи). Ну можно конечно прочитать все из базы в ArayList, определить размер ArrayList и выделить в массиве который хочу передавать количество байт равное размеру этого ArayList, но как то коряво немного. Хорошо бы как то сразу определить размер списка контактов вот и думаю. Не подскажете идею?
DarkVortex
102 / 68 / 18
Регистрация: 07.07.2014
Сообщений: 239
03.05.2016, 12:39     Узнать размер всех данных в SQLite #9
Что-то вы лишнюю мороку себе придумали...передавайте пока не кончатся, зачем вам их размер знать?
yura91
28 / 26 / 2
Регистрация: 23.10.2013
Сообщений: 2,195
04.05.2016, 01:19  [ТС]     Узнать размер всех данных в SQLite #10
Ну просто да, можно контакты передавать пока не кончатся через класс PrintWriter метод println(), но у меня там еще бинарные данные передаются изображение например это уже через OutputStream получается(на сервере эти все и контакты и бинарные данные все нормально разбирается,и по категориям). Единственная морока в том, что можно ли и контакты телефона как то через класс OutputStream передать( ну и контакты и бинарные данные через один класс OutputStream), вот еще думаю как здесь все оптимальнее, красивее сделать. А просто ради интереса скажите как вообще нужно эти запросы выполнять "PRAGMA page_count;" PRAGMA page_size. Через консоль они вообще выполняются или программно можно через Java? И как они выглядят полностью?

Добавлено через 12 часов 22 минуты
Я хотел спросить ведь эти PRAGMA команды - это же явно не язык java. А в какой среде и как их вообще нужно запускать?Можете пояснить?
DarkVortex
102 / 68 / 18
Регистрация: 07.07.2014
Сообщений: 239
04.05.2016, 11:52     Узнать размер всех данных в SQLite #11
Цитата Сообщение от yura91 Посмотреть сообщение
Я хотел спросить ведь эти PRAGMA команды - это же явно не язык java. А в какой среде и как их вообще нужно запускать?Можете пояснить?
Это SQL запрос к базе данных.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2016, 12:09     Узнать размер всех данных в SQLite
Еще ссылки по теме:

Android Запись данных в 2 таблицы SQLite
Как по byte[] data узнать размер снимка? Android
Как из кода узнать размер шрифта TextView Android
Android Узнать размер view
Android Узнать доступные координаты (размер экрана)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
yura91
28 / 26 / 2
Регистрация: 23.10.2013
Сообщений: 2,195
04.05.2016, 12:09  [ТС]     Узнать размер всех данных в SQLite #12
А как запустить этот SQL запрос программно(из Java кода), чтобы получить PRAGMA page_count(это же int)? У SQLiteDatabase есть только 2 метода с SQL запросами это execSQL() и rawQuery. Первая вообще ничего не возвращает, а только запускает SQL скрипт, а вторая возвращает Cursor, но мне же нужен int. Может из Cursora как то можно получить page_count если да то как?

Добавлено через 39 секунд
Или какой метод Java тогда использовать для запуска PRAGMA page_count?
Yandex
Объявления
04.05.2016, 12:09     Узнать размер всех данных в SQLite
Ответ Создать тему
Опции темы

Текущее время: 03:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru