RPGコンパイラの変換は、P型にSを入力しますか?
-
26-09-2019 - |
質問
ここに私の状況は次のとおりです。
:私はこのようになりますプログラム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キーワードでプログラムのプロトタイプでそれを定義し、型は自動的に変換されます!
他のヒント
の 'grueの定義では、データ型を参照し、むしろ「スタンドアロン」フィールドとして定義されません。 grueのデータ型は、コンパイルがP(2,0)として番組をリストLIKE(dhseqn)として指定されます。
所属していません StackOverflow