Topics: |
The example in this section illustrates how QMF can access VSAM data using the Extender for Db2, by:
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)"
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 |
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 |