There's a little bit written about SQLITE_SCHEMA errors here: http://www.sqlite.org/faq.html#q17
--- "Kervin L. Pierre" <[EMAIL PROTECTED]> wrote: > Hi, > > Thanks for your response. I'm at wit's end > with this thing. > > I do open the database multiple times, but > exactly once per thread. I then keep the > sqlite3* on thread local storage and only > use that pointer on the thread it was created > on. This is how I interpreted the documentation. > Is that correct? > > I wrote a function to get a sqlite3* pointer. > Any method that requires SQLite API calls > GetDatabaseHandle() first... > > EnterCriticalSection(&otlkcon_sqlite_cs); > databaseHandle = (sqlite3 *)TlsGetValue(otlkcon_tlsIndex); > if( databaseHandle == NULL ) > { > // Thread does not have a db handle yet > sqlRes = sqlite3_open(databaseFilename, &databaseHandle); > if ( sqlRes != SQLITE_OK ) > { > // error code and exit... > } > sqlRes = TlsSetValue( otlkcon_tlsIndex, databaseHandle ); > } > LeaveCriticalSection(&otlkcon_sqlite_cs); > > http://cvs.sourceforge.net/viewcvs.py/otlkcon/otlkcon0/mstore/O_IProp.cpp?view=markup > > Tls* functions provide thread local storage. > By my reckoning, this should garantee a strict > sqlite3*<->thread relationship. > > Do mind sharing or explaining your changes? > > Thanks, > Kervin > > > Randall Fox wrote: > > On Thu, 03 Feb 2005 14:15:52 -0500, you wrote: > > > > > >>Hello, > >> > >>I am using SQLite 3.0.8 in a Win32 threaded > >>environment. > >> > >>I keep getting random "Database schema has changed" > >>errors even though I am using thread local > >>storage to make sure sqlite3_open() gets called > >>on each thread and a there is a sqlite3* per thread. > >> > >>Has anyone had any luck with resolving SQLITE_SCHEMA > >>errors in a threaded environment? > > > > > > How are you accessing the database? Do you open it multiple times and > > write to it? > > > > I had the same problem with the schema errors. I was opening the > > database twice, and when I would create a table with one of the open > > instances, the other would get the schema error the next time I > > started a write operation. > > > > I did end up fixing it by rewriting part of the SQLITE code. > > > > Randall Fox > > > > > > > > > > __________________________________ Do you Yahoo!? Yahoo! Mail - Helps protect you from nasty viruses. http://promotions.yahoo.com/new_mail