On Mar 26, 2010, at 12:40 AM, <sudha.bheema...@nokia.com> <sudha.bheema...@nokia.com > wrote:
> Hi, > > > I have downloaded the sqlite from the link > http://www.sqlite.org/download.html > version sqlite-3.6.23.so.gz<http://www.sqlite.org/ > sqlite-3.6.23.so.gz> (220.62 KiB). I am using fedora -9-i386. Have > mounted a > Shared drive on my pc to the fedora image.I copied the extracted > sqlite db and saved it on the fedora usr/lib directory from where > the code loads the db. Please see the second paragraph of http://www.sqlite.org/faq.html#q5 for a likely explanation of what is going wrong. > > This is the piece of code that I am using to do the operations on > sqlite db. > > #include <iostream> > #include "sqlite3.h" > #include <dlfcn.h> > > using namespace std; > > typedef void* HINSTANCE; > > typedef int (*FnPtr_sqlite3_open)(const char *filename, sqlite3 > **ppDb ); > typedef int (*FnPtr_sqlite3_extended_result_codes) (sqlite3*, int > onoff); > typedef int (*FnPtr_sqlite3_prepare_v2)(sqlite3 *db, const char > *zSql, int nByte, sqlite3_stmt **ppStmt, const char **pzTail ); > typedef int (*FnPtr_sqlite3_step)(sqlite3_stmt*); > typedef int (*FnPtr_sqlite3_finalize)(sqlite3_stmt *pStmt); > > class TDBClass > { > public: > HINSTANCE LoadLibrary(); > void LoadFunctions(); > void VerifyLoadedFunction(void* aFnPtr); > public: > FnPtr_sqlite3_open sqlite3_open; > FnPtr_sqlite3_extended_result_codes > sqlite3_extended_result_codes; > FnPtr_sqlite3_prepare_v2 sqlite3_prepare_v2; > FnPtr_sqlite3_step sqlite3_step; > FnPtr_sqlite3_finalize sqlite3_finalize; > > HINSTANCE sqLiteHndl; > }; > > > HINSTANCE TDBClass::LoadLibrary() > { > sqLiteHndl = dlopen("/usr/lib/sqlite-3.6.23.so", RTLD_LAZY| > RTLD_GLOBAL); > return sqLiteHndl; > } > > void* GetProcAddress(HINSTANCE aHandle, const char* aSymbol) > { > return dlsym(aHandle, aSymbol); > } > > void TDBClass::LoadFunctions() > { > sqlite3_open = > (FnPtr_sqlite3_open)GetProcAddress(sqLiteHndl,"sqlite3_open"); > if(sqlite3_open== NULL) > { > return; > } > sqlite3_prepare_v2 = (FnPtr_sqlite3_prepare_v2) > GetProcAddress(sqLiteHndl,"sqlite3_prepare_v2"); > sqlite3_step = (FnPtr_sqlite3_step) > GetProcAddress(sqLiteHndl,"sqlite3_step"); > sqlite3_extended_result_codes = > (FnPtr_sqlite3_extended_result_codes) GetProcAddress(sqLiteHndl, > "sqlite3_extended_result_codes" ); > } > > > > int main() > { > cout << "!!!Hello World!!!" << endl; // prints !!!Hello > World!!! > > sqlite3* sqlhandle; > TDBClass tdbhandle; > HINSTANCE sqlitehandle = tdbhandle.LoadLibrary(); > tdbhandle.LoadFunctions(); > int err = tdbhandle.sqlite3_open("/root/Sudha/epoc32/winscw/c/ > tswi/tscrtool/scr.db",&sqlhandle); > err = tdbhandle.sqlite3_extended_result_codes(sqlhandle, 0); > sqlite3_stmt* stmtHandle = NULL; > const char* stmtTail = NULL; > > const char* statement = "CREATE TABLE > SoftwareTypeNames(NameId INTEGER PRIMARY KEY NOT NULL,SoftwareTypeId > INTEGER NOT NULL,Locale INTEGER DEFAULT 0,Name TEXT NOT NULL);"; > std::string stmt(statement); > tdbhandle.sqlite3_prepare_v2(sqlhandle, stmt.c_str(), > stmt.size(), &stmtHandle, &stmtTail); > int err1 = tdbhandle.sqlite3_step(stmtHandle); > > return 0; > } > > > This step int err1 = tdbhandle.sqlite3_step(stmtHandle); > in the code returns 5 (sqlite_busy) every time I run the program. > (I don't have any multi threads in my program which can lock the db. ) > > Any help on this is appreciated. > > > Regards > sudha > > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users D. Richard Hipp d...@hwaci.com _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users