Go to LeighWeb Home Page            

Back To LeighWeb Mainframe Utilities Page

View the documentation associated with this module

PROC 1 TABLE
ISPEXEC CONTROL ERRORS RETURN
ISPEXEC VGET (DBGSWTCH) PROFILE
IF &DBGSWTCH = &STR(ON) THEN +
     CONTROL MSG LIST CONLIST SYMLIST NOFLUSH
ELSE CONTROL NOMSG NOLIST NOFLUSH NOPROMPT
IF &HELP = HELP THEN GOTO HELPSEC
/**********************************************************************
/* UTILITY : TBINFO                                                   *
/* AUTHOR : DAVID LEIGH                                               *
/* FUNCTION : LOAD INFORMATION ABOUT A TABLE INTO A FILE TO BE EDITED *
/*            OR READ PROGRAMATICALLY.                                *
/**********************************************************************

ISPEXEC TBSTATS &TABLE CDATE(CDATNAME)    CTIME(CTIMNAME)    +
                       UDATE(UDATNAME)    UTIME(UTIMNAME)    +
                       USER(USERNAME)     ROWCREAT(RCRTNAME) +
                       ROWCURR(RCURNAME)  ROWUPD(RUPDNAME)   +
                       TABLEUPD(TUPDNAME) SERVICE(SERVNAME)  +
                       RETCODE(RETCNAME)  STATUS1(STA1NAME)  +
                       STATUS2(STA2NAME)  STATUS3(STA3NAME)

IF &STR(&CDATNAME) =     THEN +
    DO
        ISPEXEC TBSTATS &TABLE CDATE(CDATNAME)    CTIME(CTIMNAME)    +

                               UDATE(UDATNAME)    UTIME(UTIMNAME)    +
                               USER(USERNAME)     ROWCREAT(RCRTNAME) +
                               ROWCURR(RCURNAME)  ROWUPD(RUPDNAME)   +
                               TABLEUPD(TUPDNAME) SERVICE(SERVNAME)  +
                               RETCODE(RETCNAME)  STATUS1(STA1NAME)  +
                               STATUS2(STA2NAME)  STATUS3(STA3NAME)  +
                               LIBRARY(ISPPROF)
        IF &STR(&CDATNAME) =     THEN +
            DO
                SET ZEDLMSG = &STR(*** TABLE "&TABLE" NOT FOUND ***)
                ISPEXEC SETMSG MSG(UTLZ001)
                EXIT CODE(8)
            END
        ELSE +
            DO
                ISPEXEC TBOPEN &TABLE NOWRITE SHARE LIBRARY(ISPPROF)
                SET OPENCC = &LASTCC
                ISPEXEC SELECT CMD(%FINDMOD &TABLE ISPPROF BATCH)
                IF &LASTCC = 0 THEN +
                    DO
                        ISPEXEC VGET DSN SHARED
                        SET XUTFILE = &STR(PHYSICAL TABLE LOCATION: +
                                           &DSN)
                    END
            END
    END
ELSE +
    DO
        ISPEXEC TBOPEN &TABLE NOWRITE SHARE
        SET OPENCC = &LASTCC
        ISPEXEC SELECT CMD(%FINDMOD &TABLE ISPTLIB BATCH)
        IF &LASTCC = 0 THEN +
            DO
                ISPEXEC VGET DSN SHARED
                SET XUTFILE = &STR(PHYSICAL TABLE LOCATION: &DSN)
            END
    END

SET TEMPFILE = &STR(&SYSUID..TEMP.TBINFO.&TABLE)
FREE DDNAME(OUTFILE)
DELETE '&TEMPFILE'
ALLOC DD(OUTFILE) DSN('&TEMPFILE') +
                  NEW CATALOG +
                  UNIT(SYSDA) VOLUME(WRK$$$) +
                  SPACE(1,1) TRACKS RELEASE +
                  RECFM(F B) LRECL(80) BLKSIZE(23440) DSORG(PS)

OPENFILE OUTFILE OUTPUT

ISPEXEC TBQUERY &TABLE KEYS(TBKEYS) +
                       NAMES(TBNAMES) +
                       ROWNUM(TBROWNUM) +
                       KEYNUM(TBKEYNUM) +
                       NAMENUM(TBNAMNUM) +
                       POSITION(TBCRPNAM)

IF &STR(&TBKEYS) >    THEN +
    DO
        SET A = &LENGTH(&STR(&TBKEYS))
        SET A = &A - 1
        SET SYSDVAL = &SUBSTR(2:&A,&STR(&TBKEYS))
    END

IF &STR(&TBNAMES) >   THEN +
    DO
        SET A = &LENGTH(&STR(&TBNAMES))
        SET A = &A - 1
        IF &STR(&SYSDVAL) >     THEN +
            SET SYSDVAL = &STR(&SYSDVAL &SUBSTR(2:&A,&STR(&TBNAMES)))
        ELSE +
            SET SYSDVAL = &SUBSTR(2:&A,&STR(&TBNAMES))
    END

READDVAL F1  F2  F3  F4  F5  F6  F7  F8  F9  F10 +
         F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 +
         F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 +
         F31 F32 F33 F34 F35 F36 F37 F38 F39 F40 +
         F41 F42 F43 F44 F45 F46 F47 F48 F49 F50 +
         F51 F52 F53 F54 F55 F56 F57 F58 F59 F60 +
         F61 F62 F63 F64 F65 F66 F67 F68 F69 F70 +
         F71 F72 F73 F74 F75 F76 F77 F78 F79 F80 +
         F81 F82 F83 F84 F85 F86 F87 F88 F89 F90 +
         F91 F92 F93 F94 F95 F96 F97 F98 F99 F100

SET OUTFILE = &STR(&XUTFILE)
PUTFILE OUTFILE
SET OUTFILE = &STR(NUMBER OF KEY FIELDS: &TBKEYNUM)
PUTFILE OUTFILE
SET I = 1
DO &I = &I TO &TBKEYNUM
    SET X = &&F&I
    SET OUTFILE = &STR(FIELD NAME &I (KEY): )&X
    PUTFILE OUTFILE
END
SET OUTFILE = &STR(NUMBER OF NAME FIELDS: &TBNAMNUM)
PUTFILE OUTFILE
DO &I = &I TO &TBNAMNUM
    SET X = &&F&I
    SET OUTFILE = &STR(FIELD NAME &I.: )&X
    PUTFILE OUTFILE
END
SET OUTFILE = &STR(TOTAL NUMBER OF FIELDS: &EVAL(&TBNAMNUM + &TBKEYNUM))
PUTFILE OUTFILE
SET OUTFILE = &STR(ROW CURRENTLY BEING POINTED TO: &TBCRPNAM)
PUTFILE OUTFILE
SET OUTFILE = &STR(CREATION DATE: &CDATNAME)
PUTFILE OUTFILE
SET OUTFILE = &STR(CREATION TIME: &CTIMNAME)
PUTFILE OUTFILE
SET OUTFILE = &STR(LAST UPDATE DATE: &UDATNAME)
PUTFILE OUTFILE
SET OUTFILE = &STR(LAST UPDATE TIME: &UTIMNAME)
PUTFILE OUTFILE
SET OUTFILE = &STR(LAST UPDATE USER: &USERNAME)
PUTFILE OUTFILE
SET OUTFILE = &STR(INITIAL ROW COUNT: &RCRTNAME)
PUTFILE OUTFILE
SET OUTFILE = &STR(CURRENT ROW COUNT: &RCURNAME)
PUTFILE OUTFILE
SET OUTFILE = &STR(NUMBER OF UPDATED ROWS: &RUPDNAME)
PUTFILE OUTFILE
SET OUTFILE = &STR(NUMBER OF TIMES TABLE HAS BEEN UPDATED: &TUPDNAME)
PUTFILE OUTFILE
SET OUTFILE = &STR(LAST TABLE SERVICES COMMAND: &SERVNAME)
PUTFILE OUTFILE
SET OUTFILE = &STR(LAST TABLE SERVICES RETURN CODE: &RETCNAME)
PUTFILE OUTFILE
SET OUTFILE = &STR(TABLE STATUS IN INPUT LIBRARY: &STA1NAME)
PUTFILE OUTFILE
SET OUTFILE = &STR(TABLE STATUS IN THIS LOGICAL SCREEN: &STA2NAME)
PUTFILE OUTFILE
SET OUTFILE = &STR(TABLE STATUS FOR WRITE MODE USE: &STA3NAME)
PUTFILE OUTFILE

IF &OPENCC = 0 THEN ISPEXEC TBEND &TABLE

CLOSFILE OUTFILE
FREE DD(OUTFILE)
ISPEXEC EDIT DATASET('&TEMPFILE')

EXIT

HELPSEC: +                                                              02480000
ISPEXEC SELECT PGM(ISPTUTOR) PARM(HELPSHEL)                             02490000
SET ZEDLMSG = &STR(*** HELP DISPLAYED FOR TBINFO UTILITY +              02490000
                   *** NO PROCESSING PERFORMED ***)                     02490000
ISPEXEC SETMSG MSG(UTLZ000)                                             02490000
EXIT