最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

5.3.*QRYDFNの定義の取り出し方

[ Previous ] [ HOME ] [ Upper ] [ Next ]


*QRYDFNのファイル情報は、今のところ手軽なソフトがありません。DMPOBJを*QRYDFNに対してすると、リストの中に参照ファイルがある事が分かります。これをコマンド化していないのはIBMのチョンボです。以前NewsGroupで問い合わせたところ、以下のプログラムを使え、というメールが届きました。そう言えば、このプログラム聞いたことがあります。以下は、このRTVQRYFの使い方です。(このプログラムはMIプログラムなので、よく分かりません。多分、オブジェクト記述内のファイル情報から取り出しているのでしょう。

 2002-5-18

このコマンドはセキュリティレベルが30までです。40以上の場合は、

Iseries Network.comのRetrieve Query File Information at Security Level 40+

を参考にしてください。

 

1998/6/13b_upd.gif (283 バイト)

実は、ちょっとしたことで、久しぶりにニューズグループにアクセスしたら、このプログラムを作成した方のコメントがあり、2点のバグを見つけたと出ていました。詳しく内容を聞くためメールを出したら、1時間もしないうちに返事が来ました。日本が朝8時くらいだと、むこうは夜9時過ぎくらいですね。ちょうどいい時間らしかったです。

  1. 彼自身は日付形式を*MDYで作っていたそうですが、イギリスの人が、このプログラムを修正したときに何か問題があったらしいとのこと。実は、彼自身もなにが起きるのかよく分からない、といっていました。日付形式に関する修正は、1,2週間内に行うそうです。
  2. アウトファイルが省略値のQQRYOUTの場合、おかしくなって、出たらめな内容が出るそうです。入力ファイルの内容は、正確だそうです。この修正は、リバースエンジニアリングを含むので、時間がかかるそうです。

よって、もし、一つでもQQRYOUTを使っているのならば、「出力ファイル」のデータは信じないでください。「入力ファイル」は大丈夫です。私のところでは、QQRYOUTは使ってませんので、問題有りませんでした。

ちなみにこのプログラムを作成してくれた人は、NEWS400のテクニカルエディターでした。

 

1998/10/17b_upd.gif (238 バイト)

年月日のエラーに関しては、以下のようにして下さい。これは、MIプログラムの作成APIのパラメータを修正するだけです。

     I            DS
     I                                        1  120TIMDAT
     I                                        1   6 HHMMSS
     I                                        7  10 MMDD
     I                                       11  12 YY
     C                     TIME           TIMDAT
     C                     MOVE '0'       #CENT
     C                     MOVE YY        #YY
     C                     MOVE MMDD      #MMDD
     C                     MOVE HHMMSS    #HMS          

早い話、このプログラムの作成者の、日付形式がMDYだったのです。もし、あなたがYMD形式ならば、DSの部分を修正して下さい。これで、作成エラーは起きません。

     I            DS
     I                                        1  120TIMDAT
     I                                        1   6 HHMMSS
     I                                        7   8 YY
     I                                        9  12 MMDD          

これが、一番修正が少ないと思います。TIME命令なので、ジョブの日付形式を参照しますね。

 

Description - Retrieve a list of files used by a Query/400 (*QRYDFN) object.

Retrieves input files and output file, if any. MI program (source code) which runs FAST, but you must be at security level 30 or below.

File Name - http://www.news400.com/sharewarefiles/rtvqryf.zip
Licensing - Freeware
System Type - AS/400
Submitted on - 20-Jan-97

作成方法

  1. QGPLにQMISRCをCRTSRCPFで作成する。レコード長は92で大丈夫です。
  2. 上記のソースを、解凍後、適当なRPG用ソースファイルにアップロードする。
    ※このとき、RTVQRYFという名前は避けたほうがいいのでは。このRPGをCALLすると、RTVQRYFというプログラムがQGPLに作成されるからです。
  3. ソース自体はRPGなので、CRTRPGPGMをしてCALLする。
  4. すると、QGPLにRTVQRYFというプログラムができる。

利用方法

この作成されたプログラムは、いわば検索のエンジンそのもの、もっとわかりやすく言うと、外部サブルーチンとなります。

(載せていいのか分からないけど、参考に、上記ソースに入っているコメントを引用します)

Program....... RTVQRYF  
Description... Retrieve list of files used by query
-------------------------------------------------------------
Parameter description                     Type      Length                                         
Query name (required)                     Character  10
Library containing query (Name required)  Character  10
Input file list structure                 Character  1280                                         

The 1280 byte file list structure is used to return the list of files used as input to the query. The structure is a 32 element array of 40 bytes. The format is a 10 byte file name, 10 byte library name, 10 byte member name and 10 byte record format name. The member name could be returned as special value *FIRST, in which case you must retrieve specific member name information if needed.

Output file structure                      Character  30                                         

The 30 byte output file structure is used to return the output file of the query. The format is a 10 byte file name, 10 byte library name and 10 byte member name. The member name could be returned as special value *FIRST or *FILE, in which case you must retrieve the specific member name information if needed.  If the query does  not produce an output file, special value *NONE will be returned at the beginning  of the structure.

Return code (0=Normal, 1=Abend)            Character  1                                         

パラメータは全部で、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           :
 002 C                     MOVELDSRCDN    WHRFNM           :b_debug.gif (341 バイト)1998/6/22
 002 C                     Z-ADD2         WHFUSG           :
 002 C                     MOVEL'F'       WHOBJT           :
 002 C                     MOVEL'*FILE'   WHOTYP           :
 002 C                     MOVEL'Q'       WHSPKG           :
 002 C                     WRITEQWHDRPPR                   :
 002 C                     CLEARQWHDRPPR                   :
E002 C                     END                             :
 001 C*                                                    :
E001 C                     END                             :
     C*                                                    :
     C                     MOVE *ON       *INLR            :
     C                     RETRN                           :  

[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送