I am have a sqlite database in the iPhone application I am writing. I get an error with following code that I am running in a background thread. In the background thread, I
Your database is open. Close it using sqlite3_close(db)
.
If you don't close, then the process accessing your database will be running background which will cause database is locked error.
But note that if you access the same SQLite DB from multiple threads, without some sort of separate synchronization (some way to know that you'll never have near-simultaneous accesses from multiple threads) then you're likely to get "database locked" errors even if you close everything correctly on each access.
SQLite does not provide any sort of "lock wait" mechanism.
Your basic options are: