Professional Documents
Culture Documents
Info * d PgmInfo d @PgmName d @Parms d @MsgID d @JobName d @UserId d @JobNumber * SDS 1 37 40 244 254 264 10 39 0 46 253 263 269 0 n/a Description ----------ApiLibrary ApiFile Type Size ---- ---Char 10 Char 10 How Used -------input input This program will list all members in a file
* constants * d Q d Up d Low * * Field Definitions. * d AllMembers d ApiFile d ApiLibrary d ApiMember d bOvr d FileLib d Format d MemberName d nBufLen d ObjectLib d OutData d ReceiverLen d SpaceVal d SpaceAuth d SpaceText d SpaceRepl d SpaceAttr d UseScreen d UserSpaceOut * * QUSRMBRD API return Struture * ============================ s s s s s s s s s s s s s s s s s s s 20 10a 10 10 10 1a 20a 8a 10 10i 0 10 30 10i 0 inz(100) 1 10 50 10 10 n inz(*BLANKS) inz('*CHANGE') inz(*BLANKS) inz('*YES') inz(*BLANKS) inz('0') inz('*ALL') c c c const('''') const('ABCDEFGHIJKLMNOPQRSTUVWXYZ') const('abcdefghijklmnopqrstuvwxyz')
d Mbrd0100 d nBytesRtn d nBytesAval d DBXLIB d DBXFIL d MbrName d FileAttr d SrcType d dtCrtDate d dtLstChg d MbrText d bIsSource d RmtFile d LglPhyFile d ODPSharing d filler2 d RecCount d DltRecCnt d DataSpaceSz d AccpthSz d NbrBasedOnMbr *
ds 10i 0 10i 0 10a 10a 10a 10a 10a 13a 13a 50a 1a 1a 1a 1a 2a 10i 0 10i 0 10i 0 10i 0 10i 0
inz
* Create userspace datastructure * d stuff d StartPosit d StartLen d SpaceLen d ReceiveLen d MessageKey DS 10i 0 10i 0 10i 0 10i 0 10i 0
d MsgDtaLen d MsgQueNbr *
10i 0 10i 0
* Date structure for retriving userspace info * d InputDs d UserSpace d SpaceName d SpaceLib d InpFileLib d InpFFilNam d InpFFilLib d InpRcdFmt * * Data structure for the retrieve user space command * d GENDS d Filler3 d OffsetHdr d SizeHeader d OffsetList d Filler4 d NbrInList d SizeEntry * * Datastructure for retrieving elements from userspace * d HeaderDs d OutFileNam d OutLibName DS 1 11 10 20 DS 116 10i 0 10i 0 10i 0 4 10i 0 10i 0 DS 1 1 11 29 29 39 49 20 10 20 48 38 48 58
d OutType d OutFormat d RecordLen * * List the members * d ListDs d LmMember d LmType d LmCreationDt d LmCreationTm d LmLastChgDt d LmLastChgTm d LmDescription * DS
21 31 41
25 40 44i 0
10 10 7 6 7 6 50
* Retrive object description * d RtvObjInfo d RoBytRtn d RoBytAvl d RoObjNam d RoObjLib d RoObjTypRt d RoObjLibRt d RoObjASP d RoObjOwn d RoObjDmn d RoObjCrtDts d RoObjCrtTim d RoObjChgDts DS 10i 0 10i 0 10a 10a 10a 10a 10i 0 10a 2a 07a 06a 07a
d RoObjChgTim d RoExtAtr d RoTxtDsc d RoSrcF d RoSrcLib d RoSrcMbr * * API Error Data Structure * d Errords d BytesPrv d BytesAvl d MessageId d ERR### d MessageDta * ds 1 5 9 16 17
*===================================================== * MAIN LINE *===================================================== * * Now List the members of this source file to a userspace * c * c c c * * Read back the members * eval eval exsr MemberName = '*ALL' Format = 'MBRL0200' $QUSLMBR exsr $QUSCRTUS
c c *
eval eval
* First call to get data offsets(start) * c c c c c c * * Then call to get number of entries * c c * c c c c c c * c c * * Do for number of members * c do NbrInList eval eval StartPosit = OffsetList + 1 StartLen = SizeEntry call(e) parm parm parm parm parm 'QUSRTVUS' UserSpaceOut StartPosit StartLen HeaderDs ErrorDs eval eval StartPosit = OffsetHdr + 1 StartLen = SizeHeader call(e) parm parm parm parm parm 'QUSRTVUS' UserSpaceOut StartPosit StartLen GENDS ErrorDs
c c c c c c * c c c c c c * c c * c OutData
ApiMember = LmMember $QUSRMBRD OutData = %trim(LmMember) + '-' + %char(RecCount) +' Deleted: '+ %char(DltRecCnt)
dsply
reply
eval enddo
eval
*inlr = *on
*===================================================== * $QUSRMBRD - API Retreive Member Description *===================================================== c * c c * c c c c call(e) parm parm parm 'QUSRMBRD' MbrD0100 nBufLen Format eval eval nBufLen = %size(MbrD0100) Format = 'MBRD0200' $QUSRMBRD begsr
c c c * c
c *
$QUSCRTUS
begsr
* Create a user space named ListMember in QTEMP. * c c c * * Create the user space * c c c c c c c c c * c endsr *======================================================================== call(e) parm parm parm parm parm parm parm parm 4096 'QUSCRTUS' UserSpace UserSpaceOut SpaceAttr SpaceLen SpaceVal SpaceAuth SpaceText SpaceRepl ErrorDs Eval BytesPrv = 116 SpaceName SpaceLib
* $QUSLMBR - API List all members in a file *======================================================================== c * c * c c c c c c c * c endsr *===================================================== * Initialization *===================================================== c * c c c * c * c endsr eval FileLib = ApiFile + ApiLibrary *entry plist parm parm ApiFile ApiLibrary *inzsr begsr call(e) parm parm parm parm parm parm 'QUSLMBR' UserSpaceOut Format FileLib AllMembers bOvr ErrorDs eval nBufLen = %size(MbrD0100) $QUSLMBR begsr