A program that I wrote eventually continues to return SQLITE_BUSY when it tries to 
insert a new row into a table, even though I'm pretty sure that at each attempted time 
of insert (at least when it continually returns SQLITE_BUSY), there are no other SQL 
commands running.  I inserted Sleep(500) after each SQLITE_BUSY return and tried the 
sqlite3_busy_timeout.  I'm using the latest CVS verion of SQLite.

There is a thread that inserts rows into tables.
There is a thread that selects rows from tables and updates rows in those tables.
There is a thread that deletes rows from tables.

Each of the the commands (insert, select, update, and delete) always uses its own 
sqlite3*

So, I started looking at the documentation and found that according to:
http://www.sqlite.org/cvstrac/wiki?p=SqliteVersusDerby
"SQLite allows ... a single writer."  I have some questions about that statement.  I 
would like to know if the following cases are supported by SQLite.

Single SQLite Database File:
   Multiple processes accessing the same database file:
      1) Each process may attempt to modify the file using SQLite.
      2) Each process may attempt to modify the same table.
      3) Each process may attempt to modify tables that the other
         processes may not modify
   Multiple threads accessing the same database file:
      4) Each thread may attempt to modify the file using SQLite.
      5) Each thread may attempt to modify the same table
      6) Each thread may attempt to modify tables that the other 
         threads may not modify

Thank you for your time.

 Mike

                
---------------------------------
Do you Yahoo!?
Yahoo! Mail - 50x more storage than other providers!

Reply via email to