Límite de tamaño del cursor en Android SQLiteDatabase

Descargar un db de Internet. Lo guardo en mi carpeta de datos y lo abro. Dentro de la base de datos hay una tabla "Anuncios" con 6 campos. 2 de estos campos son BLOB. Cuando quiero leer de esta tabla … Tengo un problema … Me di cuenta de que cuando leo una fila con un campo de blob más grande que 1 mega byte, esto causa una excepción … "get field slot from row 0 col 0 no ". si es un poco blob, todo está bien … gracias de antemano 🙂

Hay un límite de 1 MB de activos internos debido a la descompresión dinámica; el límite de 1MB también parece aplicarse a bloques de cursor, pero esto no parece estar documentado en ninguna parte.

En general, debe evitar blobs en SQLite, ya que no funcionan bien; en su lugar guardar los datos de blob como un archivo y almacenar la ubicación del archivo en su base de datos.

Leer un BLOB que es menos de 100 KB de una base de datos SQLite es más rápido que leer el mismo desde el sistema de archivos. Sin embargo, cualquier cosa mayor que eso se guarda mejor en el disco, con una referencia en el db. Más información en: http://www.sqlite.org/intern-v-extern-blob.html

Hay un límite de 1 MB por operación. (No estoy seguro si esto es por fila o por columna en el caso de consultas SQLite). El límite se debe a que la API de SQLite interactúa con sqlite fuera de proceso sobre el sistema Binder / Parcel IPC. El mismo límite se aplica a los valores dentro de un Bundle (Intent extras, por ejemplo).

El binder buffer de transacciones tiene un tamaño fijo limitado, actualmente 1Mb, que es compartido por todas las transacciones en curso para el proceso.

Vea: http://developer.android.com/reference/android/os/TransactionTooLargeException.html

¿Es la consulta que está utilizando 'seleccionar' dicho blob? ¿Puedes omitirlo? Si no puede, está usando:

blob = rs.getBlob(column) ; InputStream in = blob.getBinaryStream(); 

o

  blob.getBytes(1, lengthOblob) ; 

El primer método te permitirá leer el blob en trozos. El segundo va a tener la gota cargada de una vez.

Parece que la compatibilidad con BLOB en Android aún no se ha implementado …

http://www.basic4ppc.com/forum/basic4android-updates-questions/6648-support-sqlite-blob.html

¿Qué datos se almacenan en los campos BLOB? Me imagino fotos.

Yo recomendaría no usar BLOBs. El sistema de archivos es una opción mucho mejor para los datos binarios.

¿Puedes explicar un poco más sobre lo que quieres lograr con la base de datos?

  • Tamaño de pantalla Android HDPI, LDPI, MDPI
  • Android: Cómo cambiar el tamaño del RadioButton
  • Tamaño incorrecto de la cuadrícula del widget
  • ¿Cómo obtener el tamaño del widget de la aplicación?
  • Posible cambiar el tamaño de texto / color para ActionBar?
  • ¿Por qué el tamaño de mi aplicación en el dispositivo es diferente al tamaño de APK o Play store
  • ¿Cómo obtener el mejor tamaño de admob para la configuración actual de la pantalla?
  • ¿Algún modo de aumentar el tamaño del archivo de registro del sistema Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.