hi Pavel, Thanks for your reply and reminder. I am now using SQLite version 3.3.5, and i cannot find flag SQLITE3_THREADSAFE in source code, so my question is how can i ensure i compile with this option?
The second question is when i met SQLITE_MISUSE error, can i reset or reopen the database to avoid this error? Regards, Tim Pavel Ivanov-2 wrote: > > Oh, and one more thing: sqlite-dev list is for questions related to > developing SQLite itself. For problems with using SQLite you should > write to sqlite-users list (put in CC). > > Pavel > > On Fri, Jan 8, 2010 at 7:50 AM, Pavel Ivanov <paiva...@gmail.com> wrote: >> As you're new to SQLite you could easily make some incorrect usages of >> SQLite's API. But we won't be able to say to you exactly what is >> incorrect until we don't see the actual code. So please show it to us. >> Incidentally exact value of SQLITE3_THREADSAFE (0, 1 or 2) during >> compilation is also important as well as any other flags you use. >> >> And just out of curiosity: how did you check that the reason "using >> sqlite_close or calling sqlite_exec with the same database pointer >> simultaneously from two separate threads" is not applied to you if as >> you said in the application "you saved this handle as global variable, >> then in other threads you use it"? >> >> >> Pavel >> >> On Fri, Jan 8, 2010 at 3:42 AM, Tim Shen <bh_s...@hotmail.com> wrote: >>> Hi All, >>> >>> I am new to SQLite and recently I took over a new project which using >>> SQLite DB under WinCE. We build the SQlite.dll using flag >>> SQLITE3_THREADSAFE, and used Multi-Thread programming in the >>> application. >>> The problem is that in some operations, function call sqlite3_exec() >>> will >>> throw out error SQLITE_MISUSE. >>> I call the sqlite3_open16() and sqlite3_close() in main thread and >>> saved >>> this handle as global variable. Then in other threads, I will use this >>> global variable to call other sqlite3 function such as >>> sqlite3_exec(),sqlite3_get_table(),sqlite3_free_table(). >>> I searched on the sqlite3 site, and got the following information >>> >>> SQLITE_MISUSE >>> This error might occur if one or more of the SQLite API routines is used >>> incorrectly. Examples of incorrect usage include calling sqlite_exec >>> after >>> the database has been closed using sqlite_close or calling sqlite_exec >>> with >>> the same database pointer simultaneously from two separate threads. >>> >>> I checked above 2 possible reason may caused this error and make sure it >>> is >>> not caused by them. Any other advise you guys can give it to me? Thanks >>> in >>> advance. >>> >>> Regards, >>> Tim >>> >>> _______________________________________________ >>> sqlite-dev mailing list >>> sqlite-...@sqlite.org >>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-dev >>> >> > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > > -- View this message in context: http://old.nabble.com/Re%3A--sqlite-dev--Why-I-always-got-error-SQLITE_MISUSE-21--*-Library-used-incorrectly-*--tp27075467p27095772.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