Locate next dans ttable

Signaler
Messages postés
3
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
11 février 2005
-
Messages postés
6
Date d'inscription
mardi 22 novembre 2011
Statut
Membre
Dernière intervention
25 septembre 2012
-
La fonction Locate(…) de delphi me permet de trouver la première occurrence d’une valeur de champ non indexé dans une table paradox (TdataSet) .


Comment accéder aux occurrences suivantes ?

merci de votre aide


hanafi

8 réponses

Messages postés
110
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
19 février 2009

Sur des champs non indexés LOCATE en interne crée un filtre et renvoie le premier enregistrement du filtre. Donc tu devrais faire un filtre au lieu d'un LOCATE surtout si ce qui t'interesse est de traiter plusieurs valeur de retour et non une seule
Messages postés
3
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
11 février 2005

merci de vous intéresser à mon probleme

auriez-vous un exemple

je suis debutant en delphi

merci par avance.


hanafi
Messages postés
110
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
19 février 2009

table.filter:= 'champ1 = ''' + valeur1 + ''' and champ1 = ''' + valeur2 + ''';
table.filtered:= true;
try
while not table.eof do
begin
// le code à faire sur l'enregistrement courant
table.next;
end;
finally
table.filter:='';
table.filtered:= false;
end;
Messages postés
110
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
19 février 2009

avant le while il faut faire un table.first c'est plus sur
Messages postés
240
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
31 décembre 2006
1
Ba tout simplement je vais te dire que la fonction locatenext existe sous delphi !!!
Alors va voir dans l'aide de delphi.
Donc te voilà averti :d



N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!
Messages postés
3
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
11 février 2005

Merci MHI et sim51


<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


pour vos propositions de solutions, mais voila le détail du problème.


J’ai une table client (no_client, nom, prénom, …) (table paradox ,ttable,tdataset).


Avec plusieurs enregistrements :


exemple





Dupont a


Ducol d


Durand s


Dupont b





Je fais une recherche sur le champ ‘nom’ qui n’est pas indexé, ou tout autre champ non indexé.


Avec la fonction locate et ses options en tapant ‘dup’ j’accède ainsi à la première occurrence ‘dupont a’.


Que faire pour positionner le curseur sur l’occurrence suivante ‘dupont b’ ???





hanafi

[b]Tres bonne question;

j'aimerais bien utiliser locate au lieu de .filtered;

tous comme je l'utilise sur VFP sur une base non indexé

et j'aimerai bien aussi trouver un truc comme IF FOUND() et CONTINUE/b
Messages postés
6
Date d'inscription
mardi 22 novembre 2011
Statut
Membre
Dernière intervention
25 septembre 2012

begin
table1.locate('DESIGNATION',edit1.text[lopartialkey,locaseinsensitive]);
end;
ajouter DB sur users