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 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;
} |