Filtrage

Signaler
Messages postés
5
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 mars 2010
-
Messages postés
828
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
7 mai 2013
-
bonjour
je suis un debutant en foxpro.
j'ai essayé SET FILTER TO mais elle est trés lente
ma question est comment creer une VUE PARAMETRE au lieu d'utiliser SET FILTER TO
donner moi un exemple
merci tout le monde

6 réponses

Messages postés
828
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
7 mai 2013
1
Bonjour,

peux-tu nous donner la structure de la table (avec les index), et l'expression du filtre que tu avais mis dans ce SET FILTER, s'il te plait?

S'agit-il de données dans des dbf, ou bien sur un serveur SQL en accès distant?

La seule différence entre une vue et une vue paramétrée réside dans la clause WHERE. Dans une vue paramétrée, cette clause WHERE comportera au moins une évaluation de paramètre, sous la forme ?mon_parametre. En Fox, c'est le point d'interrogation qui identifie le paramètre.
Messages postés
5
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 mars 2010

mon code est :
LPARAMETERS tcnom,tcchercheText
SET FILTER TO
filter
SET FILTER TO ALLTRIM(UPPER(&tcnom))=ALLTRIM(UPPER("&tcchercheText"))
GO top
thisform.Refresh()

la table contient un champ id
id est indexé : candidate
Messages postés
5
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 mars 2010

je me suis trompé :
mon code est :

LPARAMETERS tcnom,tcchercheText
SET FILTER TO

SET FILTER TO ALLTRIM(UPPER(&tcnom))=ALLTRIM(UPPER("&tcchercheText"))
GO top
thisform.Refresh()

la table contient un champ id
id est indexé : candidate
Messages postés
828
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
7 mai 2013
1
Bonjour,

merci de répondre aux questions que je t'ai posées, en entier!
Donc, la structure de la table avec les index, si les données sont dans des dbf ou bien sur un serveur SQL

Je ne peux répondre à ta question que si tu me donnes ces informations.
Messages postés
5
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 mars 2010

bonjour
les donnees sont dans des dbf
merci beaucoup
Messages postés
828
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
7 mai 2013
1
Mourad,

tu as encore oublié de donner la structure de la table, avec les index. Je ne peux pas le deviner, et la réponse à ta question dépend de ces informations.

Que ce soit un SET FILTER ou une vue paramétré, les index sont super-importants. il faut qu'ils soient bien écrits, et que la clause du filtre ou la clause where corresponde à l'expression de l'index.

Et les macros-résolutions (avec le &) tuent les performances. Et en VFP9, go top est plus lent que LOCATE. Tiens, une question supplémentaire: quelle version de VFP? Et encore une autre question: ce dbf que tu requètes, il est sur la machine locale, ou sur un poste sur le réseau?