DTAARA キーワード
DTAARA キーワードの構文は、自由形式仕様書と固定形式仕様書で異なります。
- 自由形式の独立フィールドまたはサブフィールド
- DTAARA {(名前) }
フィールドまたはサブフィールドの自由形式 DTAARA キーワードを参照してください。
- 自由形式のデータ構造
- DTAARA { { (名前) } { *AUTO } { *USRCTL }}
データ構造の自由形式 DTAARA キーワードを参照してください。
- 固定形式
- DTAARA {({*VAR:} データ域名 ) }
固定形式 DTAARA キーワードを参照してください。
注:
引用符で囲まれていない名前がどのように扱われるのかは、自由形式定義と固定形式定義とで異なります。
DTAAARA(name) キーワードを例にとって説明します。
これが自由形式定義の中にある場合、name は、
名前付き定数または変数の名前であると想定され、
その名前付き定数または変数は、実行時にデータ域の名前を保持します。
これが固定形式定義の中にある場合、*LIBL/NAME が実行時のデータ域の名前
であると想定されます。
引用符で囲まれていない名前がどのように扱われるのかは、自由形式定義と固定形式定義とで異なります。
DTAAARA(name) キーワードを例にとって説明します。
これが自由形式定義の中にある場合、name は、
名前付き定数または変数の名前であると想定され、
その名前付き定数または変数は、実行時にデータ域の名前を保持します。
これが固定形式定義の中にある場合、*LIBL/NAME が実行時のデータ域の名前
であると想定されます。
DTAARA キーワードは、独立フィールド、データ構造、データ構造サブフィールド 、またはデータ域データ構造を外部データ域と関連づけるために使用されます。 DTAARA キーワードは、*DTAARA DEFINE 命令コードと同じ機能を 持っています (*DTAARA DEFINEを参照)。
DTAARA キーワードはメイン・ソース・セクションでのみ使用することができます。 サブプロシージャーでは使用できません。
3 種類のデータ域を作成することができます。
- *CHAR 文字
- *DEC 数値
- *LGL 論理
さらに、リモート・システム上の上記の 3 つのタイプのいずれかのデータ域を 指し示す DDM データ域 (タイプ *DDM) も作成することができます。
データ域に関連付けることができるのは、文字タイプ、数値タイプ (浮動数値を除く)、
および標識タイプのみです。システム上の実際のデータ域は、プログラム内のフィールドと同じタイプ
で、長さと小数点以下の桁数も同じでなければなりません。 標識フィールドは論理データ域または文字データ域と
関連付けることができます。
データ域に他のタイプを保管する場合、
そのデータ域のデータ構造を使用することができ、さらにポインター以外の任意のタイプのサブフィールド
をコーディングすることができます。 ポインターはデータ域には保管できません。
リテラルまたは変数でデータ域の名前を指定する
値は次のいずれの形式でも指定できます。
dtaaraname
libname/dtaaraname
*LIBL/dtaaraname
注:
- ライブラリー名として *CURLIB は指定できません。
- ライブラリー名の指定なしにデータ域名を指定した場合は、*LIBL が使用されます。
名前の大文字小文字は正確でなければなりません。例えば、
データ域の名前が変数に入っていて、その変数の
値が 'qtemp/mydta' である場合、データ域は検出されません。値は 'qtemp/mydta' ではなく、
'QTEMP/MYDTA' でなければなりません。
重要:
データ域データ構造の
名前に変数を指定する場合、この変数にはプログラム開始前に値が設定されている必要があります。
この値は、変数を初期化して入り口パラメーターとして渡すか、または IMPORT キーワードおよび EXPORT キーワードを使用して、変数を別のプログラムと共用すること
で、設定することができます。
データ域データ構造の
名前に変数を指定する場合、この変数にはプログラム開始前に値が設定されている必要があります。
この値は、変数を初期化して入り口パラメーターとして渡すか、または IMPORT キーワードおよび EXPORT キーワードを使用して、変数を別のプログラムと共用すること
で、設定することができます。