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.
>
>

Reply via email to