Skip to content

Commit c3082e1

Browse files
Update QSHQRYSRCC.CLP
1 parent d70a92d commit c3082e1

File tree

1 file changed

+55
-8
lines changed

1 file changed

+55
-8
lines changed

Diff for: QSHQRYSRCC.CLP

+55-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1-
PGM PARM(&SRCFILE &SRCMBR &SQLIFSFILE &OUTFILE +
2-
&EMPTYERROR &NAMING &PROMPT &CRTIDCOL +
3-
&IDCOLNAME &DLTTMPSRC &SQLLOC)
4-
1+
PGM PARM(&SRCFILE &SRCMBR &SQLIFSFILE &PARMS +
2+
&PARMVALS &OUTFILE &EMPTYERROR &NAMING +
3+
&PROMPT &CRTIDCOL &IDCOLNAME &DLTTMPSRC +
4+
&SQLLOC)
5+
6+
DCL VAR(&RTNERROR) TYPE(*CHAR) LEN(1)
7+
DCL VAR(&PARMS) TYPE(*CHAR) LEN(3002)
8+
DCL VAR(&PARMVALS) TYPE(*CHAR) LEN(3002)
59
DCL VAR(&SQLQUAL) TYPE(*CHAR) LEN(1)
610
DCL VAR(&NAMING) TYPE(*CHAR) LEN(4)
711
DCL VAR(&IDCOLNAME) TYPE(*CHAR) LEN(30)
@@ -54,6 +58,21 @@
5458
being used to run query') TOPGMQ(*SAME) +
5559
MSGTYPE(*DIAG)
5660

61+
/* Delete temporary source file */
62+
/* Make sure doesn't exist. */
63+
DLTF FILE(QTEMP/TMPQRYSRC)
64+
MONMSG MSGID(CPF0000)
65+
66+
/* Create temporary source file */
67+
CRTSRCPF FILE(QTEMP/TMPQRYSRC) RCDLEN(240)
68+
ADDPFM FILE(QTEMP/TMPQRYSRC) MBR(TMPQRYSRC) +
69+
SRCTYPE(SQL)
70+
71+
/* Make snapshot of source member to QTEMP for our job */
72+
CPYSRCF FROMFILE(&SQLSRCLIB/&SQLSRCFILE) +
73+
TOFILE(QTEMP/TMPQRYSRC) FROMMBR(&SRCMBR) +
74+
TOMBR(TMPQRYSRC) MBROPT(*REPLACE)
75+
5776
ENDDO /* ENDDO *SRCMBR */
5877

5978
/*----------------------------------------------------------------------------*/
@@ -110,11 +129,38 @@
110129
ENDDO /* ENDDO *IFSFILE */
111130

112131
/*----------------------------------------------------------------------------*/
113-
/* Read SQL from source member */
132+
/* Read SQL from source member, scan and replace values */
133+
/* and update the temp SQL member file in QTEMP */
114134
/*----------------------------------------------------------------------------*/
115-
OVRDBF FILE(TMPSRCMBR) +
116-
TOFILE(&SQLSRCLIB/&SQLSRCFILE) +
117-
MBR(&SRCMBR) OVRSCOPE(*ACTGRPDFN)
135+
OVRDBF FILE(TMPQRYSRC) TOFILE(QTEMP/TMPQRYSRC) +
136+
MBR(*FIRST) OVRSCOPE(*ACTGRPDFN)
137+
CALL PGM(QSHQRYSR2R) PARM(&PARMS &PARMVALS +
138+
&RTNERROR)
139+
DLTOVR FILE(TMPQRYSRC) LVL(*ACTGRPDFN)
140+
141+
/* If rtnerror <> '0', bail out now */
142+
IF COND(&RTNERROR *EQ '1') THEN(DO)
143+
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Same +
144+
number of parms and parm values are +
145+
required to be passed') MSGTYPE(*ESCAPE)
146+
ENDDO
147+
IF COND(&RTNERROR *EQ '2') THEN(DO)
148+
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('At +
149+
least one parameter required error +
150+
occurred while processing SQL source +
151+
member parameters') MSGTYPE(*ESCAPE)
152+
ENDDO
153+
IF COND(&RTNERROR *EQ '3') THEN(DO)
154+
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Unknown +
155+
error occurred while handling parameters. +
156+
Check the joblog') MSGTYPE(*ESCAPE)
157+
ENDDO
158+
159+
/*----------------------------------------------------------------------------*/
160+
/* Read SQL from source member in QTEMP and compose final query */
161+
/*----------------------------------------------------------------------------*/
162+
OVRDBF FILE(TMPSRCMBR) TOFILE(QTEMP/TMPQRYSRC) +
163+
MBR(*FIRST) OVRSCOPE(*ACTGRPDFN)
118164
CALL PGM(QSHQRYSRCR) PARM(&SQLQUERY)
119165
DLTOVR FILE(TMPSRCMBR) LVL(*ACTGRPDFN)
120166

@@ -125,6 +171,7 @@
125171
empty or has blank lines. Query +
126172
cancelled') MSGTYPE(*ESCAPE)
127173
ENDDO
174+
128175
/*----------------------------------------------------------------------------*/
129176
/* Parse outfile parm */
130177
/*----------------------------------------------------------------------------*/

0 commit comments

Comments
 (0)