Hi All, To give some more information
void myfunction(char* query) { printf(" Query is: %s \n",query); char* newquery = "insert into sdb (id,resclass,type,manufacturer,method,ownership,precision,minrange,maxrange,capacity) values (43,'HARDWARE','MONITOR','GE','NA','XYZ',0,0,4,2)" int cmpval = strcmp(query,newquery); if (cmpval == 0) printf("strings match \n"); else printf("Strings dont match\n") printf("------------------------------------------\n"); rc = sqlite3_exec(db,query, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ) { fprintf(stderr, "SQL error while registering: %s\n",zErrMsg); } } Now if I use sqlite3_exec(db,newquery, NULL, 0, &zErrMsg) it works fine. But if I use sqlite3_exec(db,query, NULL, 0, &zErrMsg); it gives me the unrecognized token "" error. Eventhough my strcmp function tells me that the two strings match, but sql_exec does not think so. I am bit confused as to why the same hard-coded string works but not the other one. Any help on this would be great. Regards, --Sameer. On Tue, 28 Dec 2004, D. Richard Hipp wrote: > Roger Binns wrote: > > [M]ost software does not play well with running out of memory... > > > > FWIW: If a malloc() ever fails with SQLite, it will return > SQLITE_NOMEM. It also sets a flag and will forever after > continue to return SQLITE_NOMEM even if you free up a bunch > of memory so that malloc() would start working again. There > is no way to reset this condition. Once a malloc() fails, > the party is over and you might as well shut down the process. > > If malloc() fails, SQLite might also leak memory. (Ironic, > isn't it?) > > The only guarantees that SQLite makes after a malloc failure > is that it will not abort() or panic() or segfault. Basically, > it just gives you a chance to shutdown gracefully. This might > not sound like much, but as Roger points out, it is a lot > more than most other software packages offer. > >