現在3つのプログラムに取り組んでいます。プログラム A は、物理ファイル ECIFCTP を SHARE(*YES) でオーバーライドし、RPG プログラム B を呼び出してそれを処理する CL です。処理プログラム B がプログラム C を呼び出した後、別の CL がこの物理ファイルで照会ファイルを開き、レコードをフィルターで除外します。実際にプログラムを実行すると、プログラム C の OPNQRYF ステートメントによって、エラー メッセージ CPF417A「メンバー ECIFCTP のオープンに対して null 対応フィールドの処理は有効ではありません」が発生します。なぜこれが起こったのですか?それを避ける方法は?
質問する
1258 次
1 に答える
3
とオープン データ パスを共有していますSHARE(*YES)
。オープン パラメーターは、共有オープン データ パスにアクセスするすべてのプログラムで同じでなければなりません。
この場合、プログラム B とプログラム C のALWNULL設定は同じではありません。
CL での設定は、DCLFステートメントにあります。例えば:DCLF ... ALWNULL(*YES)
于 2012-09-05T15:17:37.603 に答える