新規投稿 記事一覧 ホーム
●ご利用方法,ご利用に際しての規約はこちらをお読みください。
こちらからの投稿は、先頭に表示されているコメントへの返信になります。
OPNQRYFについて Rookie さん [ 12月22日(木) 17時12分 ]

    CLP初心者です。

    現在、下記のようなCLPを作成しております。
    @DSPOBJDでファイル情報一覧を書き出す。
    AOPENQRYFを使用し、上記@で作成されたファイルの「オブジェクト名」項目をキーとし、をRPGプ
    ログラムから渡されたパラメータで検索する。
    B該当のオブジェクト(物理ファイル)を別のライブラリにコピーする。

    そこで、OPENQRYFのQRYSLTでエラーになってしまいます。
    「エラー内容はオペランドがありません」です。
    おそらく、「オブジェクト名」とパラメータを比較しておりますが、パラメータがオペランドとして
    認識していないような気がします。

    ソースを以下に記載しますので、ご教授頂きたく、よろしくお願い致します。

    /*********************************************************************/
                 PGM        PARM(&PARM01)

                 DCL        VAR(&PARM01) TYPE(*CHAR) LEN(256) /* パラメータ */
                 DCL        VAR(&VAND) TYPE(*CHAR) LEN(8) 
                 DCLF       FILE(CDBFVAN/WDBFVAN) RCDFMT(QLIDOBJD)

                 CHGVAR     VAR(&VAND) VALUE(%SST(&PARM01 101 8))

                 /*ライブラリー・リスト変更*/
                 CHGLIBL    LIBL(QTEMP CDBFVAN CSAVVAN COBJLIB EVXDBLIB +
                              QEVX QGPL QAPS)

                 DLTF       FILE(QTEMP/WDBFVAN)

                 MONMSG     MSGID(CPF0000)

                 DSPOBJD    OBJ(CDBFLIB/*ALL) OBJTYPE(*FILE) +
                              OUTPUT(*OUTFILE) OUTFILE(QTEMP/WDBFVAN)

                 OVRDBF     FILE(WDBFVAN) TOFILE(QTEMP/WDBFVAN) SHARE(*YES)

                 OPNQRYF    FILE((QTEMP/WDBFVAN *FIRST *ONLY)) +
                              OPTION(*INP) QRYSLT('%SST(ODOBNM 3 8) *LE +
                              &VAND') KEYFLD((ODOBNM *ASCEND *N))

       @READ:      RCVF       RCDFMT(QLIDOBJD)
                   MONMSG     MSGID(CPF0864) EXEC(GOTO CMDLBL(@EOF))

                 CPYF       FROMFILE(CDBFVAN/&ODOBNM) +
                              TOFILE(CSAVVAN/&ODOBNM) CRTFILE(*YES)

                 GOTO       CMDLBL(@READ)

     @EOF:       CLOF       OPNID(WDBFVAN)
                   DLTOVR     FILE(*ALL)

                 ENDPGM

    RE:OPNQRYFについて UTU さん [ 12月26日(月) 18時12分 ]

      OPNQRYFコマンドの QRYSLTに指定するQUERY選択式で
      「オペランドがありません」とエラーが発生するということであれば
      QUERY選択式の内容でエラーが発生しているのは間違いないでしょう。
      例えば%SSTの変数と比較している変数の属性は数値項目なのか、文字項目なのか
      わかりませんが、&VANDをダブルクォーテーションで囲む等してみてはどうでしょうか。

      RE:OPNQRYFについて Rookie さん [ 12月27日(火) 11時18分 ]

        ご回答ありがとうございます。

        ご指摘頂いたとおり、""で囲いましたが結果は同じでした。
        また、下記サイトに文字項目の変数は「"'|<」で囲む例がありましたので、実施したところエラーはな
        なくなりましたが、本当に比較できているかどうか不明です。
        この囲い方は正式なものなのでしょうか。ご存知でしたらご教授下さい。

        参考URL:http://iseries.fc2web.com/logic/cycle3.html

お名前
パスワード
e-mailアドレス
タイトル
ホームページ
アドレス