bonjour, je fait un programme qui lit des informations dans une base de donnée. Je lance une requete SELECT et en condition je met la date rentré dans un formulaire.
Mon problème est que je veut faire afficher plusieurs lignes en dessous (dans la table) dans un string grid par rapport a ma requete de départ. Voici mon code
// construction de la requete
AnsiString sqlDispo = "SELECT * FROM ";
sqlDispo += table;
sqlDispo += " WHERE date ='";
sqlDispo += date ;
sqlDispo += "'";
// on execute la requete
int resultatDispo = bdd.executer(sqlDispo);
if(resultatDispo != 0)
{
Application->MessageBoxA("Vérifier les renseignements rentré !","ERREUR SAISI", MB_OK);
}
else
{
// on recupere le nombre de ligne
int ligne = bdd.nbLigne();
short nb = EdtJr->Text.ToInt();
for(unsigned int i = 0; i < nb ; i++) //ligne
{
for(unsigned int j = 0 ; j < 5 ; j++) //colonne
{
// on affiche toutes les informations dans le tableau
//demander sur forum comment mettre les case en couleur suivant le resultat
AnsiString nom = bdd.afficherNomChamps(j,i);
//StringGrid1->Cells[j][i+1] = nom;
if(nom == 0)
{
StringGrid1->Cells[j][i+1] = "libre";
}
else StringGrid1->Cells[j][i+1] = "pas libre";
}
//bdd.libererEspaceMemoire();
}
}
et voici les fonction appler-ci dessus :
//executer
int C_Base::executer(AnsiString requete)
{
int Reponse;
Reponse = mysql_query(mysql,requete.c_str());
return Reponse;
}
//nbligne
short C_Base::nbLigne()
{
myres = mysql_store_result(mysql);
return myres->row_count;
}
//afficher
AnsiString C_Base::afficherNomChamps(short j,short i)
{
if(myres) //on verifie qu'il y est un résultat a la requete
{
//if (a > 0)
//{
//myres->row_count += 1;
//myrow = mysql_fetch_row(myres);
//}
if (j == 0 && i<1) // Au premier tour au lance la requete qui récuprer
// les valeurs lu dans les champs
{
myrow = mysql_fetch_row(myres);
astr = myrow[j];
}
else // Au deuxième tour on décale ce pointeur pour lire les
// champs.
{
//myrow = mysql_fetch_row(myres);
astr = myrow[j];
}
return astr;
}
return 0;
Voila désolé pour la longueur du code. Mais je n'arrive pas à résoudre ce problème.
Merci pour votre aide.