¿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.

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.

  • Sqlite sincrónico
  • Qué son los tipos de datos en SQLite que soportan android
  • Cómo eliminar la base de datos SQLite de Android mediante programación
  • Uso de SQLite desde libGDX en Android
  • SQLIte DROP tabla ROLL volver
  • No se puede INSERTAR en SQLite, Código de error: 19
  • Cómo almacenar datetime en SQLite
  • Android NullPointerException al ejecutar la consulta en la base de datos SQLite
  • Android - SQLiteException: near "=": error de sintaxis (código 1)
  • ¿Está bien confiar en SQLiteConstraint y dejar SQLite hacer la comprobación para mí? ¿Hay una trampa?
  • Acceso a bases de datos en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.