割り当て演算子 (=) を指定した EVAL コマンドを使用してフィールドの値を変更する ことができます。
EVAL コマンドで使用されるフィールドの有効範囲は、QUAL コマンドを使用し て定義します。 しかし、ILE RPG モジュールに含まれるフィールドは すべてがグローバルな有効範囲なので、それらを特別に定義する必要はありません。
フィールドの値を変更するためには、デバッグ・コマンド行に
EVAL field-name = value
と入力します。field-name は変更したい変数の名前であり、 value は、変数 field-name に割り当てたい識別コード、リテラル、 または固定情報値です。 例えば
EVAL COUNTER=3
によって、COUNTER の値は 3 に変わり、また「モジュール・ソースの表示」画面のメッセージ行に
COUNTER=3 = 3
と表示されます。
EVAL デバッグ・コマンドを使用して、フィールドに数値、英字、および 英数字データを割り当ててください。 割り当て式で %SUBSTR 組み込み関数を使用することもできます。
文字フィールドに値を割り当てる時には、次の規則が適用されます。
UCS-2 フィールドの変更は、16 進定数を使用して行います。例えば 、%UCS2('AB') = U'00410042' であるため、デバッガー内で UCS-2 フィールドを 'AB' という UCS-2 形式に設定するためには、EVAL ucs2 = X'00410042' を使用します。
可変長フィールドは、例えば、EVAL varfldname = 'abc' を使用して割り当てることができます。これにより、フィールドの データ部分は 'abc' に、長さ部分は 3 に設定されます。データを変更せずに長さ部分 を設定するためには、長さを 16 進数値 (例えば、11 は X'000B') で表し、 EVAL %SUBSTR(varfldname 1 2) = X'000B' を使用します。
フィールドにリテラルを割り当てる時には、以下の通常の RPG 規則が適用されます。
変数の null 標識を変更するには、最外部の名前を _QRNU_NULL_name で置換して、変数自身にアクセスするときと同じ EVAL 式をデバッガーで使用します。
EVAL FLD1 = 3 EVAL _QRNU_NULL_FLD1 = '0' EVAL SUBF2 = 5 EVAL _QRNU_NULL_SUBF2 = '0' EVAL ARR(3) = 0 EVAL _QRNU_NULL_ARR(3) = '1' EVAL DS3.INFO(2).SUB4 = 'some value' EVAL _QRNU_NULL_DS3.INFO(2).SUB4 = '0'
ヌル可能フィールドのデバッグの詳細については、ヌル可能フィールドの表示を参照してください。
図 123 は、図 125 のソースに基づいてフィールドの値を 変更するいくつかの例を示します。 ソース・デバッガーのオンライン・ヘルプには追加の例も提供されています。
** ターゲットの長さ = ソースの長さ ** > EVAL String='123456' (6 文字) STRING='123456' = '123456' > EVAL ExportFld (6 文字) EXPORTFLD = 'export' > EVAL String=ExportFld STRING=EXPORTFLD = 'export' ** ターゲットの長さ < ソースの長さ ** > EVAL String (6 文字) STRING = 'ABCDEF' > EVAL LastName (10 文字) LASTNAME='Williamson' = 'Williamson' > EVAL String=LastName STRING=LASTNAME = 'Willia' ** ターゲットの長さ > ソースの長さ ** > EVAL String (6 文字) STRING = '123456' > EVAL TableA (3 文字) TABLEA = 'aaa' > EVAL String=TableA STRING=TABLEA = 'aaa ' ** %SUBSTR の使用 ** > EVAL BigDate BIGDATE = '1994-10-23' > EVAL String=%SUBSTR(BigDate 1 4) STRING=%SUBSTR(BIGDATE 1 4) = '1994 ' ** サブストリング・ターゲットの長さ > サブストリング・ソースの長さ ** > EVAL string = '123456' STRING = '123456' = '123456' > EVAL LastName='Williamson' LASTNAME='Williamson' = 'Williamson' > EVAL String = %SUBSTR(Lastname 1 8) STRING = %SUBSTR(LASTNAME 1 8) = 'Willia' ** サブストリング・ターゲットの長さ < サブストリング・ソースの長さ ** > EVAL TableA TABLEA = 'aaa' > EVAL String STRING = '123456' > EVAL String=%SUBSTR(TableA 1 4) サブストリングがストリングの終わりを超える。 ** エラー ** > EVAL String STRING = '123456'
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.