Using QMF

Topics:

The example in this section illustrates how QMF can access VSAM data using the Extender for Db2, by:

Run-time CLIST

This sample run-time CLIST sets the run-time environment for QMF and the Extender for Db2. This CLIST is provided at qualif.HOME.DATA(EXTCQMF).

/*-------------------------  REXX  -------------------------------*   
 * Purpose: Sample CLIST to run QMF with the Extender             * 
 *                                                                * 
 * Pass the following parameters at invocation:                   *     
 *      qualif   High level qualifier for DB2 Extender datasets.  *      
 *      db2hlq   High level qualifier for DB2 Libraries.          *  
 *      qmfhlq   High level qualifier for QMF Libraries.          *  
 *      dbss     DB2 Subsytem name.                               *          
 *----------------------------------------------------------------*/    
 parse upper arg qualif db2hlq qmfhlq dbss    
 "ALLOC FI(DSQLLIB) DA('"qualif".HOMEEXT.LOAD'," ,        
                      "'"qualif".HOME.LOAD'," ,           
                      "'ISP.SISPLOAD',"       ,           
                      "'"qmfhlq".SDSQLOAD',"    ,         
                      "'"db2hlq".SDSNEXIT',"    ,         
                   "'"db2hlq".SDSNLOAD') SHR REUSE"    
 "ALLOC FI(ADMCDATA) DA('GDDM.SADMCDA')      SHR REUSE" 
 "ALLOC FI(ADMDEFS)  DA('GDDM.ADMDEFS')      SHR REUSE"  
 "ALLOC FI(ADMGDF)   DA('GDDM.SADMGDF')      SHR REUSE"  
 "ALLOC FI(ADMSYMBL) DA('GDDM.SADMSYM')      SHR REUSE"     
 "ALLOC FI(ADMCFORM) DA('"qmfhlq".SDSQCHRT') SHR REUSE"    
 "ALLOC FI(ADMGGMAP) DA('"qmfhlq".SDSQMAPE') SHR REUSE"    
 "ALLOC FI(DSQPNLE)  DA('"qmfhlq".DSQPNLE')  SHR REUSE"     
 "ALLOC FI(DSQEDIT) NEW UNIT(SYSALLDA) CYL SPACE(1 1)    
        DSORG(PS) RECFM(F B A) LRECL(79) BLKSIZE(4029)"     
 "ALLOC FI(DSQDEBUG) DA(*)                  SHR REUSE"     
 "ALLOC FI(DSQPRINT) DA(*)                  SHR REUSE"     
 "ALLOC F(EDADPDS) DUMMY SHR"                         
            /* copy EDAENV contents from sample EXTJQMF jcl */ 
 "ALLOC F(EDAENV)   DA('"qualif".EDAENV')   SHR REUSE"  
            /* copy EDACS3 contents from sample EXTJQMF jcl */ 
 "ALLOC F(EDACS3)   DA('"qualif".EDACS3')   SHR REUSE" 
 /* "ALLOC F(EDAPARMS) DA('"qualif".EDAPARMS') SHR REUSE" */    
              /* copy IBITRACE contents from sample EXTJQMF jcl */  
 "ALLOC F(IBITRACE) DA('"qualif".IBITRACE') SHR REUSE"      
 "ALLOC F(FSTRACE) SYSOUT(X) RECFM(F) LRECL(132) BLKSIZE(132)" 
                                                                                
 "ALTLIB ACT APPL(CLIST) DA('"qmfhlq".SDSQCLTE')"  
 "ALTLIB ACT APPL(EXEC)  DA('"qmfhlq".SDSQEXCE')"    
 address ispexec "LIBDEF ISPLLIB LIBRARY ID(DSQLLIB) STACK"  
 address ispexec "LIBDEF ISPMLIB DATASET ID('"qmfhlq".SDSQMLBE') STACK" 
 address ispexec "LIBDEF ISPPLIB DATASET ID('"qmfhlq".SDSQPLBE') STACK" 
 address ispexec "LIBDEF ISPSLIB DATASET ID('"qmfhlq".SDSQSLBE') STACK"  
                     /* QMF invocation */    
 address ispexec "SELECT PGM(DSQQMFE) NEWAPPL(DSQE) PASSLIB NOCHECK  
                  SCRNAME(QMF) PARM(DSQSSUBS="dbss")" 
 address ispexec "LIBDEF ISPLLIB"   
 address ispexec "LIBDEF ISPMLIB"     
 address ispexec "LIBDEF ISPPLIB"     
 address ispexec "LIBDEF ISPSLIB"    
 "ALTLIB DEACT APPL(EXEC)"       
 "ALTLIB DEACT APPL(CLIST)"     
 "FREE FI(ADMCDATA ADMCFORM ADMGDF   ADMDEFS  ADMSYMBL ADMGGMAP)"  
 "FREE FI(DSQDEBUG DSQEDIT  DSQLLIB  DSQPNLE  DSQPRINT EDADPDS)"     
 "FREE FI(EDAENV   EDACS3   EDAPARMS IBITRACE FSTRACE)"

The SQL SELECT Statement

This screen displays a simple SQL SELECT statement. This is a query that a user would typically enter in QMF.

SQL QUERY                                            LINE 1
 
 
SELECT * FROM EDASERVE.X.VPARTINV
 
 
*** END ***
 
 
1=Help   2=Run    3=End     4=Print     5=Chart       6=Draw
7=Backward  8=Forward  9=Form  10=Insert   11=Delete   12=Report
 OK, QUERY is displayed.
 
COMMAND ===>
SCROLL ===> PAGE

The Data Returned to QMF

This sample QMF screen shows the requested data returned to the client.

REPORT                                   LINE 1      POS 1     79
 
 
 NINTPART    NAMEPART    QHELDINV     QAVALINV    UNIT  NVENPART
-----------  ----------  -----------  ---------   ---- ----------
          1  Screw                 0        900     EA       1001
         10  Glue                  0         80     EA       7006
         23  Globe Frame           0         30     EA       8002
        111  Sphere                0         33     EA       7005
        112  Axis Pin              0         40     EA       1005
        113  Wing Nut              0         60     EA       8005
        150  White Board           0         15     EA       4002
        151  Slate Board           0         25     EA       4003
        226  Short Leg             0        160     EA       2002
        227  Tall Leg              0        100     EA       3002
        300  Tray                  0         35     EA       5002
        462  Table Top             0         28     EA       6004
        554  Frame                 0         40     EA       7003
 
 1=Help     2=       3=End    4=Print       5=Chart      6=Query
 7=Backward  8=Forward  9=Form   10=Left     11=Right       12=
 OK, this is the REPORT from your RUN command.
 COMMAND ===>
 SCROLL ===> PAGE

WebFOCUS

Feedback