Bonjour TLM
pour une table qui contient des données je veux affecté a mes variables des résultats de requêtes alors que pour chaque requête je veux pas répeter la condition avec Where puisque c'est la même pour chaque requête, je fais deux select et je sais que ca marche pas mais je vais vous données mon code pour mieux comprendre.
PS : je tire des données en bouclant sur query1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 [size=7] nv := query1.FieldByName('EXNV').AsString; orig := query1.FieldByName('EXORIG').AsString; dest := query1.FieldByName('EXDEST').AsString; query2.Close ; query2.sql.clear; query2.sql.Add('Select count(*) As valmvt From EXPL'); query2.sql.Add('Select SUM(SUMV) As offre From EXPL'); query2.sql.Add('Where EXDAT>=(:dat_d) and EXDAT<=(:dat_f) and EXNV=(:numv) and EXORIG=(:org) and EXDEST=(:dst) ') ; If (vrso <> '') Then Begin query2.sql.add(' and EXRSO=(:z) '); query2.ParamByName('z').AsString := vrso; End; If (vrsd <> '') Then Begin query2.sql.add(' and EXRSD=(:t) '); query2.ParamByName('t').AsString := vrsd; End; If (vtyp <> '') Then Begin query2.sql.add(' and EXTYP=(:n) '); query2.ParamByName('n').AsString := vtyp; End; If (vav <> '') Then Begin query2.sql.add(' and EXEQ=(:o) '); query2.ParamByName('o').AsString := vav; End; query2.ParamByName('dat_d').AsDateTime := strtodate(datd); query2.ParamByName('dat_f').AsDateTime := strtodate(datf); query2.ParamByName('numv').AsString := nv; query2.ParamByName('org').AsString := orig; query2.ParamByName('dst').AsString := dest; query2.Active := True; mvt := Query2.Fieldbyname('valmvt').AsInteger; ofr := Query2.Fieldbyname('offre').AsInteger; datamodule2.Tetatsperchgtnvol.Insert; datamodule2.TetatsperchgtnvolNVOL.Value := nv; datamodule2.TetatsperchgtnvolORIG.Value := orig; datamodule2.TetatsperchgtnvolDEST.Value := dest; datamodule2.TetatsperchgtnvolMVT.Value := mvt; datamodule2.TetatsperchgtnvolOFFRE.Value := ofr ;[/size]
Partager