5.3.*QRYDFNの定義の取り出し方 | |||||||||
|
*QRYDFNのファイル情報は、今のところ手軽なソフトがありません。DMPOBJを*QRYDFNに対してすると、リストの中に参照ファイルがある事が分かります。これをコマンド化していないのはIBMのチョンボです。以前NewsGroupで問い合わせたところ、以下のプログラムを使え、というメールが届きました。そう言えば、このプログラム聞いたことがあります。以下は、このRTVQRYFの使い方です。(このプログラムはMIプログラムなので、よく分かりません。多分、オブジェクト記述内のファイル情報から取り出しているのでしょう。
作成方法
利用方法この作成されたプログラムは、いわば検索のエンジンそのもの、もっとわかりやすく言うと、外部サブルーチンとなります。 (載せていいのか分からないけど、参考に、上記ソースに入っているコメントを引用します)
パラメータは全部で、5個ですね。一つの*QRYDFNの定義されたファイル名を、一気に戻してきます。 ここに、このプログラムを利用したプログラムを紹介します。ファイルOBNSTMPはDSPPGMREFのOUTFILEでできるファイルです。そう、つまり、DSPPGMREF後に、このプログラムを実行すると、参照ファイルがQRYにもできるわけです。この程度、IBMがOSでサポートすべきだと思いませんか? H 1 Y/ 1
F******************************************************
F* D E F I N E F I L E S *
F******************************************************
FOBNSTMP O E DISK
E****************************************************
E* A R R A Y T A B L E *
E****************************************************
E INP 32 40 ;
I******************************************************
I* D E F I N E D A T A - S T R U C T U R E *
I******************************************************
IDSINP DS
I 11280 INP
IDSFIL DS
I 1 10 DSFILN
I 11 20 DSFILL
I 21 30 DSMBRN
I 31 40 DSRCDN
C******************************************************
C* DEFINITION MODULE ( PLIST FIELD KLIST ) *
C******************************************************
C* :
C* DEFINE ENTRY :
C* :
C *ENTRY PLIST :
C PARM PIQRY 10 :
C PARM PIQRYL 10 :
C******************************************************
C* M A I N - R O U T I N E
C******************************************************
C MOVE PIQRY POQRY :
C MOVE PIQRYL POQRYL :
C* :
C CALL 'RTVQRYF' :
C PARM POQRY 10 :
C PARM POQRYL 10 :
C PARM DSINP :
C PARM PIOUTF 30 :
C PARM PIERR 1 :
C* :
B001 C PIERR IFEQ *OFF :
001 C* :
B002 C 1 DO 32 II 30 :
B003 C INP,II IFNE *BLANK :
003 C MOVELDSINP DSFIL :
003 C MOVELPIQRY WHPNAM :
003 C MOVELPIQRYL WHLIB :
003 C MOVELDSFILN WHFNAM :
003 C MOVELDSFILL WHLNAM :
003 C MOVELDSRCDN WHRFNM :
003 C Z-ADD1 WHFUSG :
003 C MOVEL'F' WHOBJT :
003 C MOVEL'*FILE' WHOTYP :
003 C MOVEL'Q' WHSPKG :
003 C WRITEQWHDRPPR :
003 C CLEARQWHDRPPR :
E003 C END :
E002 C END :
001 C* :
B002 C PIOUTF IFNE '*NONE' :
002 C MOVELPIOUTF DSFIL :
002 C MOVELPIQRY WHPNAM :
002 C MOVELPIQRYL WHLIB :
002 C MOVELDSFILN WHFNAM :
002 C MOVELDSFILL WHLNAM :
|
|
You are at K's tips-n-kicks of AS/400
|
|
|||
|
|