Oppure

Loading
08/05/14 17:05
Marte111
salve, ho la necessita di passare i valori ad questa stringa:
	char *sql_insert_db;
	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:
void salva_nel_db(char *data, char *motivazione, char *tipo, char *importo)
{	
	sqlite3 *db;
    char *zErrMsg = 0;
    int rc;
    rc = sqlite3_open(nomefile, &db);
	if( rc ){
      fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
     	exit(0);
	}
	char *sql_insert_db;
	sql_insert_db = "insert into primanota(data,motivazione,tipo,importo)VALUES("");";
	
	rc = sqlite3_exec(db, sql_insert_db, 0, 0, &zErrMsg);
	sqlite3_close(db);
	printf("\n Salvato..\n");
	Pause();
}


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

datemi dei consigli..

grazie mille e buona serata.
aaa
08/05/14 17:37
nessuno
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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
08/05/14 18:07
Marte111
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:

void salva_nel_db(char *data, char *motivazione, char *tipo, char *importo)
{	
	sqlite3 *db;
	sqlite3_stmt *stmt;
    int rc;
    rc = sqlite3_open(nomefile, &db);
	if( rc ){
      fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
     	exit(0);
	}
	char *sql_insert_db;
	sql_insert_db = "insert into primanota(data,motivazione,tipo,importo)VALUES(?,?,?,?);";
	
	rc = sqlite3_prepare_v2(db, sql_insert_db,0, &stmt, 0);
	sqlite3_bind_text(stmt, 1, data,6, SQLITE_STATIC);
	sqlite3_bind_text(stmt, 2, motivazione,6, SQLITE_STATIC);
	sqlite3_bind_text(stmt, 3, tipo,6, SQLITE_STATIC);
	sqlite3_bind_text(stmt, 4, importo,6, SQLITE_STATIC);
	rc = sqlite3_step(stmt);
	sqlite3_close(db);
	printf("\n Salvato..\n");
	Pause();
}


grazie mille.
aaa
08/05/14 18:14
nessuno
Scusa ... cosa c'entra con il problema di cui parlavamo ?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
10/05/14 8:52
Snogar
Se hai dichiarato una chiave intera questa si incrementerà da sola ad ogni inserimento quindi non devi inserirla nella chiamata insert. :k:
aaa