Question

Est-il possible de lire à partir d'un SQLite db alors qu'il est en cours d'écriture?

Je suis conscient que l'accès est bloqué pour les écritures quand il est en cours d'écriture, mais est-ce la même chose pour lit?

Était-ce utile?

La solution 2

Après quelques lectures autour, et en regardant à travers le code FMDB, je découvre que je n'utilisais pas les valeurs de SQLITE_BUSY et SQLITE_LOCKED correctement.

Selon le code FMDB, on doit passer en boucle pour un nombre limité de tentatives, en attendant un temps bewteen.

Je mis en œuvre que dans mon code, et tout semble fonctionner très bien.

Autres conseils

Il est un peu alambiquée, mais il faut vérifier le verrouillage du fichier et la documentation Concurrency SQLite. On dirait que si le db est en mode verrouillé exclusive, qui est le seul moment où se lit ne sont pas autorisés. En outre déverrouillé, lorsque le db est même pas ouvert.

Je ne suis pas sûr à 100%, mais c'est ce que je pense cela signifie.

Oui, bien que tous les problèmes de multithreading pertinents doivent être compte. Je poignées multiples généralement ouvertes au même fichier de base de données par l'intermédiaire de sqlite3_open_v2 ().

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top