Posso ler a partir de um db SQLite ao escrever a ele no iPhone?
-
19-09-2019 - |
Pergunta
É possível ler de um db SQLite enquanto ele está sendo escrito para?
Estou ciente de que o acesso é bloqueado para gravações quando está sendo escrito, mas é que o mesmo para lê?
Solução 2
Depois de algum lendo ao redor, e olhando através do código FMDB, eu descobri que eu não estava usando os valores de retorno SQLITE_BUSY e SQLITE_LOCKED corretamente.
De acordo com o código FMDB, deve-loop para um número limitado de tentativas, esperando por um curto bewteen tempo.
Então eu implementado que no meu código, e tudo parece funcionar bem.
Outras dicas
É um pouco complicado, mas confira o bloqueio de arquivos e Concorrência documentação para SQLite. Soa como se o db está em modo exclusive
bloqueado, que é a única vez que lê não são permitidos. Além desbloqueado, quando o db não é ainda aberto.
Eu não estou 100% certo sobre isso, mas é isso que eu pensar isso significa.
Sim, apesar de todo o relevent multithreading questões precisam ser conta para. Eu geralmente abertos vários identificadores para o mesmo arquivo DB via sqlite3_open_v2 ().