...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
**FREE CTL-OPT DFTACTGRP(*NO) ACTGRP(*CALLER) BNDDIR('QC2LE'); DCL-DS INPUTDATA_T QUALIFIED BASED(TEMPLATE); FILEID VARCHAR(640); USERID CHAR(10); IPADDR CHAR(15); INLINE IND; END-DS; DCL-PR TMPNAM POINTER EXTPROC('_C_IFS_tmpnam'); STRING CHAR(39) OPTIONS(*OMIT); END-PR; DCL-PR MAIN EXTPGM('PUIDNLEXIT'); TIMINGFLAG INT(10) CONST; INPUTDATA LIKEDS(INPUTDATA_T) CONST; STMFDIR VARCHAR(640); STMFNAME VARCHAR(256); ATTNAME VARCHAR(256); CONTENTTYPE VARCHAR(256); ALLOW INT(5); END-PR; DCL-PR UNLINK INT(10) EXTPROC('unlink'); PATH POINTER VALUE OPTIONS(*STRING); END-PR; DCL-PI MAIN; TIMINGFLAG INT(10) CONST; INPUTDATA LIKEDS(INPUTDATA_T) CONST; STMFDIR VARCHAR(640); STMFNAME VARCHAR(256); ATTNAME VARCHAR(256); CONTENTTYPE VARCHAR(256); ALLOW INT(5); END-PI; DCL-S MYPIC SQLTYPE(BLOB_FILE); DCL-S FILENAME VARCHAR(50); DCL-S RECNUMPOS INT(5); // USED TO PARSE THE PARAM STRING DCL-S BLOBLOC VARCHAR(25); // STORES THE KEYWORD FOR THE LOCATION OF THE TABLE CONTAINING THE BLOB DCL-S RECID VARCHAR(25); // STORES THE RECORD KEY FOR THE BLOB IMAGE IF %SUBST(INPUTDATA.FILEID:1:5) = 'BLOB:'; // CHECKING PASSED PARAMETER FOR THE KEYWORD 'BLOB' IF TIMINGFLAG = 0; FILENAME = %STR(TMPNAM(*OMIT)) + '.jpg'; RECNUMPOS = %SCAN(':' : INPUTDATA.FILEID : 6); BLOBLOC = %SUBST(INPUTDATA.FILEID : 6 : RECNUMPOS - 6); RECID = %SUBST(INPUTDATA.FILEID : RECNUMPOS + 1 : %LEN(%TRIM(INPUTDATA.FILEID)) - RECNUMPOS); IF BLOBLOC = 'ANIMALS'; MYPIC_FO = SQFCRT; MYPIC_NAME = FILENAME; MYPIC_NL = %LEN(%TRIM(FILENAME)); EXEC SQL SELECT MYBLOB INTO :MYPIC FROM MYTABLE WHERE FILEID = :RECID; IF SQLCODE = 0; // SQL WAS SUCCESSFUL STMFNAME = FILENAME; ATTNAME = 'elephant'; ALLOW = 1; ELSE; ALLOW = 0; ENDIF; ELSE; ALLOW = 0; ENDIF; ENDIF; IF TIMINGFLAG = 1; UNLINK(%TRIM(FILENAME)); ENDIF; ELSE; ALLOW = 1; //ADD NON BLOB DOWNLOAD CONDITIONS HERE ENDIF; *INLR = *ON; |
...