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 :
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;
}
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
 
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;
}
Les erreurs obtenues sont en commentaire à coté des lignes concernées =) :

Merci par avance pou votre aide qui me serait très précieuse !

number9