|
|||
Fermer
Création d'un index secondaire; tri de la base
Reprenez l'exemple créé précédemment à l'aide de l'expert (avec ajout du DBGrid) ou téléchargez le ici (ce source ne peut marcher que si vous avez créé votre base de données conformément à la leçon 1) Par défaut, votre base de donnée est triée dans l'ordre donné par notre index principal c'est à dire dans notre exemple, par n° d'ordre. La création d'un index vous permettra de trier les enregistrements selon un autre ordre et de faciliter les recherches au sein de la base de données. Ajout d'un index secondaire L'ajout d'un index secondaire va se faire à partir du Module de base de données (le programme qui nous avait permis de créer notre base de données). Avant de rentrer dans le ce Module de base de données, il faut mettre à False la propriété "active" du Table1 de notre programme (si ce n'est pas déjà fait) sous peine de ne pouvoir modifier la base de données (car déjà prise par notre application).
Trier les enregistrements Pour trier les enregistrements, il suffit d'affecter
Il n'y a pas besoin de compiler le programme pour voir l'effet obtenu : l'effet est immédiat si la propriété active du composant Table1est à true et ce, dès la modification dans l'inspecteur d'objet. On remarquera que si on affecte une valeur à IndexFieldNames, la valeur de IndexName est mis à blanc. Réciproquement si vous affectez une valeur à IndexName, IndexFieldNames est mis à blanc. Nos champs indexés étaient dans l'ordre Nom puis Age. Par conséquent, le tri obtenu est un tri selon le nom. Pour les enregistrements ayant le même nom on a un tri par âge. On peut définir plusieurs index secondaires et par conséquent obtenir différents tris en fonction de l'index utilisé.
On peut, bien sur, affecter ces propriétés par programmation. Exemple : ajouter un bouton et implémentez sa méthode OnClick de la façon suivante : procedure TForm2.Button1Click(Sender: TObject); begin Table1.indexName:='Index Nom et age';// tri par nom puis âge; utilisation de indexName end; Ajoutez un autre bouton et implémentez sa méthode OnClick de la façon suivante : procedure TForm2.Button2Click(Sender: TObject); begin Table1.IndexFieldNames:='NumOrdre'; //revient au tri donné par l'index principal; utilisation de IndexFieldNames end; A ce stade, votre source doit ressembler à : source Lancez votre programme pour le tester... |