Thanks all for the answers.

> Do you have a separate database handle (provided by a unique call to
> sqlite3_open()) for each and every thread? 

Yes, that's what I do, each thread creates a new DB connection on its start
and uses only this connection then.

> One means of troubleshooting this is to emit a log statement that
> includes the thread id with every BEGIN/COMMIT (e.g. printf("%d - %s",
> thread, sql)).  It may be useful to log other sql statements this way as
> well. 

Actually yes, that's what I do, using OutputDebugString in from WinAPI all
SQL commands get to a log.

> If you have additional evidence of problems in SQLite, I will be
> glad to listen to it. 

Well, I think it's in SQLite (based on my code and the fact that some other
users have the same problem with multiple threads). I understand it's hard
to prove this, seems that I'll have to make a very simple sample application
that exhibits the problem.

Regards,
Jiri


Reply via email to