質問

ここに私の状況は次のとおりです。

:私はこのようになりますプログラムAを持っています
Fmfile     IF   E           K DISK    USROPN
d grue            s                   like(dhseqn)
d
C     *ENTRY        PLIST
C                   PARM                    grue
c                   open      mfile
c*** do something with grue
c                   close     mfile
c                   eval      *inlr = *on

dhseqn 2,0 Sフィールドです。

コンパイルは、この番組に私を一覧表示します

 *RNF7031 DHSEQN            P(2,0)                 000200     1000002D
          GRUE              P(2,0)                 000200D     000500M     000700      000800M
                            BASED(_QRNL_PRM+)

私は2,0 Sとして宣言されたパラメータを指定してプログラムAを呼び出したときに、私は小数点データのエラーを取得します。

は、これが期待されている、またはこれはコンパイラのバグ?

であります
役に立ちましたか?

解決

(でもILE前)RPGコンパイラは、パックにデータベースフィールドを変換します。時には、あなたがデータ構造にそれを使用する場合、それは、例えば、ゾーン型ファイルフィールドはゾーニングままになりませんが、同じファイルのすべてのゾーンに分けフィールドは、あなたがパックになりますしません。

見つけることができます あなたが本当にファイルのフィールドから同様に必要がある場合は、

、それはゾーニング保つためにダミーデータ構造を定義します。

でも式や定数を受け入れ、自分のエントリのパラメータが変更されていない場合であっても良く、のconstキーワードでプログラムのプロトタイプでそれを定義し、型は自動的に変換されます!

ここで、<本当に良い記事です/ A>プロシージャのプロトタイプと自動変換上のConstを使用しておよそます。

他のヒント

の 'grueの定義では、データ型を参照し、むしろ「スタンドアロン」フィールドとして定義されません。 grueのデータ型は、コンパイルがP(2,0)として番組をリストLIKE(dhseqn)として指定されます。

scroll top