/**********READDB2********************/ CHECKDB2: PROCEDURE
ADDRESS TSO "SUBCOM DSNREXX"
IF RC=0 THEN
SAY 'IT OK TO USE DSNREXX'
ELSE
DO
SAY 'SORRY'
SAY RC
END
IF RC <> 0 THEN
DO
S_RC = RXSUBCOM("ADD","DSNREXX","DSNREXX")
IF RC <> 0 THEN
SAY RC
"SUBCOM DSNREXX"
IF RC=0 THEN
SAY 'IT OK TO USE DSNREXX'
ELSE
DO
SAY 'SORRY'
EXIT
END
END
RETURN
/********************CONNECTDB2*****************/
CONNECTDB2: PROCEDURE
ADDRESS DSNREXX
"CONNECT DB9G"
IF SQLCODE = 0 THEN
SAY 'CONNECT OK'
ELSE
DO
SAY 'CONNECT ERR'
SAY SQLCODE
EXIT
END
RETURN
/********************READDATA*******************/
READDATA: PROCEDURE
ADDRESS TSO
DSNX="'CBK.A3.DB2.KEYWORD'"
"ALLOC DA("DSNX") FI(MYINDA) SHR"
"EXECIO 1 DISKR MYINDA (STEM NEWVAR."
"EXECIO 1 DISKR MYINDA (FINIS"
SAY "FINIS1" RC
"FREE F(MYINDA)"
SAY "FREE1" RC
PARSE VALUE NEWVAR.1 WITH KEYWORD A B CD
SAY "NEWVAR.1" NEWVAR.1
SAY "KEYWORD" KEYWORD
ADDRESS DSNREXX
SQLSTAT = "SELECT * FROM IBMUSER.BEIFEN WHERE SID > "KEYWORD""
EXECSQL "DECLARE C71 CURSOR WITH HOLD FOR S71"
SAY SQLCODE
ADDRESS DSNREXX
EXECSQL "PREPARE S71 INTO :OUTSQLDA FROM :SQLSTAT"
SAY "PREPARE" SQLCODE
"EXECSQL OPEN C71"
SAY 'OPEN' SQLCODE
SAY RC
DO X = 1 TO 5
'EXECSQL FETCH C71 USING DESCRIPTOR :OUTSQLDA'
IF SQLCODE = 0 THEN
DO
STR = ''
DO I = 1 TO OUTSQLDA.SQLD
LINE = OUTSQLDA.I.SQLDATA
/*SAY 'LINE IS' LINE*/
STR = STR || ' ' || LINE
END
SAY STR
/* CALL WRITEFILE STR */
WRITEFILE(STR)
END
ELSE
SAY "FIND SQLCODE" SQLCODE
END
EXECSQL "COMMIT"
RETURN
/*****************WRITEFILE********************************/
WRITEFILE: PROCEDURE
PARSE ARG STRING1
ADDRESS TSO
DSN ="'CBK.A3.DB2.READOPT'"
DSN1="'CBK.A3.DB2.KEYWORD'"
"ALLOC DA("DSN") FI(MYOUTDD) MOD"
"ALLOC DA("DSN1") FI(MYKEYDD) SHR"
"NEWSTACK"
PUSH STRING1
"EXECIO 1 DISKW MYOUTDD (FINIS"
PUSH STRING1
"EXECIO 1 DISKW MYKEYDD (FINIS"
SAY "FINIS2" RC
"DELSTACK"
SAY RC
"FREE F(MYOUTDD)"
"FREE F(MYKEYDD)"
SAY "FREE2" RC
RETURN 0
/*******************SEND FTP***************/
FTPD: PROCEDURE
QUEUE "//IBMUSERA JOB NOTIFY=&SYSUID"
QUEUE "//STEP0 EXEC PGM=FTP,PARM='172.2.238.210'"
QUEUE "//OUTPUT DD SYSOUT=*"
QUEUE "//SYSPRINT DD SYSOUT=*"
QUEUE "//INPUT DD *"
QUEUE " IBMUSER"
QUEUE " SYS1 "
QUEUE " PUT 'CBK.A3.DB2.READOPT'"
QUEUE " QUIT"
QUEUE "/*"
QUEUE "//STEP1 EXEC PGM=IEFBR14"
QUEUE "//DD1 DD DSN=CBK.A3.DB2.READOPT,"
QUEUE "// DISP=(SHR,DELETE)"
QUEUE "//STEP2 EXEC PGM=IEFBR14"
QUEUE "//DD2 DD DSN=CBK.A3.DB2.READOPT,"
QUEUE "// DISP=(,CATLG),SPACE=(CYL,(10,10)),"
QUEUE "// RECFM=FB,LRECL=80,BLKSIZE=3200,UNIT=3390"
QUEUE "\\"
ADDRESS TSO "SUBMIT * END(\\)"
SAY "ADDRESS TSO" RC
RETURN