Discussion:
INDEX DECROISSANT
(too old to reply)
Bernard Kellermann
2008-10-07 12:41:25 UTC
Permalink
Bonjour à tous,
Je cherche comment faire pour gérer les index en ordre décroissant...
Merci !
Bernard (French programmer dBaseplus2.6)

English translation with Google....

Hello all,
I'm looking for how to manage the index in decreasing order ...
Thank you!
Bernard
Marc Hamelin
2008-10-07 13:18:13 UTC
Permalink
Bonjour Bernard,

Je ne suis pas sûr de ce que vous entendez spécifiquement par "gérer" les
index, mais vous pouvez ajouter un index croissant ou décroissant
programmatiquement de cette façon :

// Création de la table temporaire pour cette démonstration contenant les
champs CHAMPS1 et CHAMPS2.
CREATE TABLE "C:\TYPEINDEX.DBF" (CHAMPS1 CHAR(10), CHAMPS2 CHAR(10))

// Création automatisée de données aléatoires pour cette table temporaire.
USE "C:\TYPEINDEX.DBF"
GENERATE 10
CLOSE TABLES

// Création d'un index par ordre CROISSANT sur le champs CHAMPS1.
AjoutIndex = new DBFIndex()
AjoutIndex.indexName = "CHAMPS1"
AjoutIndex.expression = "CHAMPS1"
_app.databases[1].createIndex("C:\TYPEINDEX.DBF", AjoutIndex)

// Création d'un index par ordre DÉCROISSANT sur le champs CHAMPS2.
AjoutIndex = new DBFIndex()
AjoutIndex.indexName = "CHAMPS2"
AjoutIndex.expression = "CHAMPS2"
AjoutIndex.descending = true
_app.databases[1].createIndex("C:\TYPEINDEX.DBF", AjoutIndex)

J'espère que c'est ce que vous vouliez.

Marc Hamelin
Ken Mayer [dBVIPS]
2008-10-07 15:32:29 UTC
Permalink
Post by Bernard Kellermann
Bonjour à tous,
Je cherche comment faire pour gérer les index en ordre décroissant...
Merci !
Bernard (French programmer dBaseplus2.6)
English translation with Google....
Hello all,
I'm looking for how to manage the index in decreasing order ...
Thank you!
Bernard
Try using the DESCENDING option when creating the index.

index on fieldname tag fieldname descending

Ken
--
/(Opinions expressed are purely my own, not those of dataBased
Intelligence, Inc.)/

*Ken Mayer* [dBVIPS]
/Golden Stag Productions/
dBASE at goldenstag dot net
http://www.goldenstag.net/GSP
http://www.goldenstag.net/dbase/dBASEBooks.htm
http://www.goldenstag.net/dbase
Bernard Kellermann
2008-10-07 19:38:17 UTC
Permalink
Bonjour Marc

Cela m'est bien utile que chacun réponde différemment car je veux rassembler
un maximum d'informations sur le sujet....
Je sais des choses sur le sujet mais j'ai l'impression qu'il me manque des
informations lorsque je suis devant certains problèmes à traiter...
J'ai besoin de rassembler quelques exemples concrets...

Merci à vous...

Bernard
Ah! I knew there was an easier way... I just couldn't remember it. :)
Marc Hamelin
"Marc Hamelin" <***@nospam-rasakti.com> a �crit dans le message de news: ***@news-server...
Ah! I knew there was an easier way... I just couldn't remember it. :)

Marc Hamelin
Marc Hamelin
2008-10-07 20:06:51 UTC
Permalink
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
Bernard Kellermann
2008-10-08 10:07:54 UTC
Permalink
Merci Marc
Merci beaucoup pour ces exemples qui pourront aussi servir aux autres
Francophones qui consultent le forum...
Je voudrais en savoir un peu plus sur une autre méthode utilisée qui est
donnée en exemple dans l'aide de dBaseplus2.6...
CREATE INDEX indexName ON tableName.dbf (ChampName)
J'ai essayé cette méthohe mais l'index créé est toujours en ordre
croissant...
Ma question : est-possible avec cette métode de pouvoir choisir l'ordre
décroissant ?
Si quelqu'un sait ici qu'il veuille bien me répondre...
Merci...
Bien à vous...
Bernard

English translation with Google

Marc
I want to learn more about another method which is given as an example in
using dBaseplus2.6 ...
IndexName CREATE INDEX ON tableName.dbf (ChampName)
I tried this méthohe but the index is still created in ascending order ...
My question: Is this possible with the methods to choose the order ?
If anyone knows it please answer me ...
Thank you ...
Sincerely yours ...
Bernard
Marc Hamelin
2008-10-08 13:10:07 UTC
Permalink
J'ai fait quelques tests et cette commande semble fonctionner :

CREATE DESCENDING INDEX NomIndex ON NomTable (NomChamps)

Marc Hamelin
Marc Hamelin
2008-10-09 13:29:55 UTC
Permalink
Oui, il faut penser "à l'anglaise" parfois. ;) En français, on dit un
Index Décroissant, mais en anglais, on dit un Descending Index. Voilà
pourquoi j'ai pensé à le placer en avant.

J'avoue que l'aide pourrait être améliorée à ce niveau, en effet.

Marc Hamelin
Bernard Kellermann
2008-10-09 08:27:49 UTC
Permalink
Merci Beaucoup
Je n'aurai jamais eu l'idée de mettre DESCENDING devant les instructions...
On voit là que l'aide de dBasePlus pourrait être complétée...
Merci encore
Bernard Kellermann (French programmer)
Post by Marc Hamelin
CREATE DESCENDING INDEX NomIndex ON NomTable (NomChamps)
Marc Hamelin
Marc Hamelin
2008-10-07 18:14:47 UTC
Permalink
Ah! I knew there was an easier way... I just couldn't remember it. :)

Marc Hamelin
Loading...