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

  • Obtener los siguientes N puntos geográficos más cercanos
  • Android sqlite: No se pudo cambiar la configuración regional de db en 'zh_CN'
  • Android: ¿Qué tan segura es la base de datos con la aplicación
  • En la base de datos Sqlite, Cómo insertar varias filas en la tabla al mismo tiempo
  • Cómo ver la base de datos de aplicación de Android que se ejecuta en mi teléfono
  • Android - La mejor manera de sincronizar SQLite con MySQL
  • Diferencias de SQLite entre Android 2.1 y 2.2
  • Android - Seleccionar máximo en contentProvider
  • Excepción "tabla ... no tiene columna nombrada ..."
  • SQLite externo Contenido del archivo que accede al error
  • Compruebe si la consulta SQL ha tenido éxito en Android SQLite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.