IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Composants de la palette BDE - Accès à une base de données ACCESS


précédentsommaire

5. Exemples d'utilisation de composants du BDE

Pour illustrer la présentation que nous avons faite des composants de la palette BDE, nous allons interagir avec notre base de données en prenant 2 exemples.

5-1. Affichage du contenu d'une table

5-1-1. Les composants à ajouter

Nous allons rajouter en plus des composants déjà utilisés dans la configuration de l'accès à la base de données, un bouton Button1 ayant pour libellé "Afficher" et un mémo "Memo1".

Vous devriez avoir quelque chose qui ressemble à ce qui suit :

Image non disponible

5-1-2. Affichage du contenu de la table ETUDIANT

Nous allons commencer par ajouter une méthode afficher comme suit :

Dans Unit1.cpp
Sélectionnez
void __fastcall TForm1::afficher()
{
   AnsiString nom = "";
   AnsiString prenom = "";
   Memo1->Clear();

   // ouverture connexion, bdd et table
   Session1->Open();
   Database1->Open();
   Table1->Open();

   // on se positionne au début
   Table1->First();

   // on parcourt la table
   while(!Table1->Eof)
   {
      // on récupère les champs nom et prénom
      nom = Table1->FieldByName("nom")->AsString;
      prenom = Table1->FieldByName("prenom")->AsString;

      // on ajoute une ligne à notre mémo
      Memo1->Lines->Add(nom+" "+prenom);

      // on passe à la ligne suivante
      Table1->Next();
   }

   // on ferme connexion, bdd et table
   Table1->Close();
   Database1->Close();
   Session1->Close();
}

Il suffit maintenant de relier cette méthode à l'événement OnClick de notre bouton en créant l'événement par défaut à partir de l'explorateur de classe et en rajoutant le code suivant.

 
Sélectionnez
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   afficher();
}

Il ne reste plus qu'à exécuter pour avoir le résultat suivant :

Image non disponible

5-2. Exécution d'une requête

5-2-1. Les composants à ajouter

Pour pouvoir exécuter une requête, nous allons déposer un TQuery (appelons le "MaRequete") sur la fiche, et renseigner les propriétés SessionName et DatabaseName.

Nous conservons "Memo1" et rajoutons également un bouton Button2 ayant pour libellé "AfficherReq".

Vous devriez avoir quelque chose qui ressemble à ce qui suit :

Image non disponible

5-2-2. La requête à exécuter

Nous allons réaliser une jointure entre les tables ETUDIANT et FILIERE pour pouvoir afficher les étudiants avec leur spécialité.

Il s'agit donc de récupérer les champs nom, prenom de la table ETUDIANT, et nom de la table FILIERE.
Pour cela, il suffit de définir le code SQL suivant dans la propriété SQL du composant Query1.

 
Sélectionnez
SELECT e.nom AS nom, e.prenom AS prenom, f.nom AS filiere FROM Etudiant e, Filiere f WHERE e.option=f.id

5-2-3. Exécution de la requête et affichage

Nous allons commencer par ajouter une méthode afficherReq comme suit :

Dans Unit1.cpp
Sélectionnez
void __fastcall TForm1::afficherReq()
{
   AnsiString nom = "";
   AnsiString prenom = "";
   AnsiString filiere = "";
   Memo1->Clear();

   // ouverture connexion, bdd et requête
   Session1->Open();
   Database1->Open();
   Query1->Open();

   // on se positionne au début
   Query1->First();

   // on parcourt le résultat de la requête
   while(!Query1->Eof)
   {
      // on récupère les champs nom et prénom
      nom = Query1->FieldByName("nom")->AsString;
      prenom = Query1->FieldByName("prenom")->AsString;
      filiere = Query1->FieldByName("filiere")->AsString;

      // on ajoute une ligne à notre mémo
      Memo1->Lines->Add(nom+" "+prenom+" - "+filiere);

      // on passe à la ligne suivante
      Query1->Next();
   }

   // on ferme connexion, bdd et requête
   Query1->Close();
   Database1->Close();
   Session1->Close();
}

Il suffit maintenant de relier cet méthode à l'événement OnClick de notre bouton en créant l'événement par défaut à partir de l'explorateur de classe et en rajoutant le code suivant.

 
Sélectionnez
void __fastcall TForm1::Button2Click(TObject *Sender)
{
   afficherReq();
}

Il ne reste plus qu'à exécuter pour avoir le résultat suivant :

Image non disponible

5-3. Le fichier ACCESS utilisé

Le fichier utilisé est disponible ici. Néanmoins, il correspond à la version Access2000 et il vous faudra configurer votre connexion avec ODBC car les pilotes natifs ne sont pas supportés par le BDE.

Personne ne vous empêche de reproduire ce petit exemple avec un fichier de type Access95 ou Access97.


précédentsommaire

Copyright © 2004 Ricky81. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.