Recuperar gran blob de la base de datos sqlite de Android
Guardé trozos de datos binarios (protobufs) en la base de datos sqlite de una aplicación de Android sin darme cuenta de que AndroidCursor
Solo puede contener un máximo de 1MB de datos. Ahora sé que debería haber almacenado estos blobs binarios en archivos y solo hacer referencia a los archivos en las entradas de la base de datos sqlite.
Necesito actualizar la base de datos (la aplicación ha estado en uso por un tiempo) para mover estos fragmentos binarios a archivos. El problema es que los datos de algunos usuarios ya han excedido el límite de 1 MB y no puedo recuperarlos de la base de datos (accediendo a laCursor
para una sola fila que contiene un blob grande lanza unIllegalStateException: Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initialize before accessing data from it
).
¿Cómo recupero los blobs binarios que son mayores que los 1MB?Cursor
límite que se han almacenado en la base de datos sqlite?