Doug Hanks wrote:
Let me see if I understand this correctly:
So calling sqlite3_busy_time() allows you sleep for a max of N ms if
the database is busy. Basically this function polls for you?
This is one way to describe it.
When
the database is free, it will return with SQLITE_DONE or SQLITE_ROW?
Not it, but whatever function you called to initiate the request -
sqlite3_step, sqlite3_execute. You only call sqlite3_busy_timeout once
to set up the timeout on the database handle, and it affects all future
operations.
What happens if the database never gets free? Will
sqlite3_busy_timeout() just return SQLITE_BUSY?
Again, not sqlite3_busy_timeout, but the function that initiated the
request. Yes, it will wait for the specified time, and if it still
cannot proceed, it'll fail with SQLITE_BUSY.
Igor Tandetnik