Filtrage

cs_mourad1212 Messages postés 5 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 1 mars 2010 - 22 févr. 2010 à 09:04
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 - 1 mars 2010 à 19:08
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

michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
22 févr. 2010 à 10:05
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.
cs_mourad1212 Messages postés 5 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 1 mars 2010
27 févr. 2010 à 15:09
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
cs_mourad1212 Messages postés 5 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 1 mars 2010
27 févr. 2010 à 15:11
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
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
27 févr. 2010 à 17:10
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.

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_mourad1212 Messages postés 5 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 1 mars 2010
1 mars 2010 à 17:00
bonjour
les donnees sont dans des dbf
merci beaucoup
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
1 mars 2010 à 19:08
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?
Rejoignez-nous