|
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 |