hello everyone !

I`m trying to use sqlite database with c++, but something isnt working
right...

The problem I`m dealing here is that i cant insert other datas into the
table i`ve created except NULL, because i get following error message:

Error in select statement : INSERT INTO a (a,b,c,d) VALUES (NULL, NULL,
something_else, NULL) [no such column: something_else].


when i write :

insert(4, aa, "NULL", "NULL", "NULL");

then NULL "values" are inserted

I guess i`ve made some mistake with using pointers, but i dont see it.. I`m
not very experienced programmer..

here is the main function:



int main ()
{   

char data_base_name [20];
char *db_name;
db_name = data_base_name;

char tab_name [20];
table_name=tab_name;

open_db ("db_name"); 

cout<<"Insert table name:"<<endl;
cin>>tab_name;

char a[10]="a";
char aa[100]="NULL";

select_stmt ("DROP TABLE a");

create_table (4, a, "b", "c", "d");

insert(4, aa, "NULL", "something_else", "NULL");

sqlite3_close(db);

getchar ();

return 0;
}






function create_table is working ok, if i`m not wrong.. 
here it is:




int create_table (int no_col, char *fmt, ...) 

{
int i;  
char f[500] = "CREATE TABLE ";

va_list ptr;
va_start (ptr, fmt);
        for (i=0; i<(no_col-1); i++)
        {
        strcat (fmt, ",");            // fmt = a ,b ,c ,d
        strcat(fmt, (va_arg (ptr, char*)));             
        }
va_end (ptr);

fmt1 = fmt;   //fmt1- global pointer

strcat (f, table_name);   // "CREATE TABLE x
strcat (f, " (");         // "CREATE TABLE x "(
strcat (f, fmt);          // "CREATE TABLE x ( a,b,c,d 
strcat (f,")");           // "CREATE TABLE x (a,b,c,d)"

char * stmt = f  ;
printf ("\nstmt = %s\n", stmt);
select_stmt (stmt);

return 0;
}






insert function:




int insert (int no_col, char *fmt2, ... )
{       
int i;
va_list ap;
va_start (ap, fmt2);

for (i=0; i<(no_col-1); i++)
{
        strcat (fmt2, ",");
        strcat (fmt2, (va_arg(ap, char*)));
}
va_end (ap);

char k[500]= "INSERT INTO ";
strcat (k, table_name );
strcat (k, " ( ");
strcat (k,  fmt1);
strcat (k, ") ");
strcat (k, "VALUES (");
strcat (k, fmt2);
strcat (k, ")");
printf ("\nk = %s\n\n", k);

char * stmt = k;
select_stmt (stmt); 

return 0;
}







any help and auggestions very appreciated..

T








-- 
View this message in context: 
http://www.nabble.com/problem-with-inserting-non-NULL-values-into-sqlite-table-tp26114852p26114852.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

Reply via email to