SET コマンドを使用すれば、PL/I ファイルに関連付けられる データ・セットを識別する環境変数を設定できます。 さらにオプションで、そのデータ・セットの追加特性も指定できます。 環境変数から得られるこのような情報を、データ定義 (または、dd) 情報と呼びます。
DD:ddname 環境変数の構文は次のとおりです。
|
この構文ではブランクを使用することができます。 また、このステートメントの構文は、コマンド入力時にはチェックされません。 データ・セットのオープン時に、このステートメントの構文が検証されます。 構文に誤りがあれば、オン・コード 96 により UNDEFINEDFILE 条件が発生します。
代替 ddname を使用する場合に、その長さが 31 文字を超えるときは、最初の 31 文字だけが環境変数名に指定されます。
AMTHD オプションは、データ・セットのアクセスに使用するアクセス方式を指定します。
.-FSYS----. >>-AMTHD--(-+-DDM-----+-)-------------------------------------->< +-ISAM----+ +-BTRIEVE-+ '-REMOTE--'
Windows の場合、ファイルの名前は LU 別名または完全修飾 SNA ネットワーク名で修飾する必要があります。
AMTHD オプションを指定せず、次のいずれの ENVIRONMENT オプションも適用しない場合は、デフォルトで FSYS が使用されます。
上記オプションのいずれかを指定した場合、Windows では AMTHD(ISAM) がデフォルトになり、AIX では AMTHD(DDM) が デフォルトになります。
APPEND オプションにより、既存データ・セットが拡張されるのか、再作成されるのかが指定されます。
.-Y-. >>-APPEND--(-+-N-+-)-------------------------------------------><
APPEND オプションを適用できるのは、OUTPUT ファイルだけです。 したがって、次の場合、APPEND オプションは無視されます。
ASA オプションは、プリンター向けファイルに適用されるオプションです。このオプションは、各レコード内の ANS 制御文字が解釈されるときを指定します。
.-N-. >>-ASA--(-+-Y-+-)----------------------------------------------><
ファイルがプリンター向けファイルでない場合、このオプションは無視されます。プリンター向けファイルについては、プリンター向けファイルで説明します。
BUFSIZE オプションは、バッファーのバイト数を指定します。
|
RECORD 出力はデフォルト設定でバッファーに入り、BUFSIZE のデフォルト値 64k です。STREAM 出力もバッファーに入りますが、デフォルトによるのではありません。また、この場合、BUFSIZE のデフォルト値はゼロです。
BUFSIZE の値にゼロが指定されている場合は、バッファーのバイト数は、RECSIZE オプションまたは LRECL オプションで指定されている値と同じです。
BUFSIZE オプションが有効なのは、連続バイナリー・ファイルだけです。ファイルが端末入力に使用されている場合は、効率を上げるために、BUFSIZE に値をゼロを割り当てるべきです。
CHARSET オプションのこのバージョンは、レコード入出力を使用 する連続ファイルにだけ適用されます。このオプションにより、ユーザーは EBCDIC データ・ファイルを入力ファイルとして使用したり、出力ファイルの文字セットを指定することができます。
.-ASIS---. >>-CHARSET--(-+-EBCDIC-+-)------------------------------------->< '-ASCII--'
入力ファイルの形式、または出力ファイルにとらせたい形式に基づいて、CHARSET の サブオプションを選択してください。
CHARSET(ASIS) がデフォルトです。
CHARSET オプションのこのバージョンは、ストリーム入力ファイルおよびストリーム出力ファイルにだけ適用されます。このオプションにより、ユーザーは EBCDIC データ・ファイルを入力ファイルとして使用し たり、出力ファイルの文字セットを指定することができます。ストリーム入出力を使用しているときに ASIS を指定しようとしても、エラーは出されず、文字セットは ASCII として扱われます。
.-ASCII--. >>-CHARSET--(-+-EBCDIC-+-)-------------------------------------><
入力ファイルの形式、または出力ファイルにとらせたい形式 に基づいて、CHARSET のサブオプションを選択してください。
CHARSET(ASCII) がデフォルトです。
DELAY オプションは、システムがファイル・ロックやレコード・ロックを入手できない場合に 失敗した操作を再試行するまでの遅延の時間をミリ秒単位で指定します。
|
DELAY のデフォルト値は 0 です。
DELIMIT オプションは、入力ファイルにフィールド区切り文字が含まれているかどうかを指定します。フィールド区切り文字は、レコードのフィールドを分離するブランクかまたはユーザー定義文字です。このオプションを適用できるのは、ソート入力ファイルだけです。
.-N-. >>-DELIMIT--(-+-Y-+-)------------------------------------------><
ソート・ユーティリティー・プログラムは、フィールド区切り文字の有無により、テキスト・ファイルとバイナリー・ファイルを区別します。フィールド区切り文字が含まれている入力ファイルは、テキスト・ファイルとして処理され、区切り文字がない入力ファイルはバイナリー・ファイルと見なされます。この情報は、ライブラリーが正しいパラメーターを ソート・ユーティリティー・プログラムに渡すために必要です。
LRECL オプションは RECSIZE オプションと同じです。
|
LRECL が指定されておらず LINESIZE 値による暗黙指定 もされていない場合 (ただし TYPE(FIXED) ファイルを除く)、デフォルトは 1024 です。
LRMSKIP オプションを使用すると、ファイルがオープンされてから 最初の SKIP フォーマット項目が実行される ように、1 ページ目の n 行目 (n は PUT ステートメント または GET ステートメントの SKIP オプションで指定されている値) で 出力が開始されるようにすることができます。
.-N-. >>-LRMSKIP--(-+-Y-+-)------------------------------------------><
n がゼロまたは 1 の場合は、1 ページ目の 1 行目で出力が開始されます。
PROMPT オプションは、コロンを端末からのストリーム入力の プロンプトとして表示するかどうかを指定します。
.-N-. >>-PROMPT--(-+-Y-+-)-------------------------------------------><
PROMPT(N) がデフォルトです。
PUTPAGE オプションは、用紙送り文字の後ろに復帰文字を入れるかどうかを指定します。このオプションは、プリンター向けファイルにのみ適用されます。プリンター向けファイルは、PRINT 属性を指定して宣言された ストリーム出力ファイル、あるいは、CTLASA 環境オプションを 指定して宣言されたレコード出力ファイルです。
|
RECCOUNT オプションは、PL/I ファイルのオープン・プロセス中に作成される、相対データ・セットまたは領域データ・セットにロードできる最大のレコード数を指定します。
|
PL/I がデータ・セットを作成も再作成もしない場合、RECCOUNT オプションは無視されます。RECCOUNT オプションは適用されるがその指定が省略されている場合、領域ファイルおよび相対ファイルのデフォルトは 50 です。
RECSIZE オプションは、データ・セット内のレコードの長さ n を指定します。
|
領域データ・セットおよび固定長データ・セットの場合は、RECSIZE は データ・セットの各レコードの長さを指定します。その他のデータ・セット・タイプの場合は、RECSIZE はレコードがとれる最大の長さを指定します。
n のデフォルト値は 512 です。
RETRY オプションは、システムがファイル・ロックまたはレコード・ロックを取得できない場合に操作を再試行する回数を指定します。
|
RETRY のデフォルト値は 10 です。このオプションを適用できるのは、DDM ファイルだけです。
SAMELINE オプションは、入力を求めるプロンプトのステートメントと同じ行で、システム・プロンプトを行わせるかどうかを指定します。
.-N-. >>-SAMELINE--(-+-Y-+-)-----------------------------------------><
以下の例は、PROMPT オプションと SAMELINE オプションのいくつかの組み合わせ の結果を示しています。
|
prompt(y), sameline(y) prompt(n), sameline(y) prompt(y), sameline(n) prompt(n), sameline(n) |
ENTER: (cursor) ENTER: (cursor) ENTER: (cursor) ENTER: (cursor) |
|
prompt(y), sameline(y) prompt(n), sameline(y) prompt(y), sameline(n) prompt(n), sameline(n) |
ENTER: (cursor) ENTER (cursor) ENTER : (cursor) ENTER (cursor) |
SHARE オプションは、許可するファイル共用のレベルを指定します。
.-NONE-. >>-SHARE--(-+-READ-+-)----------------------------------------->< '-ALL--'
このオプションは、DDM ファイルでのみ有効です。
レコード・レベルでロックできるようにするには、SHARE(ALL) を指定し、ファイルを更新ファイルとして宣言します。CICS アプリケーションを実行するときは、この方法をお勧めします。
要求されたファイル共用レベル、あるいはデフォルトのファイル共用レベルを取得できない場合は、UNDEFINEDFILE 条件が発生します。
SKIP0 オプションは、ソース・プログラムに SKIP(0) ステートメント がコーディングされた場合、ライン・カーソルをどこに移動するかを指定します。SKIP0 オプションは、PM アプリケーションとしてリンクされていない 端末ファイルに適用されます。
.-N-. >>-SKIP0--(-+-Y-+-)--------------------------------------------><
次の例は、現在の出力行の先頭にカーソルが移動するように、出力を端末スキップ・ゼロ行で行う方法を示しています。
set dd:sysprint=stdout:,SKIP0(Y) set dd:sysprint=con,SKIP0(Y)
TERMLBUF オプションは、PL/I Presentation Manager (PM) 端末のウィンドウの最大行数を指定します。
|
ファイルが PM 端末に関連付けられていない場合、このオプションは無視されます。デフォルトは 512 行です。
TYPE オプションは、ネイティブ・ファイル内のレコードのフォーマットを指定します。
.-CRLF-----. >>-TYPE--(-+-LF-------+-)-------------------------------------->< +-TEXT-----+ +-FIXED----+ +-VARLS----+ +-VARLS4X4-+ +-VARMS----+ +-LL-------+ +-LLZZ-----+ +-CRLFEOF--+ '-U--------'
データ・セットのレコード長として決められている値よりも長いレコードを データ・セットに入れることはできません。
これは、ISAM および BTRIEVE のデフォルトです。
データ・セットのレコード長として決められている値よりも長いレコードを データ・セットに入れることはできません。
TYPE(FIXED) ファイル内のすべての文字は、制御文字も含め (ある場合)、データと見なされます。 指定したレコード長が、存在している文字を反映していること、あるいは、指定したレコード長がレコード内の全文字を扱えることを 確認してください。
TYPE(VARLS) データ・セットを使用すれば、可変長で任意のバイト・パターンのレコードが含まれるデータ・セットを PL/I で読み書きする場合に、最も高速で処理できます。 TYPE(CRLF) データ・セットでは、このような処理はできません。というのも、ビット・ストリング '0d0a'b4 を付けて書き込まれたレコードを読み取るときに、誤変換が発生するからです。
Type(VARLS4X4) データ・セットを使用すれば、FORTRAN の順次不定形式ファイルを処理できます。
TYPE(VARMS) データ・セットを使用すれば、メインフレームからダウンロードされた SCALARVARYING ファイルを読み取ることができます。
TYPE(LL) データ・セットを使用すれば、2 バイトを追加するツール (VRECGEN.PLI サンプル・プログラムを参照) を使ってメインフレームからダウンロードされたファイルを読み取ることができます。
LLZZ サブオプションを使用すれば、TYPE(CRLF) データ・セットでは不可能な、可変長で任意のバイト・パターンのレコードが含まれるデータ・セットの読み書きが可能になります。CRLF の場合、ビット・ストリング '0d0a'b4 を付けて書き込まれたレコードは、読み取り時に誤変換されます。
TYPE(LLZZ) データ・セットには、データ・セットのレコード長として決められている値よりも長いレコードを入れることはできません。
ASA(N) オプションを指定したプリンター向けファイルではこのオプションが無視されるということを除き、TYPE オプションを 適用できるのは CONSECUTIVE ファイルだけです。
使用しているプログラムが TYPE(FIXED) が有効である既存のデータ・セットにアクセスしようとしており、 かつそのデータ・セット長がユーザーが指定した複数の論理レコード長の倍数でない場合は、PL/I は UNDEFINEDFILE 条件を 発生させます。
TYPE(FIXED) 属性を指定した非印刷ファイルを使用している場合は、SKIP が行の終わりまで末尾ブランクに置き換えられます。 TYPE(CRLF) が使用されている場合、SKIP は末尾ブランクなしに、CRLF で置き換えられます。