自由形式データ構造定義での DTAARA キーワードのパラメーターは、次のとおりです。
- *AUTO
- データ構造はデータ域データ構造です。
*AUTO が指定されていて、データ域を IN、OUT、または UNLOCK 命令コードで
使用したい場合は、*USRCTL パラメーターも指定する必要があります。
- *USRCTL
- データ構造はユーザー制御データ域です。つまり、
IN、OUT、または UNLOCK 命令コードで使用することができます。
*AUTO パラメーターが指定されていない場合、*USRCTL がデフォルトです。
データ構造に名前がない場合、
データ構造が影響を受ける可能性があるのは、IN、OUT、または UNLOCK 命令のオペランド
が *DTAARA である (これは、命令がモジュール内のすべてのユーザー制御データ域を使用して処理を行うことを
意味しています) 場合のみです。
- データ域名
- 名前パラメーターは、リテラル、名前付き定数、または変数とすることができます。
詳しくは、リテラルまたは変数でデータ域の名前を指定するを参照してください。名前パラメーターを指定する場合は、それが最後のパラメーターである必要があります。
名前パラメーターが指定されていない場合、データ構造名が使用されます。
データ構造名も指定されていない場合は、実行時に *LDA データ域が使用されます。
例
次の例では、データ域の定義には *AUTO パラメーターのみが指定されています。したがって、これはデータ域データ構造です。
これを IN、OUT、または UNLOCK 命令コードで使用することはできません。
名前は指定されていないため、データ域 *LIBL/MYDTAARA が実行時に使用されます。
DCL-DS info DTAARA(*AUTO);
company CHAR(50);
city CHAR(25);
END-DS;
次の例では、データ域は *AUTO および *USRCTL の両方のパラメーターを指定して定義されています。
したがって、これはデータ域データ構造であり、IN、OUT、または UNLOCK 命令コードで使用することもできます。
名前パラメーターが指定されているため、データ域 'MYLIB/MYDTAARA' が実行時に使用されます。
DCL-DS info DTAARA(*AUTO : *USRCTL : 'MYLIB/MYDTAARA');
company CHAR(50);
city CHAR(25);
END-DS;
次の例では、データ域は名前を指定せずに定義されています。
DTAARA キーワードには *AUTO パラメーターのみが指定されています。
データ域名はデータ構造名にも DTAARA キーワードにも指定されていないため、
*LDA データ域が実行時に使用されます。
DCL-DS *N DTAARA(*AUTO);
company CHAR(50);
city CHAR(25);
END-DS;
次の例では、データ構造には名前がなく、
DTAARA キーワードに *AUTO パラメーターは使用されていません。
IN 命令は *DTAARA を指定しています。したがって、実行時に IN 命令が使用されると、
名前のないデータ域にデータ域 MYLIB/MYDTAARA が読み込まれます。
IN 命令の実行後、サブフィールド
subf に、データ域の内容が保持されます。
DCL-DS *N DTAARA('MYDTAARA');
subf CHAR(50);
END-DS;
IN *DTAARA;
DSPLY subf;