Probleme de recherche sur clé composée
Utilisateur WDF
Inscrit:
29/01/2006 17:03
Post(s): 78
Bonjour, à tous,

Je demande votre aide car j'ai un problème sur l'utilisation d'une clé composée.

Voilà mon problème, j'ai une table article et je désire faire des recherches sur plusieurs champs de cette table. Dans ce dessin, j'ai créé une clé composée dans mon analyse avec les champs indexés qui m'intéressent.

J'ai créé un champ de saisie et un bouton de validation qui m'ouvre un Popup avec le résultat de ma recherche.

Le problème réside dans le fait que la recherche ne fonctionne que sur la 1er composante de ma clé.

Si j'inverse l'ordre de mes composantes le problème persiste, seul la 1er et prise en compte pour la recherche.

Voilà le code de la recherche :

HLitRecherche(Article,CleArticle,gTempo_Cle)

TANTQUE HTrouve(Article) = Vrai
	TableAjouteLigne(TABLE_Article_Popup,Article.Ref_Interne,Article.Description)
	HLitSuivant(Article,CleArticle)
FIN


Par avance merci pour votre aide

Contribution le : 06/06/2006 14:43
Créer un fichier PDF de la contribution Imprimer


Re: Probleme de recherche sur clé composée
Developpeur WDF
Inscrit:
26/07/2004 09:01
Post(s): 127
Bonjour,

pour la recherche avec des clefs composées, il faut utiliser HConstruitValClé()
HLitRecherche(MonFichier, MaClefComposée,...
              HConstruitValClé(MonFichier, MaClefComposée,...
                   ValeurRecherchée1,ValeurRecherchée2,ValeurRecherchéeN))
SI HTrouve(MonFichier) ALORS
   Traitements....
FN


Il faut que les valeurs soient disposées dans le même ordre que dans la Clef Composée.

Bon Dev

Contribution le : 06/06/2006 15:26
_________________
Faut pas trop se prendre au sérieux ...
Créer un fichier PDF de la contribution Imprimer


Re: Probleme de recherche sur clé composée
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Ou bien avec la version 10 de WinDev la nouvelle syntaxe
HLitRecherche(MonFichier, MaClefComposée,...
              [<ValCompsante1>,<ValComposanteN>,...])
                   
SI HTrouve(MonFichier) ALORS
   Traitements....
FIN

Contribution le : 06/06/2006 16:06
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Probleme de recherche sur clé composée
Utilisateur WDF
Inscrit:
29/01/2006 17:03
Post(s): 78
Merci pour vos réponses, mais cela ne fonctionne pas, j'ai dû rater un épisode !

Ma clé composée et constituée de 5 index, j'utilise un unique champ de saisie pour faire ma recherche donc je suppose que le code doit resembler à ça ?

HLitRecherche(Article,CleArticle,[gTempo_Cle])
TANTQUE HTrouve(Article) = Vrai
	TableAjouteLigne(TABLE_Article_Popup,Article.Ref_Interne,Article.Description)
	HLitSuivant(Article,CleArticle)
FIN


Avec ce code, c'est toujours la 1er composante de ma clé composée qui est prise en compte.

Contribution le : 06/06/2006 17:10
Créer un fichier PDF de la contribution Imprimer


Re: Probleme de recherche sur clé composée
ChefDeProjet WDF
Inscrit:
02/05/2006 21:28
Post(s): 160
un index composé ne permet pas de chercher sur les composants si c'est ça à quoi tu pensais.
ex:index compose de nom+prenom+datenaissance+telephone
la recherche sera sur une chaine nom+prenom +....
donc débutera par le nom

et tu ne peux chercher sur datenaissance seul

pour cela il ya les index simple

Contribution le : 06/06/2006 20:27
Créer un fichier PDF de la contribution Imprimer


Re: Probleme de recherche sur clé composée
Utilisateur WDF
Inscrit:
29/01/2006 17:03
Post(s): 78
Je pense en effet que ça permettait une recherche sur le différent composant, une sorte de recherche OU OU et non une recherche ET ET.

Dans ce cas comment faire une recherche multi-critéres avec un seul champ de recherche ?

Contribution le : 07/06/2006 00:15
Créer un fichier PDF de la contribution Imprimer


Re: Probleme de recherche sur clé composée
Utilisateur WDF
Inscrit:
29/01/2006 17:03
Post(s): 78
Bonjour, moi-même,

Pour résoudre ton problème, utilise tout simplement une requête constituée de tes différentes rubriques.

Tu appliques une condition de sélection de type "contient" sur chaque rubrique et tu lies les rubriques avec un OU.

// Initialise la requête
SI PAS HExécuteRequête(REQ_Trouve_Ref,hRequêteDéfaut,gTempo_Cle) ALORS
	Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo())
	RETOUR
FIN

// Lecture du résultat
HLitPremier(REQ_Trouve_Ref)
TANTQUE PAS HEnDehors()
	TableAjouteLigne(TABLE_Article_Popup,REQ_Trouve_Ref.Ref_Interne, REQ_Trouve_Ref.LibProd)
	HLitSuivant()
FIN


merci moi-même !

Contribution le : 07/06/2006 17:14
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2