Bonjour,

Je ne savais pas du tout où placer ma question. Faites moi savoir svp si je dois demander à faire déplacer ce sujet.

Dans une boite de dialogue style formulaire, je recueille un const char* derrière un gtk_entry_get_text(). Après validation, je le récupère et l'affiche sans problème. Ensuite je veux insérer cette chaine de caractères dans une base de données avec sqlite.

Voilà ce que j'ai recopié à partir d'un exemple : (http://manishtech.wordpress.com/2009...sqlite-with-c/)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
    int retval;
    int q_cnt = 5,q_size = 150,ind = 0;
    char **queries = malloc(sizeof(char) * q_cnt * q_size);
 
    sqlite3_stmt *stmt;
    sqlite3 *handle;
 
    retval = sqlite3_open("bdd.sqlite3",&handle);
 
    if(retval)
    {
        printf("Database connection failed\n");
        return -1;
    }
    printf("Connection successful\n");
 
    char create_table[100] = "CREATE TABLE IF NOT EXISTS people (id INTEGER PRIMARY KEY, nom TEXT)";
    retval = sqlite3_exec(handle,create_table,0,0,0);
    queries[ind++] = "INSERT INTO people VALUES(1, 'test_exemple')";
    retval = sqlite3_exec(handle,queries[ind-1],0,0,0);
 
 
    sqlite3_close(handle);
Tout ceci fonctionne très bien. Maintenant je ne sais pas comment m'y prendre pour remplacer 'test_exemple' (qui est donc une chaine "fixée") par la chaine de caractère saisie dans le gtk_entry_get_text() (qui est donc ma variable).

Cela par exemple ne marche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
    const char *store;  //dont la valeur dépend de la saisie de l'utilisateur
    queries[ind++] = "INSERT INTO people VALUES(1, store)";
Toutes les solutions que j'ai vues sont en php et j'ai été incapable de trouver une solution dans la documentation de sqlite.

Merci pour votre aide.

PS : je sais que ça n'a pas de sens d'utiliser une BDD pour une seule table à une seule colonne. C'est juste un exemple pour isoler mon problème.