/* REXX */ PARSE UPPER ARG ssid zrc = DB2RXENV('ADD') IF zrc \= 0 THEN SIGNAL Done zrc = DB2RXCON('CONNECT' ssid) IF zrc \= 0 THEN SIGNAL Noconnect zrc = DB2RXISO('CS') IF zrc \= 0 THEN SIGNAL Complete zrc = DB2RXCSR('C1') /* Cursor required for singleton select */ IF zrc \= 0 /* and/or parameter marker. */ THEN SIGNAL Complete SAY 'PREPARE...' /* Singleton select with parameter marker. */ mysql= "SELECT DEPTNO, DEPTNAME, MGRNO FROM DSN8910.DEPT", "WHERE DEPTNO=?" ADDRESS DSNREXX "EXECSQL PREPARE S1 FROM :mysql" IF sqlcode \= 0 THEN DO SAY 'PREPARE failed.' SAY 'sqlcode='sqlcode SAY 'sqlerrmc='sqlerrmc zrc = 12 END ELSE SAY 'Ok.' DO WHILE zrc = 0 SAY 'Enter a Department Number or EXIT:' PULL deptno IF deptno = 'EXIT' THEN LEAVE IF zrc = 0 THEN DO SAY SAY 'OPEN CURSOR...' /* Value of parameter marker. */ ADDRESS DSNREXX "EXECSQL OPEN C1 USING :deptno" IF sqlcode \= 0 THEN DO SAY 'OPEN CURSOR failed.' SAY 'sqlcode='sqlcode SAY 'sqlerrmc='sqlerrmc zrc = 8 END ELSE SAY 'Ok.' END IF zrc = 0 THEN DO SAY SAY 'FETCH CURSOR...' mysql = "EXECSQL FETCH C1 INTO :myf, :myl, :mlm :myi" ADDRESS DSNREXX mysql IF sqlcode \= 100 & sqlcode \< 0 THEN SAY 'myf='myf 'myl='myl 'mlm='mlm 'myi='myi LENGTH(mlm) SAY 'Completed. sqlcode='sqlcode END IF zrc = 0 THEN DO SAY SAY 'CLOSE CURSOR...' ADDRESS DSNREXX "EXECSQL CLOSE C1" IF sqlcode \= 0 THEN DO SAY 'CLOSE failed.' SAY 'sqlcode='sqlcode SAY 'sqlerrmc='sqlerrmc zrc = 4 END ELSE SAY 'Ok.' END END /* WHILE */ Complete: x = DB2RXCON('DISCONNECT' ssid) Noconnect: x = DB2RXENV('DELETE') Done: EXIT zrc