You can get member information into a database file using DSPFD. Example:
DSPFD FILE(QCLSRC) TYPE(*MBRLIST) OUTPUT(*OUTFILE) OUTFILE(QTEMP/LISTFILE)
This creates LISTFILE in QTEMP, or, if it already exists, replaces the previous contents. The file will contain one record for each member in QCLSRC. The record format has the following structure (I have marked the fields you are most interested in with *) :
Format QWHFDML "DSPFD format for TYPE *MBRLIST" 1 1 1A MLRCEN Retrieval century: 0=19xx, 1=20xx 2 7 6A MLRDAT Retrieval date: year/month/day 8 13 6A MLRTIM Retrieval time: hour/minute/second 14 23 10A MLFILE File 24 33 10A MLLIB Library 34 34 1A MLFTYP P=PF, L=LF, R=DDM PF, S=DDM LF 35 38 4A MLFILA File attribute: *PHY or *LGL 39 41 3A MLMXD Reserved 42 47 6A MLFATR File attribute: PF, LF, PF38, or LF38 48 55 8A MLSYSN System Name (Source System, if file is DDM) 56 57 3,0P MLASP Auxiliary storage pool ID: 1=System ASP 58 61 4A MLRES Reserved 62 64 5,0P MLNOMB Number of members * 65 74 10A MLNAME Member * 75 80 10,0P MLNRCD Current number of records 81 86 10,0P MLNDTR Number of deleted records 87 92 10,0P MLSIZE Data space and index size in bytes, -1=See MLSIZ2 93 96 4A MLSEU Source type for S/38 View as it appeared on S/38 97 97 1A MLCCEN Member creation century: 0=19xx, 1=20xx 98 103 6A MLCDAT Member creation date: year/month/day 104 104 1A MLCHGC Last change century: 0=19xx, 1=20xx 105 110 6A MLCHGD Last change date: year/month/day 111 116 6A MLCHGT Last change time: hour/minute/second * 117 166 50A MLMTXT Text 'description' * 167 176 10A MLSEU2 Source type 177 177 1A MLUCEN Last Used Century: 0=19xx, 1=20xx 178 183 6A MLUDAT Last Used Date: year/month/day 184 186 5,0P MLUCNT Days Used Count 187 187 1A MLTCEN Usage Data Reset Century: 0=19xx, 1=20xx 188 193 6A MLTDAT Usage Data Reset Date: year/month/day 194 201 15,0P MLSIZ2 Data space and index size in bytes 202 202 1A MLSTFR Member storage freed Y=Yes (NOTE: This is in V5R2 of OS/400 -- the fields may be different at other operating system levels.) You can now use a CL or RPG program to read this member list and do what you want with the information. To open a source member in a program, use OVRDBF to override the program name of the file (MYSRC, for example) to the actual name & library of the source file, and the MBR parameter will be the name of the member you want to open. Declare the file in your F-specs as PROGRAM DESCRIBED, not externally described. The record length can be greater than the actual length you expect (remember that ILE source files have record lengths of 112 bytes). Create I-specs to describe the fields as follows: 1 6 6,2S SRCSEQ (Source sequence number) 7 12 6,0S SRCDAT (Source change date) 13 112 100A SRCDTA (Source line)
================================== MORE INFORMATION ON THIS TOPIC ==================================
The Best Web Links: tips, tutorials and more.
Visit the ITKnowledge Exchange and get answers to your developing questions fast.
Ask the Experts yourself: Our application development gurus are waiting to answer your programming questions.
This was first published in April 2005