Bonjour,
J'ai deux IBDataset:
Sur une form j'ai une listeView et dans l'évènement SelectItem j'ai d'abord mis ce code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 ibdFeu avec selectSQL: SELECT EMP.EMPCODGEN, EMP.EMPNOM, PRJ.PRJCODGEN, FEU.* FROM (FEU LEFT JOIN EMP ON FEU.EMPCOD = EMP.EMPCOD) LEFT JOIN PRJ ON FEU.PRJCOD = PRJ.PRJCOD ibdProjets avec selectSQL: SELECT PRJ.*, catprj.catprjcod,CATPRJ.CATPRJDES, CLI.CLICODGEN, CLI.CLINOM FROM ((PRJ LEFT JOIN CLI ON CLI.CLICOD = PRJ.CLICOD) LEFT JOIN CATPRJ ON CATPRJ.CATPRJCOD = PRJ.CATPRJCOD)
Pour positionner le ibdFeu (FEU = Feuille de temp)sur le Item.Caption et là je récupère le nom d'un employé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DM.ibdFeu.Locate('FEUCOD',Item.Caption,[]); DM.ibdProjets.Locate('PRJCOD',DM.ibdFeuPRJCOD.Value,[])
Ensuite je positionne la table projet Sur l'index PRJCOD en fonction du champ PRJCOD de ma table FEU pour obtenir le descriptif du projet.
Celà fonctionne bien.
Mais, Je me suis dit une requête c'est peut être plus sûr!! Alors j'ai mis ce code qui est sensé me donner le nom de l'employé et le descriptif du projet. J'ai bien le descriptif du projet mais le nom de l'employé n'est pas bon. Aussi je me demande si ma première solution, qui fonctionne, est la bonne démarche mais surtout pourquoi la requête ne fonctionne pas.
ma requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 WITH TIBSQL.create(nil) do begin Database:= DM.idbProjets; SQL.Clear; SQL.Add('SELECT EMP.EMPCODGEN, EMP.EMPNOM, PRJ.PRJCODGEN, FEU.* '); SQL.Add('FROM (FEU LEFT JOIN EMP ON FEU.EMPCOD = EMP.EMPCOD) LEFT JOIN PRJ ON FEU.PRJCOD = PRJ.PRJCOD '); SQL.Add('WHERE FEUCOD LIKE ' + Item.Caption ); showmessage(item.caption); // Pour vérifier Si le item.Caption de ma Lv est bon. showmessage(DM.ibdFeuEMPNOM.Value);// Et à ça ne me renvoie pas le bon ExecQuery; end;
Merci d'avance
Cordialement
Partager