| 12
 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
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 
 |  
//Déclaration de la fonction :
 
string* recupererLesValeursDesColonnes(char* nomTable,char* colonne[],int nbColonnes,char* tests);
 
//Définition de la fonction :
 
/********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'
/*=> c'est censé être quoi le résultat ? valeursretourner non intialisé, le parametres valeursretourner qui est un pointeur sur string au lieu d'un pointeur sur char, les réflexes C-ien dans un code soit-disant C++, et le dernier paramètre, c'est censé être quoi... ??
*/
int y = 0;
while ((row = mysql_fetch_row(result)))
{
valeursretourner[y] = new string[num_fields]; //error: invalid conversion from 'std::string*' to 'char'
/*=> C'est du grand n'importe quoi, tu confond la manipulation d'un tableau de char avec la manipulation d'un std::string*/
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
//=> même chose
}
y++;
}
return valeursretourner;
}
 
//Mon main que je souhaite exécuter :
 
string* colonneSelectionne = {"mois", "Amin", "Amax", "Bmin", "Bmax", "Cmin", "Cmax"}; //error: scalar object 'colonneSelectionne' requires one element in initializer
 
/*=> initialisation non permise en C++ (mais en C++11 si car autorisé pour les conteneurs et std::string est un typedef pour std::basic_string<char>)
*/
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;
} | 
Partager