Process A updates data base table in the tight loop. Nothing special:
loop
sql = "UPDATE table SET blob=:blob WHERE id=?";
rc = sqlite3_prepare_v2(…)
rc = sqlite3_bind_int(…)
sqlite3_bind_blob(…)
rc = sqlite3_step(…)
rc = sqlite3_reset(…)
rc = sqlite3_finalize(…);
Process B just reads from
the same table.
Loop
{
sql = "SELECT * from table";
sqlite3_prepare_v2(…);
loop with
rc = sqlite3_step(…);
rc = sqlite3_finalize(…);
}
The problem which I encounter is as follows:
====== In process A ======
sqlite3_step() and sqlite3_reset(…) fail frequently with the error nr 5 =
“database is locked”.
====== In process B ======
sqlite3_step(…) and sqlite3_finalize(…) fail with the same error “database is
locked”.
==== I thought that I can have 1 writer and many readers ====
Unfortunately it appears that even 1 reader can interfere with the writer. And
the reader fails too.
The OS is Win XP Pro.
What don’t I understand here?
Thank you,
Samuel
__________________________________________________________________
Ask a question on any topic and get answers from real people. Go to Yahoo!
Answers and share what you know at http://ca.answers.yahoo.com
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users