I think you should consider running the program with one thread at a time.

This will help you isolate if this is a problem within a thread or is an 
interaction among the threads.

I'll assume its both. After you fix all of the localized issues.

I'd suggest recompiling sqlite with thread safe turned on. 

Allow each thread to create its own connection. 

Then Wrap each transaction with a begin immediate. That way you can acquire a 
lock when needed. Use a loop around the begin immediate testing for success. If 
you fail with sqlite busy. Simply sleep a short while (hint usleep) loop and 
try again.

HTH
Ken



--- On Fri, 10/31/08, dbikash <[EMAIL PROTECTED]> wrote:

> From: dbikash <[EMAIL PROTECTED]>
> Subject: Re: [sqlite] "SQL logic error or missing database" with 
> multithreaded program
> To: sqlite-users@sqlite.org
> Date: Friday, October 31, 2008, 10:24 AM
> I use both int sqlite3_errcode() and sqlite3_errmsg(). Here
> is what they
> return (I get 3 different types of errors in different
> runs):
> 1, SQL logic error or missing database.
> 1, unrecognized token "" (there's a non
> printable character like a rectangle
> within the quotes).
> 1, SQL logic error or missing database, sqlite3_get_table()
> called with two
> or more incompatible queries (this last print is obtained
> from zErrMsg
> returned when the return value from sqlite3_get_table() is
> not SQLITE_OK)
> 
> Also, the program is written to print an error and then
> continue in the
> infinite loop. I can find a few errors in query execution,
> but it is after
> an error in insertion (sqlite3_step() != SQLITE_DONE) that
> the program quits
> by itself. 
> 
> 
> D. Richard Hipp wrote:
> > 
> > 
> > On Oct 31, 2008, at 9:46 AM, dbikash wrote:
> >>
> >> I get a SQLite error 1 (SQL logic error
> >> or missing database). What could be the problem?
> > 
> > Is that the error message text that SQLite returns: 
> "SQL logic error  
> > or missing database"?  Or is that just the
> meaning of SQLITE_ERROR  
> > that you looked up?  What error message does
> sqlite3_errmsg(db) return?
> > 
> > D. Richard Hipp
> > [EMAIL PROTECTED]
> > 
> > 
> > 
> > _______________________________________________
> > sqlite-users mailing list
> > sqlite-users@sqlite.org
> >
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> > 
> > 
> 
> -- 
> View this message in context:
> http://www.nabble.com/%22SQL-logic-error-or-missing-database%22-with-multithreaded-program-tp20266281p20268213.html
> Sent from the SQLite mailing list archive at Nabble.com.
> 
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to