There are two thinks I am working on. Firstly, just to loop around the execution:

do {
        execute(sql);
} while (SQLITE_BUSY || SQLITE_LOCKED)

This does the job, but is not very nice. Also impossible to tell where a genuine lock through bad programming, and a lock through heavy load.

Secondly, an alternate simple API to complete a SELECT query. My version will load the table into memory, then complete the query. That way no locking is maintained, and I can use the data for as long as I want. (This is the way MySQL and PostgreSQL work.) I can also stream this table down a TCP/IP connection. Although this will be only a table of text, and require freeing after use. (Has any person done this already to save me the work?) If my version work, I'll try and offer a patch.

But I would still like to offer encouragement to the great developers of SQLite to get row locking working. For me will transform SQLite into a very professional system.

Kind regards,

Ben Clewett.



Will Leshner wrote:
On 4/18/05, Ben Clewett <[EMAIL PROTECTED]> wrote:


I see in the manual there are plans use Row Locking.  This would solve
my problems.  Allowing me to load the database from multiple processes
to a far greater amount without fear of SQL_BUSY.  As well as
simplifying my programs.


I am currently experimenting with using triggers to do row locking and
it seems to work quite well, though I don't know if it will help solve
your particular problem.




Reply via email to