Bonjour,
J'ai un erreur que je ne comprends pas dans mon code à la compilation. Je vous expose le problème :
-J'ai une BDD dans laquelle se trouve une table "T_Seuils_conso"avec 7 colonnes et 12 lignes contenant des valeurs.
- Via mon programme en C++, je souhaite me connecter à cette BDD afin d'y lire les valeurs de cette table "T_Seuils_conso".
Voici mon fichier .h avec la définition de ma fonction :
Déclaration de la fonction :
string* recupererLesValeursDesColonnes(char* nomTable,char* colonne[],int nbColonnes,char* tests);
Définition de la fonction :
Mon main que je souhaite exécuter :
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 /********FONCTION DE RECUPERATION DE VALEUR********/ string* BaseDeDonnees::recupererLesValeursDesColonnes(char* nomTable,char* colonne[],int nbColonnes,char* tests){ char* requete; requete = (char*) malloc(sizeof(requete) * 512); MYSQL_RES * result; MYSQL_ROW row; unsigned int num_fields; unsigned int num_row; strcpy(requete,"SELECT "); int i = 0; for(i=0;i<nbColonnes;i++){ strcat(requete,colonne[i]); if(i != nbColonnes -1){ strcat(requete,", "); } } strcat(requete," FROM "); strcat(requete,nomTable); strcat(requete," "); strcat(requete,tests); mysql_query(init,requete); result = mysql_store_result(init); num_fields = mysql_num_fields(result); num_row = mysql_num_rows(result); string* valeursretourner; strcpy(valeursretourner, char*[num_row]); //error: expected primary-expression before 'char' int y = 0; while ((row = mysql_fetch_row(result))) { valeursretourner[y] = new string[num_fields]; //error: invalid conversion from 'std::string*' to 'char' int i; unsigned long *lengths; lengths = mysql_fetch_lengths(result); for(i = 0; i < num_fields; i++) { valeursretourner[y][i] = (string)row[i]; //error: cannot convert 'std::string' to 'char' in assignment } y++; } return valeursretourner; }
Les erreurs obtenues sont en commentaire à coté des lignes concernées =) :
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 string* colonneSelectionne = {"mois", "Amin", "Amax", "Bmin", "Bmax", "Cmin", "Cmax"}; //error: scalar object 'colonneSelectionne' requires one element in initializer int main() { BaseDeDonnees *fluidArt = new BaseDeDonnees("localhost","fluidart","fluidart","fluidart"); string* reponse = fluidArt->recupererLesValeursDesColonnes("T_Seuils_conso", colonneSelectionne,7, ""); for (int i=0; i <= 12; i++) { for (int j=0; i <= 7; j++) { printf ("%s\n", reponse[i][j]); } } return 0; }
Merci par avance pou votre aide qui me serait très précieuse !
number9
Partager