Ordonner un champ Dbase

Signaler
Messages postés
13
Date d'inscription
mardi 30 juillet 2002
Statut
Membre
Dernière intervention
7 août 2002
-
Messages postés
13
Date d'inscription
mardi 30 juillet 2002
Statut
Membre
Dernière intervention
7 août 2002
-
Bonjour, j ai une base (dbf 3) je n'ai presicez aucun index particulier.

Voila mon prog ajout certain champ dont un numerique (smallint) j ai mis un button sur mon prog pour que en cliquant dessus cela range le champ INDICE (smallint) dans l'ordre croissant. J'ai fais un petit script car je n ai pas trouver de fonction connu (dit moi si il en existe une) mais audela de 3 enregistrement mon script tourne tellement que cela plante mon prog

Please HELP !!!!
Merci

Code de trie
=========

Table1.FindFirst;
Tps1:=Table1.FieldValues['INDICE'];
Tps2:=0;
classement:=0;

Repeat
begin
Tps2:=Table1.FieldValues['INDICE'];

if Tps1<Tps2 then
begin

Table1.FindPrior;
RecupNUM:=Table1.FieldValues['INDICE'];
RecupPLACE:=Table1.FieldValues['CHAMP'];

Table1.Delete;
Table1.InsertRecord([INDICE,CHAMP]);
Table1.FindFirst;
end;

Tps1:=Tps2;
end;
Until Table1.FindNext=False;
A voir également:

4 réponses

Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Exemple de création d'un index secondaire sur une table DBASE :
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
//Si la case est cochée, afficher dans l'ordre du numéro de compte
if CheckBox1.Checked then
with Table1 do
begin
Close;
Exclusive := True;
AddIndex('ByAcct_Nbr', 'Acct_nbr',[]);
IndexName := 'ByAcct_Nbr';
Exclusive := False;
Open;
end
else
//Sinon, afficher selon l'odre par défaut (ici, la clé primaire) et supprimer l'index
with Table1 do
begin
IndexName := '';
Close;
Exclusive := True;
DeleteIndex('ByAcct_Nbr');
Exclusive := False;
Open;
end;
end;

May Delphi be with you.
Delphi advanced
Messages postés
13
Date d'inscription
mardi 30 juillet 2002
Statut
Membre
Dernière intervention
7 août 2002

Ok c'est ce que j ai fais moi l'action est sur un click bouton mon bon ca on s'en fou voila ce que j ai tapée

======
with Table1 do
begin
Close;
Exclusive := True;
AddIndex('ByTPS_PLACE', 'TPS_PLACE',[]);
IndexName := 'ByTPS_PLACE';
Exclusive := False;
Open;
end
=======

'TPS_PLACE' est declarer comme smallint, ma base a la creation n a aucun index (rien du tout) et en lancant cela j ai
EDBEnigme Error 'Nom d'index/repere incorect' et le pas a pas se positionne sur IndexName=

HELP
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
C'est normal : le nom de l'index ne peut comporter plus de 10 caractères, or 'ByTPS_PLACE' en comporte 11 !

May Delphi be with you.
Delphi advanced
Messages postés
13
Date d'inscription
mardi 30 juillet 2002
Statut
Membre
Dernière intervention
7 août 2002

C'est super ca marche merci bcp