Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - [C] SQLIte e insert into con valori
Forum - C/C++ - [C] SQLIte e insert into con valori

Avatar
Marte111 (Normal User)
Rookie


Messaggi: 33
Iscritto: 12/02/2014

Segnala al moderatore
Postato alle 19:05
Giovedì, 08/05/2014
salve, ho la necessita di passare i valori ad questa stringa:
Codice sorgente - presumibilmente C/C++

  1. char *sql_insert_db;
  2.         sql_insert_db = "insert into primanota(data,motivazione,tipo,importo)VALUES("");";


come faccio in C?

Il codice della creazione del database è ok,  ma non riesco ad capire come passare i valori alla sql.

il codice completo e cosi:
Codice sorgente - presumibilmente C++

  1. void salva_nel_db(char *data, char *motivazione, char *tipo, char *importo)
  2. {      
  3.         sqlite3 *db;
  4.     char *zErrMsg = 0;
  5.     int rc;
  6.     rc = sqlite3_open(nomefile, &db);
  7.         if( rc ){
  8.       fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
  9.         exit(0);
  10.         }
  11.         char *sql_insert_db;
  12.         sql_insert_db = "insert into primanota(data,motivazione,tipo,importo)VALUES("");";
  13.        
  14.         rc = sqlite3_exec(db, sql_insert_db, 0, 0, &zErrMsg);
  15.         sqlite3_close(db);
  16.         printf("\n Salvato..\n");
  17.         Pause();
  18. }



qui dentro: ...........o,importo)VALUES("-  come si fa qui - ? ");

datemi dei consigli..

grazie mille e buona serata.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:37
Giovedì, 08/05/2014
Se programmi in C con un DB e SQL ci si attende che almeno tu sappia usare le stringhe.

Utilizza la funzione sprintf in maniera opportuna.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Marte111 (Normal User)
Rookie


Messaggi: 33
Iscritto: 12/02/2014

Segnala al moderatore
Postato alle 20:07
Giovedì, 08/05/2014
niente ..

e cosi ma non riesco ad capire come mettere l'auto increment, alla tabella..

perché se lo faccio direttamente nell'app sqlite3 in console .. e mettendo per esempio:

insert into primanota(id, etc .. values(1,  etc ..)

funziona .. invece senza id non va..

Qual'è la sintassi giusta del sql key primary autoincrement?

grazie mille
tanto vi posto il codice:

Codice sorgente - presumibilmente C++

  1. void salva_nel_db(char *data, char *motivazione, char *tipo, char *importo)
  2. {      
  3.         sqlite3 *db;
  4.         sqlite3_stmt *stmt;
  5.     int rc;
  6.     rc = sqlite3_open(nomefile, &db);
  7.         if( rc ){
  8.       fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
  9.         exit(0);
  10.         }
  11.         char *sql_insert_db;
  12.         sql_insert_db = "insert into primanota(data,motivazione,tipo,importo)VALUES(?,?,?,?);";
  13.        
  14.         rc = sqlite3_prepare_v2(db, sql_insert_db,0, &stmt, 0);
  15.         sqlite3_bind_text(stmt, 1, data,6, SQLITE_STATIC);
  16.         sqlite3_bind_text(stmt, 2, motivazione,6, SQLITE_STATIC);
  17.         sqlite3_bind_text(stmt, 3, tipo,6, SQLITE_STATIC);
  18.         sqlite3_bind_text(stmt, 4, importo,6, SQLITE_STATIC);
  19.         rc = sqlite3_step(stmt);
  20.         sqlite3_close(db);
  21.         printf("\n Salvato..\n");
  22.         Pause();
  23. }



grazie mille.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:14
Giovedì, 08/05/2014
Scusa ... cosa c'entra con il problema di cui parlavamo ?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Snogar (Normal User)
Pro


Messaggi: 130
Iscritto: 09/01/2012

Segnala al moderatore
Postato alle 10:52
Sabato, 10/05/2014
Se hai dichiarato una chiave intera questa si incrementerà da sola ad ogni inserimento quindi non devi inserirla nella chiamata insert. :k:


PM Quote