¿Cómo determinas si una .sqlite o .sqback está dañada en Java?

Se me ha dado un directorio de directorios cada uno que contiene una colección de archivos. Sqlite y sqlite que debo analizar.

El problema es que creo que algunos de estos archivos están dañados cuando los recibo porque obtengo el error: ERR: [SQLITE_CORRUPT] La imagen del disco de la base de datos es malformada (la imagen del disco de la base de datos es malformada) en mi consola cuando intento procesarlos . Esto sólo ocurre con algunos de los archivos. He aislado algunos y he intentado ejecutar mi programa en copias frescas de estos archivos malos individualmente y causan errores. La mayoría de los archivos están bien aunque 🙂

Me di cuenta de que existe la posibilidad de que de hecho pueda ser dado archivos corruptos para empezar, así que me gustaría una manera de determinar, antes de tratar de analizarlos, qué archivos son buenos y cuáles no.

Estoy escribiendo en Java. Sólo estoy interesado en la validación sqlite y sqback como sé que funciona mi analizador. Lo estoy reutilizando de un proyecto anterior.

¿Insinuación? Sugerencias? ¿Respuestas?

Muchas gracias por la transferencia de conocimiento.

One Solution collect form web for “¿Cómo determinas si una .sqlite o .sqback está dañada en Java?”

Ejecute PRAGMA quick_check como una consulta SQL normal. El resultado es el mismo que una tabla de una columna que contiene cadenas; Para una base de datos intacta, obtendrá una sola fila diciendo "ok", para un corrupto, un montón de mensajes de error.

 sqlite> pragma quick_check; ok 

Después de cambiar algunos bytes en el archivo:

 sqlite> pragma quick_check; *** in database main *** Page 64: btreeInitPage() returns error code 11 On tree page 40 cell 23: Child page depth differs On tree page 40 cell 24: Child page depth differs 

No hay ninguna garantía de que se encuentren errores.

  • Consulta SQLite: Seleccione la consulta con la cláusula BETWEEN
  • Android - Código de error 11 al importar la base de datos Sqlite en Galaxy Note
  • Android desventajas de no cerrar el cursor
  • Volver a crear la base de datos al utilizar proveedores de contenido
  • "Código de error 5: la base de datos está bloqueada" cuando se utiliza un ContentProvider
  • Eliminar filas sqllite de android de más de x días
  • La mejor manera de unir tablas usando sqlite en android
  • Android - Acceso a la base de datos en línea SQlite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.