Bien le bonjour
je code actuellement un programme qui gere une BDD embarqué ( sqlite )
pour exectuer des requêtes et récupérer les données ont me fournir la fonction suivante
la fonction me renvoi les données comme ceci ( c'est un exemple, mon programme travaille sur des données boursières )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 int sqlite3_exec( sqlite3*, /* Pointeur sur ma BDD */ const char *sql, /* requête sql */ int (*callback)(void*,int,char**,char**), /* fonction Callback */ void *, /* 1st argument du callback */ char **errmsg /* utilisé pour les messages d'erreur */ );
Name | Age
-----------------------
Alice | 43
Bob | 28
Cindy | 21
donc le prototype de la callback m'est imposé
le int représentant le nombre de colonne de la réponse
le premier char** est un tableau de chaine contenant les valeurs de chaque colonne pour une ligne donné ( la callback étant apellé à chaque ligne autre que la 1ere )
le second char** est un tableau de chaine contenant le nom de chacune des colonnes
il est donc évident qu'à chaque fois le contenu de la ligne précedente est écrasé
hors j'aimerais bien stocker ces valeurs de façons à pouvoir les réutiliser de mon programme plusieurs fois ( vu que j'ai besoin de leur appliquer plusieurs fonction )
je pense donc les sotcker dans un tableau de chaine à 2 dimension ( donc un char*** , de façon à ensuite pouvoir traiter chaque ligne ou bien chaque colonne de façon séquentielle )
donc je pense que le void* du callback ( envoyé par le 4ème argument de ma fonction sqlite3_exec ) doit être fait pour cela mais je n'en suis pas sur
donc c'est pour cela que j'ai besoin de votre aide
d'avance merci pour vos réponses
Partager