Bonjour à tous,
Je souhaite creer un tableau en deux dimensions. Celui-ci stockera les éléments d'une table sql.
J'ai une structure qui ressemble à ça :
que j'initialise ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 struct queryResult{ long rows; long cols; char*** resultArray; };
Une fonction "execQuery" qui prend en paramètre un pointeur sur une fonction callback.
Code : Sélectionner tout - Visualiser dans une fenêtre à part struct queryResult res = {0,0,NULL};
Ma fonction callback a comme paramètres un pointeurs sur la structure, le nombre de colonne de la table et un tableau contenant les résultats de la ligne et un autre les noms des colonnes.
Je ne sais pas si je m'y prend bien et si ce que j'essaye de faire est possible. Je vous montre mes premiers essais de cette fonction callback :
Est ce que je m'y prend bien avec mon tableau (enfin qu'est ce qui coince plutôt).
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
25
26
27 static int sqlite_callback(void* arg, int argc, char **argv, char **azColName){ struct queryResult *res = arg; int i; char **resultLigne = NULL; if( ( res->resultArray = (char ***) realloc (res->resultArray, (res->rows +2) * sizeof(char**) ) ) ==NULL ){ fprintf (stderr, "Memoire insuffisante\n"); free (res->resultArray); res->resultArray = NULL; return 1; } for(i=0; i<argc; i++){ if( ( resultLigne[i] = (char*) malloc ( strlen(argv[i]) * sizeof(char) ) ) ==NULL){ fprintf (stderr, "Memoire insuffisante\n"); free (res->resultArray); res->resultArray = NULL; return 1; } strcpy(resultLigne[i],argv[i]); } res->resultArray[res->rows]=resultLigne; res->rows++; return 0; }
Merci de me mettre sur la piste.
Partager