/* 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') IF zrc \= 0 THEN SIGNAL Complete SAY 'Enter an SQL SELECT statement:' PULL mysql SAY 'PREPARE...' /* Select with varying list. */ ADDRESS DSNREXX "EXECSQL PREPARE S1 INTO :stem FROM :mysql" IF sqlcode \= 0 THEN DO SAY 'PREPARE failed.' SAY 'sqlcode='sqlcode SAY 'sqlerrmc='sqlerrmc zrc = 12 END ELSE SAY 'Ok.' IF POS('?',mysql) > 0 /* Parameter marker found. */ THEN DO SAY 'Enter the parameter marker:' PULL marker END IF zrc = 0 THEN DO SAY SAY 'OPEN CURSOR...' /* Value of parameter marker. */ ADDRESS DSNREXX "EXECSQL OPEN C1 USING :marker" 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...' /* Populate SQLDA. */ mysql = "EXECSQL FETCH C1 USING DESCRIPTOR :stem" ADDRESS DSNREXX mysql line = '' DO x = 1 TO stem.SQLD line = line''LEFT(stem.x.SQLNAME,10,' ') END x SAY line DO WHILE sqlcode \= 100 & sqlcode \< 0 line = '' DO x = 1 TO stem.SQLD IF stem.x.SQLIND < 0 THEN line = line'**NULL** ' ELSE line = line''LEFT(stem.x.SQLDATA,8,' ')' ' END x SAY line ADDRESS DSNREXX mysql END /* WHILE */ 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 Complete: x = DB2RXCON('DISCONNECT' ssid) Noconnect: x = DB2RXENV('DELETE') Done: EXIT zrc