/* REXX */ PARSE UPPER ARG cursor cursor = STRIP(cursor,'L','C') /* Remove leading C. */ cursor = STRIP(cursor,'L','S') /* Remove leading S. */ cursor = STRIP(cursor,'L','0') /* Remove leading zeros. */ zrc = 0 SAY SELECT WHEN \DATATYPE(cursor,'W') THEN DO SAY 'DB2RXCSR - Cursor number must be 1-200.' zrc = 16 END WHEN cursor < 1 | cursor > 200 THEN DO SAY 'DB2RXCSR - Cursor number must be 1-200.' zrc = 16 END OTHERWISE /***********************************************************/ /* Cursors: */ /* C1 - C50 - For statements S1 - S50 */ /* WITH RETURN clause. */ /* C51 - C100 - For statements S50 - S100 */ /* WITH RETURN clause. */ /* WITH HOLD clause. */ /* C101 - C200 - For results created by RSP's. */ /* FOR RESULT SET clause. */ /***********************************************************/ SAY 'DECLARE CURSOR C'cursor'...' ADDRESS DSNREXX "EXECSQL DECLARE C"cursor, "CURSOR FOR S"cursor IF sqlcode \= 0 THEN DO SAY 'DECLARE CURSOR failed.' SAY 'sqlcode='sqlcode SAY 'sqlerrmc='sqlerrmc zrc = 8 END ELSE SAY 'Ok.' END /* SELECT */ SAY RETURN zrc