PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Meilleure façon de rechercher dans une BD
Meilleure façon de rechercher dans une BD
Iniciado por Jean Turcotte, 21,abr. 2019 14:36 - 3 respuestas
Miembro registrado
1.402 mensajes
Publicado el 21,abril 2019 - 14:36
Bonjour, Je travaille avec une fenêtre de contact et je veux que mes clients puissent effectuer des recherches sur tous les champs indexés de la BD, alors j'utilise une rubrique fulltext pour effectuer ces recherches.

A chaque modification dans le champ de saisie 'Recherche', j'exécute une nouvelle requête dans la BD, le simulateur me fait remarquer que la requête s’exécute souvent et que je pourrais améliorer. Ça fonctionne très bien mais j'aimerais savoir si c'est la meilleure façon de procéder?






Voici le code sur événement 'A chaque modification' du champ recherche.
SI MoiMême ="" ALORS
TABLE_CONTACT_PERSONNEL..FichierParcouru = "CONTACT_PERSONNEL"
gbRechercheVide = Vrai
SINON
TABLE_CONTACT_PERSONNEL..FichierParcouru = "REQ_ContactPersonnel"
gbRechercheVide = Faux
FIN

HExécuteRequête(REQ_ContactPersonnel,hRequêteDéfaut,(MoiMême + "*"))
TableAffiche(TABLE_CONTACT_PERSONNEL,taDébut)
MAJContacts()


Merci !

--
Jean Turcotte
WX 24
Android 8.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Miembro registrado
299 mensajes
Publicado el 22,abril 2019 - 11:10
Compte tenu que le critère change à chaque fois iln'y a pas vraiment d'autres solutions.
Après on peut toujours en revenir au dilemme : requête ou filtre.
Mensaje modificado, 22,abril 2019 - 11:12
Publicado el 23,abril 2019 - 11:16
Jean TURCOTTE a présenté l'énoncé suivant :
Bonjour, Je travaille avec une fenêtre de contact et je veux que mes clients
puissent effectuer des recherches sur tous les champs indexés de la BD, alors
j'utilise une rubrique fulltext pour effectuer ces recherches.

A chaque modification dans le champ de saisie 'Recherche', j'exécute une
nouvelle requête dans la BD, le simulateur me fait remarquer que la requête
s’exécute souvent et que je pourrais améliorer. Ça fonctionne très bien mais
j'aimerais savoir si c'est la meilleure façon de procéder?






Voici le code sur événement 'A chaque modification' du champ recherche.
SI MoiMême ="" ALORS
TABLE_CONTACT_PERSONNEL..FichierParcouru = "CONTACT_PERSONNEL"
gbRechercheVide = Vrai
SINON
TABLE_CONTACT_PERSONNEL..FichierParcouru = "REQ_ContactPersonnel"
gbRechercheVide = Faux
FIN

HExécuteRequête(REQ_ContactPersonnel,hRequêteDéfaut,(MoiMême + "*"))
TableAffiche(TABLE_CONTACT_PERSONNEL,taDébut)
MAJContacts()


Merci !


bonjour,

vous pouvez aussi limiter l'exécution de la req en fonction du nb de
caractère saisie par exemple exécuter la requête à partir du 3ème
caractères saisies

--
Cordialement JeAn-PhI
Miembro registrado
1.402 mensajes
Publicado el 23,abril 2019 - 13:40
Merci pour vos commentaires. Pour le moment, ma base de données est a peu près vide et réagit très rapidement, je verrai lorsqu'elle sera plus lourde. :merci:

--
Jean Turcotte
WX 24
Android 8.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram