La méthode de Ken Mayer est probablement la plus simple puisqu'elle permet
de créer des index composés de plusieurs champs, de façon croissant ou
décroissant.
use <NomTable> excl
index on <NomChamps> tag <NomChamps> [descending]
close tables
Par exemple, supposons que l'on a une table nommée "Clients.dbf" qui
contient les champs Nom et Prenom. On veut créer un index croissant et
décroissant à la fois sur le Nom et le Prénom, et la même chose sur un index
composée du Nom suivi du Prénom. Donc un total de six index. Voilà ce
qu'il faudrait faire :
use "Clients.dbf" excl
index on Nom tag "Nom"
index on Nom tag "NomDec" descending
index on Prenom tag "Prenom"
index on Prenom tag "PrenomDec" descending
index on Nom+Prenom tag "NomComplet"
index on Nom+Prenom tag "NomCompletDec" descending
close tables
Maintenant, si on veut utiliser les index décroissants, on les spécifie dans
la propriété IndexName du Rowset comme ceci :
client = new query()
client.sql = "SELECT * FROM 'Clients.dbf'"
clients.active = true
clients.rowset.indexName = "NomDec"
La troisième façon que je connaisse ne se fait pas par programmation, mais
directement dans dBase lorsqu'on ouvre la table. On peut se rendre dans
"Table Design" (Maj+F2) et ajouter un index soit croissant ou décroissant à
chaque champs de la table.
J'espère que c'est assez concret comme exemple.
Marc Hamelin