Проблема с хранением изображений в базах данных Blackberry - PullRequest
1 голос
/ 05 февраля 2011

Я использую базу данных SQLite в своем мобильном приложении BlackBerry, и она отлично работает.

Я хочу сохранить снимок с камеры в базе данных.Размер изображения захвата камеры составляет 400 КБ, но я уменьшаю его до 7000 байт.

Когда я пытаюсь вставить его в базу данных, он показывает Размер BLOB-объекта слишком большой .База данных принимает только до 4000 байтов на запрос.

Как мне вставить это изображение?Кто-нибудь может направить меня, пожалуйста?

1 Ответ

1 голос
/ 06 февраля 2011

В то время как в целом SQLite имеет довольно разумные ограничения на BLOB , гораздо более ограничен для Blackberry .(Ограничение действительно устанавливается во время компиляции механизма БД.) Вы можете использовать информацию на первой странице, чтобы фактически узнать, каково действительно ограничение (хотя следует помнить, что это может варьироваться в зависимости от платформы Blackberry;на второй странице):

int sizeLimit = sqlite3_limit(db, SQLITE_LIMIT_LENGTH, -1);

Тем не менее, вторая ссылка отмечает, что рекомендуется хранить как можно меньше данных в БД (ну, разумно; если данные должны быть вэто должно быть в) с остальной информацией, хранящейся как обычные файлы.В случае изображений я бы предложил поместить само изображение в файл и сохранить в базе данных только метаданные (включая имя файла, естественно!).Это позволит обойти ограничения по размеру, но при этом разрешить достаточно богатые запросы.При этом вы теряете транзакционное хранение данных изображения (но если вы получаете взамен возможность хранить данные на всех , это все равно хорошая сделка).

...