Как загрузить более 1 МБ данных из базы данных sqlite на курсор Android? - PullRequest
8 голосов
/ 04 августа 2011

Точно я пытаюсь загрузить более 1 МБ данных из базы данных sqlite на курсор Android. Во время загрузки выдает следующую ошибку вроде

08-04 11:10:15.813: ERROR/CursorWindow(4465): need to grow: mSize = 2097152, size = 403719, freeSpace() = 209669, numRows = 1
08-04 11:10:15.813: ERROR/CursorWindow(4465): Attempting to grow window beyond max size (2097152)
08-04 11:10:15.813: ERROR/Cursor(4465): Failed allocating 403719 bytes for blob at 0,13
08-04 11:10:15.813: DEBUG/Cursor(4465): finish_program_and_get_row_count row 0
08-04 11:10:15.899: ERROR/CursorWindow(4465): need to grow: mSize = 2097152, size = 403719, freeSpace() = 209669, numRows = 1
08-04 11:10:15.899: ERROR/CursorWindow(4465): Attempting to grow window beyond max size (2097152)
08-04 11:10:15.899: ERROR/Cursor(4465): Failed allocating 403719 bytes for blob at 0,13
08-04 11:10:15.899: DEBUG/Cursor(4465): finish_program_and_get_row_count row 0
08-04 11:10:15.899: ERROR/CursorWindow(4465): Bad request for field slot 0,0. numRows = 0, numColumns = 14
08-04 11:10:15.899: DEBUG/AndroidRuntime(4465): Shutting down VM.

если кто-нибудь знает, как загрузить большие данные (более 1 МБ) в курсор Android? спасибо,

1 Ответ

6 голосов
/ 04 августа 2011

Не храните капли размером 500 КБ в вашей базе данных. Храните идентификаторы в своей базе данных и помещайте большие двоичные объекты как файлы в хранилище. Если вы используете MODE_PRIVATE, они не будут доступны другим процессам.

...