Je veux mettre une table à jour à partir d'une procédure stockée exploitant une autre procédure stockée.
Est ce possible ?

Code

Cette procédure marche Bien !

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
SET TERM !! ;
CREATE PROCEDURE PS_ART_VTS (ADH_NU INTEGER, ART_NU INTEGER, MAG_NU INTEGER, DT_MINI DATE, DT_MAXI DATE)
	RETURNS (
        VTS_QTE_01 Integer,
        VTS_QTE_02 Integer,
        VTS_QTE_03 Integer,
        VTS_QTE_04 Integer,
        VTS_QTE_05 Integer,
        VTS_QTE_06 Integer,
        VTS_QTE_07 Integer,
        VTS_QTE_08 Integer,
        VTS_QTE_09 Integer,
        VTS_QTE_10 Integer,
        VTS_QTE_11 Integer,
        VTS_QTE_12 Integer,
        VTS_QTE_13 Integer,
        VTS_QTE_TOTAL Integer,
        VTS_PV_TOTAL Float,
        VTS_PV_JOUR_TOTAL Float,
        VTS_PA_JOUR_TOTAL Float
        )
	AS
	BEGIN
	     FOR SELECT
                 Sum(VTS_QTE_01),
                 Sum(VTS_QTE_02),
                 Sum(VTS_QTE_03),
                 Sum(VTS_QTE_04),
                 Sum(VTS_QTE_05),
                 Sum(VTS_QTE_06),
                 Sum(VTS_QTE_07),
                 Sum(VTS_QTE_08),
                 Sum(VTS_QTE_09),
                 Sum(VTS_QTE_10),
                 Sum(VTS_QTE_11),
                 Sum(VTS_QTE_12),
                 Sum(VTS_QTE_13),
                 Sum(VTS_QTE_01)+
                 Sum(VTS_QTE_02)+
                 Sum(VTS_QTE_03)+
                 Sum(VTS_QTE_04)+
                 Sum(VTS_QTE_05)+
                 Sum(VTS_QTE_06)+
                 Sum(VTS_QTE_07)+
                 Sum(VTS_QTE_08)+
                 Sum(VTS_QTE_09)+
                 Sum(VTS_QTE_10)+
                 Sum(VTS_QTE_11)+
                 Sum(VTS_QTE_12)+
                 Sum(VTS_QTE_13),
                 Sum(VTS_PV_TOTAL),
                 Sum(VTS_PV_JOUR),
                 Sum(VTS_PA_JOUR)
 
	         FROM ART_VTS
                 WHERE (ADH_NUMERO = :ADH_NU) And (ART_NUMERO = :ART_NU) And (MAG_NUMERO = :MAG_NU) And ( 
 
VTS_DATE>= :DT_MINI) And ( VTS_DATE<= :DT_MAXI)
	         INTO
                 :VTS_QTE_01,
                 :VTS_QTE_02,
                 :VTS_QTE_03,
                 :VTS_QTE_04,
                 :VTS_QTE_05,
                 :VTS_QTE_06,
                 :VTS_QTE_07,
                 :VTS_QTE_08,
                 :VTS_QTE_09,
                 :VTS_QTE_10,
                 :VTS_QTE_11,
                 :VTS_QTE_12,
                 :VTS_QTE_13,
                 :VTS_QTE_TOTAL,
                 :VTS_PV_TOTAL,
                 :VTS_PV_JOUR_TOTAL,
                 :VTS_PA_JOUR_TOTAL
             DO
             BEGIN
               SUSPEND;
               EXIT;
             END
 
END !!
 
SET TERM ; !!
Cette procedure ne marche pas, et je sais pas pourqoi !!!
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
SET TERM !! ;
CREATE PROCEDURE TMP_VTS (DT_MINI DATE, DT_MAXI DATE)
	AS
	BEGIN
	     FOR SELECT * FROM ART_VTS A WHERE (VTS_DATE>= :DT_MINI) And ( VTS_DATE<= :DT_MAXI)
             DO
             BEGIN
                  EXECUTE PROCEDURE PS_ART_VTS(A.ADH_NUMERO, A.ART_NUMERO, A.MAG_NUMERO, :DT_MINI, : DT_MAXI);
 
                  Update TMP_ART_ETUDE Set
                  VTS_QT_01= VTS_QTE_01
                  Where
                  ADH_NUMERO= A.ADH_NUMERO And
                  ART_NUMERO= A.ART_NUMERO And
                  MAG_NUMERO= A.MAG_NUMERO;
             END;
 
END !!
SET TERM ; !!
Merci beaucoup de votre aide !