Domanda

E 'possibile leggere da un db SQLite mentre è in corso la scrittura?

Sono consapevole del fatto che l'accesso è bloccato in scrittura quando è in corso la scrittura, ma è che lo stesso per legge?

È stato utile?

Soluzione 2

Dopo un po 'leggendo in giro, e guardando attraverso il codice FMDB, ho scoperto che non stavo usando correttamente i valori di ritorno SQLITE_BUSY e SQLITE_LOCKED.

Secondo il codice FMDB, uno deve essere ripetuto per un numero limitato di tentativi, in attesa di un breve periodo di tempo bewteen.

Così ho implementato che nel mio codice, e tutto sembra funzionare bene.

Altri suggerimenti

E 'un po' contorto, ma controllare il chiusura di lima e la documentazione concorrenza SQLite. Suona come se il db è in modalità exclusive bloccato, che è l'unica volta che si legge non sono ammessi. Oltre sbloccato, quando il db non è nemmeno aperto.

Non sono sicuro al 100% su di esso, ma è quello che I pensare significa.

Sì, anche se tutti i problemi di multithreading pertinenti ripresi devono essere conto. Io in genere aprire più maniglie allo stesso file di DB tramite sqlite3_open_v2 ().

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top