Lectura de transacciones no confirmadas en Android

Tengo operaciones de base de datos de operaciones pesadas, que añade alrededor de 10.000 registros a mi base de datos. Dado que esto podría tomar un tiempo muy largo, sería mejor utilizar las transacciones.

db.startTransaction(); .... do write operations. .... db.setTransactionSuccessful(); db.endTransaction(); 

Ahora, tengo algunas operaciones de lectura dentro de las transacciones, y ya que las inserciones no se cometen hasta endTransaction, esos registros no se obtienen. He oído hablar de algo llamado niveles de aislamiento de transacción, que nos permite leer registros sucios (no confirmados) también. ¿Alguna idea de cómo hacer esto?

Yo aconsejaría llamar a la instrucción SQL SQLite pragma:

 database.execSQL("PRAGMA read_uncommitted = true;"); 

Esta sentencia dice que las consultas utilizarán nivel de aislamiento de transacción READ_UNCOMMITTED en lugar de READ_SERIALIZABLE (modo predeterminado de SQLite).

Mira por ejemplo aquí

¿Has probado esto

 // outer transaction db.startTransaction(); .... //roll out a new transaction db.startTransaction(); .... do write operations. .... db.setTransactionSuccessful();// <-- you do commint inside of this transaction // you can read data from here on from the previous committed transaction .... db.setTransactionSuccessful(); db.endTransaction(); 

Encontré que por defecto usted podrá leer los expedientes que están todavía para ser confiados. Aunque esto falla si está utilizando SQliteOpenHelper . Esto se debe a que SQliteOpenHelper proporciona 2 SQliteOpenHelper separadas manejadas (de lectura y escritura) y no confirmadas, que no estarán disponibles para su lectura desde el otro identificador. Por lo tanto, si desea leer registros no SQLiteDatabase , utilice la clase SQLiteDatabase .

  • Almacenamiento de archivos en Android Database (Custom Content Provider) utilizando el campo _data - v1.6
  • Los ejemplos de ORMLite para Android no compilarán
  • Navegador de base de datos SQLite con Android
  • HTML5 Webapp como icono o aplicación regular en iPhone y Android.
  • Android: utilice la base de datos SQLite en la tarjeta SD (no utilizando el almacén de datos Android interno)
  • SQLiteException: tabla ya existe
  • Un comportamiento extraño para reguelr sqlite operación en android
  • SQL eliminar de una tabla + un jointable?
  • Datos de SQLite a un RecyclerView
  • Cómo cambiar el modo de diario de base de datos
  • Android: ¿puedo usar una clase SQLiteOpenHelper para varios archivos de base de datos?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.