Wednesday, September 26, 2007

Rexx to SELECT data from a DB2 Table

/*-----------------------REXX-----------------------------------------*/
ADDRESS TSO "SUBCOM DSNREXX" /* DSNREXX ENVIRONMENT AVILABLE?*/
IF RC <> 0 THEN
S_RC = RXSUBCOM('ADD','DSNREXX','DSNREXX')

SSID='ssid'
SQ1='SELECT Query'

ADDRESS DSNREXX
"CONNECT" SSID
"EXECSQL DECLARE C1 CURSOR FOR S1"
DROP OUTSQLDA1
"EXECSQL PREPARE S1 INTO :OUTSQLDA1 FROM :SQ1"
"EXECSQL OPEN C1"
IF SQLCODE ¬= 0 THEN DO
SAY 'ERROR OPENING CURSOR'
EXIT 0
END
"EXECSQL FETCH C1 USING DESCRIPTOR :OUTSQLDA1"
DO UNTIL SQLCODE ¬= 0
IF SQLCODE = 0 THEN DO
select_field1 = STRIP(OUTSQLDA1.1.SQLDATA)
select_field2 = STRIP(OUTSQLDA1.2.SQLDATA)
END
"EXECSQL FETCH C1 USING DESCRIPTOR :OUTSQLDA1"
END
"EXECSQL CLOSE C1"
ADDRESS "TSO"
/*-------------------------- END OF PROGRAM --------------------------*/

REXX to update/insert/delete data in a DB2 table

/*-----------------------REXX-----------------------------------------*/
ADDRESS TSO "SUBCOM DSNREXX" /* DSNREXX ENVIRONMENT AVILABLE?*/
IF RC <> 0 THEN
S_RC = RXSUBCOM('ADD','DSNREXX','DSNREXX')
SSID='ssid'
SQ1='INSERT/UPDATE/DELETE Query'
ADDRESS DSNREXX
"CONNECT" SSID
"EXECSQL PREPARE S1 FROM :SQ1"
"EXECSQL EXECUTE S1"
"EXECSQL COMMIT"
SAY ' --> SQLCODE='SQLCODE
ADDRESS "TSO"
RETURN
/*-------------------------- END OF PROGRAM --------------------------*/

The above Rexx can also be executed from within a job(JCL) as shown bellow:

//************************************************
//STEP010 EXEC PGM=IKJEFT01,DYNAMNBR=75
//SYSPROC DD DISP=SHR,DSN=Your-REXX-Library
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTSIN DD *
YOURREXX-NAME
/*

Common Errors:
1)
Job abended with MAXCC=12.
spool information in SYSTSPRT

+++ S_RC = RXSUBCOM('ADD','DSNREXX','DSNREXX')
Error running YOURREXX-NAME, line 62: Routine not found

You may have to add a SDSNLOAD library(that contains a member RXSUBCOM) to joblib in your JCL.
e.g.
//JOBLIB DD DSN=ssidPRD.ssid.SDSNLOAD,DISP=SHR


Enjoy Rexx.
narinder@esspeeinc.com


Monday, July 16, 2007

Memories are Forever


A group of young students of Masters degree (MCA) coming into a cafeteria holding their books and notes. Looking around beautifull girls and talking about them. Walks towards the tea counter and pool for the tea coupons. Short of funds...Yes !! those were the days !!
After four years, each one of them is earning a Barista Coffee per minute but Barista has its own taste, surely very different from that cup of tea. That taste will live forever, because Memories are Forever...