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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
IDENTIFICATION DIVISION.
PROGRAM-ID. FUSQLB5002.
AUTHOR. PORTEKOI.
ENVIRONMENT DIVISION.
*----------------------------------------------------------------
CONFIGURATION SECTION.
*----------------------------------------------------------------
SOURCE-COMPUTER. IBM-AS400.
OBJECT-COMPUTER. IBM-AS400.
SPECIAL-NAMES.
C01 IS CANAL-1
REQUESTOR IS UD
LOCAL-DATA IS MD-LOCAL-DATA
CURRENCY SIGN IS "F"
DECIMAL-POINT IS COMMA.
*----------------------------------------------------------------
INPUT-OUTPUT SECTION.
*----------------------------------------------------------------
FILE-CONTROL.
*****************************************************************
DATA DIVISION.
*****************************************************************
*----------------------------------------------------------------
FILE SECTION.
*----------------------------------------------------------------
WORKING-STORAGE SECTION.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
01 MyString PIC X(1500).
01 LstChamps PIC X(80).
01 Twhere1 PIC X(10) VALUES "WHERE".
01 Twhere2 PIC X(210).
01 WW-chp1 PIC X(100).
01 WW-chp2 PIC X(100).
01 WW-chp3 PIC X(100).
01 WW-chp4 PIC X(100).
01 WW-chp5 PIC X(100).
01 WW-chp6 PIC X(100).
01 WW-chp7 PIC X(100).
01 WW-chp8 PIC X(100).
01 WW-chp9 PIC X(100).
01 WW-chp10 PIC X(100).
*************************************************************
* LINKAGE SECTION *
*************************************************************
LINKAGE SECTION.
* Nom de la table?
01 LK-NAME PIC X(10).
* Les champs désirés?
01 LK-LSTCHP PIC X(80).
* Clause where?
01 LK-WHERE PIC X(200).
* Les résultats?
01 LK-LSTRESULT.
02 LK-TAB OCCURS 10.
03 LK-chp PIC X(100).
* Code erreur?
01 LK-CODERETOUR PIC X(02).
*****************************************************************
PROCEDURE DIVISION USING LK-NAME
LK-LSTCHP
LK-WHERE
LK-LSTRESULT
LK-CODERETOUR.
*****************************************************************
DEB-PROG.
*
* Transformations des données
*
* Initialisation du code retour
MOVE "00" TO LK-CODERETOUR.
MOVE " " To Twhere2.
IF LK-WHERE NOT = " " THEN
String Twhere1 Delimited By Size,
LK-WHERE Delimited By Size
Into Twhere2
END-IF.
* En cas d'erreur...
EXEC SQL
WHENEVER SQLERROR GO TO TRAIT-ERREUR
END-EXEC.
String 'Select ' Delimited By Size,
LK-LSTCHP,
' From ' Delimited By Size,
LK-NAME Delimited By Size,
' ' Delimited By Size,
Twhere2 Delimited By Size,
' ' Delimited By Size,
'FETCH FIRST 1 ROWS ONLY' Delimited By Size
Into MyString.
Exec sql Prepare SqlStm From :MyString End-exec.
Exec sql Declare c1 cursor For SqlStm End-exec.
Exec sql Open c1 End-exec.
Exec sql Fetch c1 Into
:WW-chp1,
:WW-chp2,
:WW-chp3,
:WW-chp4,
:WW-chp5,
:WW-chp6,
:WW-chp7,
:WW-chp8,
:WW-chp9,
:WW-chp10
End-exec.
Exec sql Close c1 End-exec.
MOVE WW-chp1 TO LK-chp(1).
MOVE WW-chp2 TO LK-chp(2).
MOVE WW-chp3 TO LK-chp(3).
MOVE WW-chp4 TO LK-chp(4).
MOVE WW-chp5 TO LK-chp(5).
MOVE WW-chp6 TO LK-chp(6).
MOVE WW-chp7 TO LK-chp(7).
MOVE WW-chp8 TO LK-chp(8).
MOVE WW-chp9 TO LK-chp(9).
MOVE WW-chp10 TO LK-chp(10).
FIN-PROGRAMME.
EXIT.
GOBACK.
*****************************************************************
TRAIT-ERREUR.
MOVE "23" TO LK-CODERETOUR.
GO TO FIN-PROGRAMME.
FIN-TRAIT-ERREUR.
EXIT. |
Partager