• Subject: Re: Checking lots of Queries for a field
  • From: "Ron Hudson" <roxrhud@xxxxxxxxxx>
  • Date: Wed, 27 Oct 1999 16:47:07 -0400




I had the same need.  With the DMPSYSOBJ hint, I threw this together.
So far, it seems to meet my needs.  Hope it's helpful.


Ron Hudson
Ron.Hudson@colaik.com
Collins & Aikman



/*********************************************************************/
/* UTE015C                                                           */
/*  Call this pgm w/ a parm of lib and string.                       */
/*  A report will be printed showing all queries containing the      */
/*  string.                                                          */
/* Note:                                                             */
/*  The string cannot contain any blanks!                            */
/*********************************************************************/
             PGM        PARM(&LIB &STRNG)
             DCLF       *LIBL/QADSPOBJ
             DCL        &LIB   *CHAR 10
             DCL        &STRNG *CHAR 20

             CHKOBJ     QTEMP/OBJDMP *FILE
             MONMSG     MSGID(CPF9801) EXEC( +
             CRTPF      QTEMP/OBJDMP RCDLEN(132))
             CHGPF      FILE(QTEMP/OBJDMP) SIZE(*NOMAX)

             CPYSPLF    QPSRVDMP QTEMP/OBJDMP MBROPT(*ADD)
             MONMSG     MSGID(CPF3309) EXEC(DO)
             GOTO       ITSOK
             ENDDO

             SNDMSG     MSG('This utility cannot be used when +
                          QPSRVDMP spool files exists') +
                          TOUSR(*REQUESTER)
             GOTO       THATSALL

 ITSOK:      DSPOBJD    &LIB/*ALL *QRYDFN OUTPUT(*OUTFILE) +
                                      OUTFILE(QTEMP/QRYS)
             OVRDBF     FILE(QADSPOBJ) TOFILE(QTEMP/QRYS)

 READIT:     RCVF       RCDFMT(QLIDOBJD) WAIT(*YES)

             MONMSG     MSGID(CPF0864) EXEC(GOTO CMDLBL(SCANIT))

             DMPSYSOBJ OBJ(&ODOBNM) CONTEXT(&LIB) OBJTYPE(*QRYDFN)

             CPYSPLF    QPSRVDMP TOFILE(QTEMP/OBJDMP) MBROPT(*ADD)
             DLTSPLF    QPSRVDMP

             GOTO       READIT

 SCANIT:     CALL UTE015C2 &STRNG

 THATSALL:   RCLRSC
             CLRPFM QTEMP/OBJDMP
             ENDPGM
___________________________________________________________________________
______

/*********************************************************************/
/* UTE015C2                                                          */
/*  Called from UTE015C                                              */
/* Before compiling this pgm,                                        */
/*  CRTPF FILE(*libl/OBJDMP) RCDLEN(132)                             */
/*  After compiling, DLTF *libl/OBJDMP                               */
/*********************************************************************/
             PGM        &STRNG
             DCLF       OBJDMP
             DCL        &STRNG   *CHAR 20
             DCL        &QRY     *CHAR 10
             DCL        &OBJDMP  *CHAR 132
             DCL        &PRTD    *CHAR 1
             DCL        &CURDAT  *CHAR 6
/* QCLSCAN VARS */
             DCL        &STRLEN  *DEC  LEN(3 0) VALUE(132)
             DCL        &STRPOS  *DEC  LEN(3 0) VALUE(1)
             DCL        &PATLEN  *DEC  LEN(3 0)
             DCL        &TRANS   *CHAR LEN(1)
             DCL        &TRIM    *CHAR LEN(1)
             DCL        &WILD    *CHAR LEN(1)
             DCL        &RESULT  *DEC  LEN(3 0) VALUE(1)

             CHGVAR     &PATLEN 1
             CALL       QCLSCAN PARM(&STRNG &STRLEN &STRPOS +
                          ' ' &PATLEN &TRANS &TRIM &WILD &RESULT)
             CHGVAR     &PATLEN &RESULT

             RTVJOBA    DATE(&CURDAT)
             LPRINT     DATA('UTE015C - Queries contaning string ' +
                          *cat &STRNG *CAT '     ' *CAT &CURDAT)
 READIT:     RCVF       RCDFMT(OBJDMP) WAIT(*YES)
             MONMSG     MSGID(CPF0864) EXEC(GOTO CMDLBL(THATSALL))

             IF         (%SST(&OBJDMP 1 4) = 'OBJ-') THEN(DO)
             CHGVAR     &QRY (%SST(&OBJDMP 6 10))
             CHGVAR     &PRTD '0'
             GOTO       READIT
             ENDDO

             IF         (&PRTD = '1') THEN(GOTO READIT)

             CALL       QCLSCAN PARM(&OBJDMP &STRLEN &STRPOS +
                          &STRNG &PATLEN &TRANS &TRIM &WILD &RESULT)
             IF         (&RESULT > 0) THEN(DO)
             LPRINT     &QRY
             CHGVAR     &PRTD '1'
             ENDDO

             GOTO READIT

 THATSALL:   RCLRSC
             ENDPGM
___________________________________________________________________________
______

From: Allen, Stuart

> Does anyone have a routine that lets you scan a load of Query definitions
> for a particular field, a la option 25 in PDM?


+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.