Bonjour,
Selon le titre du sujet, il semblerais qu'il s'agit d'un sujet récurrent mais je n'ai pas réussi à trouver depuis mercredi, discussion à mon pied.
Dans un premier temps, je stock le résultat d'une requête dans une TTable
Les déclarations :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 type Base = class //... Database : TDatabase; Enregistrement : TTable; //... end;La requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 type MaDonnee= class //... Liste: TTable; //... end;
Si je ne me trompe pas, la TTable de "MaDonnee" se porte ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 sQuery := 'SELECT T1.tr_Ch1, T2.el_Ch1, T2.el_Ch2, T2.el_Ch3 FROM Traduction T1, Element T2 WHERE T2.el_CodeTraduc = T1.el_CodeTraduc'; if not MaBase.requete(sQuery) then exit;//retour de requête dans la TTable Enregistrement MaDonnee.Liste := MaBase.Enregistrement;
Nom du champ 1 :T1.tr_Ch1
Nom du champ 2 :T2.el_Ch1
Nom du champ 3 :T2.el_Ch2
Nom du champ 4 :T2.el_Ch3
Le but maintenant, est de rechercher le champs T1.tr_Ch1 contenant la traduction pour les paramètres de l'élément ayant les caractéristiques contenu dans el_Ch1, el_Ch2, el_Ch3.
Prenons l'exemple que les éléments sont des voitures
el_Ch1 :type (string) (exemple 'Renault','BMW',...)
el_Ch2 :couleur (string) (exemple 'Rouge','Noir'...)
el_Ch3 :année (string) (exemple '1993','2002'...)
el_CodeTraduc :code (exemple 'VOT01','VOT458'...) (string)
(c'est pour l'exemple)
et que les traduction retourne
el_CodeTraduc :code (exemple 'VOT01','VOT458'...) (string)
el_Ch1 :Traduction (exemple : 'Voiture de merde', 'voiture de classe'...) (string)
Dans une autre fonction:
Les problèmes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 if not MaDonnee.Liste.Locate('T2.el_Ch1;T2.el_Ch2;T2.el_Ch3',VarArrayOf(['Renault','Rouge','1993']), [] )then begin //...pas trouvé end else //...trouvé ok mais ou va le field resultant ?? end;
J'ai une erreur disant : 'Field 'T2.el_Ch1' not found'
J'ai essayé avec un filtre :
J'ai la même erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 MaDonnee.Liste.Filter:= '(T2.el_Ch1 like ''Renault'') AND '; MaDonnee.Liste.Filter:= MaDonnee.Liste.Filter + '(T2.el_Ch2 like ''Rouge'') AND '; MaDonnee.Liste.Filter:= MaDonnee.Liste.Filter + '(T2.el_Ch3 like ''1993'')'; MaDonnee.Liste.Filtered := true;
Mon But, J'ai une table de quatre champs, je veux à partir de trois champ connu trouver la valeur du quatrième champ !
Merci d'avance.
Xpmich.
Partager