Rational Developer for System z
PL/I for Windows, Version 7.6, プログラミング・ガイド

DD:ddname 環境変数の使用による特性の指定

SET コマンドを使用すれば、PL/I ファイルに関連付けられる データ・セットを識別する環境変数を設定できます。 さらにオプションで、そのデータ・セットの追加特性も指定できます。 環境変数から得られるこのような情報を、データ定義 (または、dd) 情報と呼びます。

DD:ddname 環境変数の構文は次のとおりです。

構文図を読む構文図をスキップする>>-DD:ddname=filespec-+-----------+----------------------------><
                      '-,--option-'
 

この構文ではブランクを使用することができます。 また、このステートメントの構文は、コマンド入力時にはチェックされません。 データ・セットのオープン時に、このステートメントの構文が検証されます。 構文に誤りがあれば、オン・コード 96 により UNDEFINEDFILE 条件が発生します。

DD:ddname
環境変数の名前を指定します。ddname は、OPEN ステートメントの TITLE オプションに指定したファイル定数の名前または代替 ddname のいずれかになります。TITLE オプションの詳細は、OPEN ステートメントの TITLE オプションの使用を参照してください。

代替 ddname を使用する場合に、その長さが 31 文字を超えるときは、最初の 31 文字だけが環境変数名に指定されます。

option
DD 情報として指定できるオプションは、AMTHD から TYPEで説明します。

AMTHD

AMTHD オプションは、データ・セットのアクセスに使用するアクセス方式を指定します。

構文図を読む構文図をスキップする            .-FSYS----.
>>-AMTHD--(-+-DDM-----+-)--------------------------------------><
            +-ISAM----+
            +-BTRIEVE-+
            '-REMOTE--'
 
FSYS
PL/I がネイティブ・アクセス方式を使用してネイティブ・ファイルにアクセスすることを指定します。これはデフォルトです。
ISAM
ISAM アクセス方式を使用して ISAM ファイルにアクセスすることを指定します。
BTRIEVE (Windows)
BTRIEVE アクセス方式を使用して BTRIEVE ファイルにアクセスすることを指定します。
REMOTE (Windows)
ファイルがリモート DDM ターゲット・システム (MVS など) 上にあることを指定します。

Windows の場合、ファイルの名前は LU 別名または完全修飾 SNA ネットワーク名で修飾する必要があります。

AMTHD オプションを指定せず、次のいずれの ENVIRONMENT オプションも適用しない場合は、デフォルトで FSYS が使用されます。

上記オプションのいずれかを指定した場合、Windows では AMTHD(ISAM) がデフォルトになり、AIX では AMTHD(DDM) が デフォルトになります。

APPEND

APPEND オプションにより、既存データ・セットが拡張されるのか、再作成されるのかが指定されます。

構文図を読む構文図をスキップする             .-Y-.
>>-APPEND--(-+-N-+-)-------------------------------------------><
 
Y
新規レコードを、順次データ・セットの終わりに追加する、あるいは相対データ・セットまたは索引付きデータ・セットに 挿入することを指定します。 これはデフォルトです。
N
ファイルが存在する場合、そのファイルを再作成することを指定します。

APPEND オプションを適用できるのは、OUTPUT ファイルだけです。 したがって、次の場合、APPEND オプションは無視されます。

ASA

ASA オプションは、プリンター向けファイルに適用されるオプションです。このオプションは、各レコード内の ANS 制御文字が解釈されるときを指定します。

構文図を読む構文図をスキップする          .-N-.
>>-ASA--(-+-Y-+-)----------------------------------------------><
 
N
レコードがデータ・セットに書き込まれる際、ANS 印刷制御文字が IBM Proprinter 制御文字 に変換されることを指定します。これはデフォルトです。
Y
ANS 印刷制御文字が変換されないことを指定します。この制御文字は、指定したプロセスにより、後で変換されるようにそのまま残されます。

ファイルがプリンター向けファイルでない場合、このオプションは無視されます。プリンター向けファイルについては、プリンター向けファイルで説明します。

BUFSIZE

BUFSIZE オプションは、バッファーのバイト数を指定します。

構文図を読む構文図をスキップする>>-BUFSIZE--(n)------------------------------------------------><
 

RECORD 出力はデフォルト設定でバッファーに入り、BUFSIZE のデフォルト値 64k です。STREAM 出力もバッファーに入りますが、デフォルトによるのではありません。また、この場合、BUFSIZE のデフォルト値はゼロです。

BUFSIZE の値にゼロが指定されている場合は、バッファーのバイト数は、RECSIZE オプションまたは LRECL オプションで指定されている値と同じです。

BUFSIZE オプションが有効なのは、連続バイナリー・ファイルだけです。ファイルが端末入力に使用されている場合は、効率を上げるために、BUFSIZE に値をゼロを割り当てるべきです。

レコード入出力用の CHARSET

CHARSET オプションのこのバージョンは、レコード入出力を使用 する連続ファイルにだけ適用されます。このオプションにより、ユーザーは EBCDIC データ・ファイルを入力ファイルとして使用したり、出力ファイルの文字セットを指定することができます。

構文図を読む構文図をスキップする              .-ASIS---.
>>-CHARSET--(-+-EBCDIC-+-)-------------------------------------><
              '-ASCII--'
 

入力ファイルの形式、または出力ファイルにとらせたい形式に基づいて、CHARSET の サブオプションを選択してください。

CHARSET(ASIS) がデフォルトです。

ストリーム入出力用の CHARSET

CHARSET オプションのこのバージョンは、ストリーム入力ファイルおよびストリーム出力ファイルにだけ適用されます。このオプションにより、ユーザーは EBCDIC データ・ファイルを入力ファイルとして使用し たり、出力ファイルの文字セットを指定することができます。ストリーム入出力を使用しているときに ASIS を指定しようとしても、エラーは出されず、文字セットは ASCII として扱われます。

構文図を読む構文図をスキップする              .-ASCII--.
>>-CHARSET--(-+-EBCDIC-+-)-------------------------------------><
 

入力ファイルの形式、または出力ファイルにとらせたい形式 に基づいて、CHARSET のサブオプションを選択してください。

CHARSET(ASCII) がデフォルトです。

DELAY

DELAY オプションは、システムがファイル・ロックやレコード・ロックを入手できない場合に 失敗した操作を再試行するまでの遅延の時間をミリ秒単位で指定します。

構文図を読む構文図をスキップする>>-DELAY--(n)--------------------------------------------------><
 

DELAY のデフォルト値は 0 です。

DELIMIT

DELIMIT オプションは、入力ファイルにフィールド区切り文字が含まれているかどうかを指定します。フィールド区切り文字は、レコードのフィールドを分離するブランクかまたはユーザー定義文字です。このオプションを適用できるのは、ソート入力ファイルだけです。

構文図を読む構文図をスキップする              .-N-.
>>-DELIMIT--(-+-Y-+-)------------------------------------------><
 

ソート・ユーティリティー・プログラムは、フィールド区切り文字の有無により、テキスト・ファイルとバイナリー・ファイルを区別します。フィールド区切り文字が含まれている入力ファイルは、テキスト・ファイルとして処理され、区切り文字がない入力ファイルはバイナリー・ファイルと見なされます。この情報は、ライブラリーが正しいパラメーターを ソート・ユーティリティー・プログラムに渡すために必要です。

LRECL

LRECL オプションは RECSIZE オプションと同じです。

構文図を読む構文図をスキップする>>-LRECL--(n)--------------------------------------------------><
 

LRECL が指定されておらず LINESIZE 値による暗黙指定 もされていない場合 (ただし TYPE(FIXED) ファイルを除く)、デフォルトは 1024 です。

LRMSKIP

LRMSKIP オプションを使用すると、ファイルがオープンされてから 最初の SKIP フォーマット項目が実行される ように、1 ページ目の n 行目  (n は PUT ステートメント または GET ステートメントの SKIP オプションで指定されている値) で 出力が開始されるようにすることができます。

構文図を読む構文図をスキップする              .-N-.
>>-LRMSKIP--(-+-Y-+-)------------------------------------------><
 

n がゼロまたは 1 の場合は、1 ページ目の 1 行目で出力が開始されます。

PROMPT

PROMPT オプションは、コロンを端末からのストリーム入力の プロンプトとして表示するかどうかを指定します。

構文図を読む構文図をスキップする             .-N-.
>>-PROMPT--(-+-Y-+-)-------------------------------------------><
 

PROMPT(N) がデフォルトです。

PUTPAGE

PUTPAGE オプションは、用紙送り文字の後ろに復帰文字を入れるかどうかを指定します。このオプションは、プリンター向けファイルにのみ適用されます。プリンター向けファイルは、PRINT 属性を指定して宣言された ストリーム出力ファイル、あるいは、CTLASA 環境オプションを 指定して宣言されたレコード出力ファイルです。

構文図を読む構文図をスキップする              .-NOCR-.
>>-PUTPAGE--(-+-CR---+-)---------------------------------------><
 
NOCR
用紙送り文字 ('0C'x) の後ろに復帰文字 ('0D'x) を入れな いことを指します。これはデフォルトです。
CR
用紙送り文字の後ろに復帰文字を入れることを指します。このオプションは、出力が IBM 以外のプリンターに送られる場合に指定する必要があります。

RECCOUNT

RECCOUNT オプションは、PL/I ファイルのオープン・プロセス中に作成される、相対データ・セットまたは領域データ・セットにロードできる最大のレコード数を指定します。

構文図を読む構文図をスキップする>>-RECCOUNT--(n)-----------------------------------------------><
 

PL/I がデータ・セットを作成も再作成もしない場合、RECCOUNT オプションは無視されます。RECCOUNT オプションは適用されるがその指定が省略されている場合、領域ファイルおよび相対ファイルのデフォルトは 50 です。

RECSIZE

RECSIZE オプションは、データ・セット内のレコードの長さ n を指定します。

構文図を読む構文図をスキップする>>-RECSIZE--(n)------------------------------------------------><
 

領域データ・セットおよび固定長データ・セットの場合は、RECSIZE は データ・セットの各レコードの長さを指定します。その他のデータ・セット・タイプの場合は、RECSIZE はレコードがとれる最大の長さを指定します。

n のデフォルト値は 512 です。

RETRY

RETRY オプションは、システムがファイル・ロックまたはレコード・ロックを取得できない場合に操作を再試行する回数を指定します。

構文図を読む構文図をスキップする>>-RETRY--(n)--------------------------------------------------><
 

RETRY のデフォルト値は 10 です。このオプションを適用できるのは、DDM ファイルだけです。

SAMELINE

SAMELINE オプションは、入力を求めるプロンプトのステートメントと同じ行で、システム・プロンプトを行わせるかどうかを指定します。

構文図を読む構文図をスキップする               .-N-.
>>-SAMELINE--(-+-Y-+-)-----------------------------------------><
 

以下の例は、PROMPT オプションと SAMELINE オプションのいくつかの組み合わせ の結果を示しています。

例 1
PUT SKIP LIST('ENTER:'); というステートメントが与えられると、その出力結果は次のようになります。
prompt(y), sameline(y)
prompt(n), sameline(y)
prompt(y), sameline(n)

prompt(n), sameline(n)
ENTER: (cursor)
ENTER: (cursor)
ENTER:
(cursor)
ENTER:
(cursor)
例 2
PUT SKIP LIST('ENTER'); というステートメントが与えられると、その出力結果は次のようになります。
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

SHARE オプションは、許可するファイル共用のレベルを指定します。

構文図を読む構文図をスキップする            .-NONE-.
>>-SHARE--(-+-READ-+-)-----------------------------------------><
            '-ALL--'
 
NONE
ファイルを他のプロセスと共用しないことを指定します。これはデフォルトです。
READ
ファイルは他のプロセスによる読み取りが可能であることを指定します。
ALL
ファイルは他のプロセスによる読み取りまたは書き込みが可能であることを指定します。データ保全性を確保することはユーザーの責任であり、PL/I はデータ保守の支援を行いません。

このオプションは、DDM ファイルでのみ有効です。

レコード・レベルでロックできるようにするには、SHARE(ALL) を指定し、ファイルを更新ファイルとして宣言します。CICS アプリケーションを実行するときは、この方法をお勧めします。

要求されたファイル共用レベル、あるいはデフォルトのファイル共用レベルを取得できない場合は、UNDEFINEDFILE 条件が発生します。

SKIP0

SKIP0 オプションは、ソース・プログラムに SKIP(0) ステートメント がコーディングされた場合、ライン・カーソルをどこに移動するかを指定します。SKIP0 オプションは、PM アプリケーションとしてリンクされていない 端末ファイルに適用されます。

構文図を読む構文図をスキップする            .-N-.
>>-SKIP0--(-+-Y-+-)--------------------------------------------><
 
SKIP0(N)
カーソルを次の行の先頭に移動することを指定します。これはデフォルトです。
SKIP0(Y)
カーソルを現在行の先頭に移動することを指定します。

次の例は、現在の出力行の先頭にカーソルが移動するように、出力を端末スキップ・ゼロ行で行う方法を示しています。

  set dd:sysprint=stdout:,SKIP0(Y)
  set dd:sysprint=con,SKIP0(Y)

TERMLBUF

TERMLBUF オプションは、PL/I Presentation Manager (PM) 端末のウィンドウの最大行数を指定します。

構文図を読む構文図をスキップする>>-TERMLBUF--(n)-----------------------------------------------><
 

ファイルが PM 端末に関連付けられていない場合、このオプションは無視されます。デフォルトは 512 行です。

TYPE

TYPE オプションは、ネイティブ・ファイル内のレコードのフォーマットを指定します。

構文図を読む構文図をスキップする           .-CRLF-----.
>>-TYPE--(-+-LF-------+-)--------------------------------------><
           +-TEXT-----+
           +-FIXED----+
           +-VARLS----+
           +-VARLS4X4-+
           +-VARMS----+
           +-LL-------+
           +-LLZZ-----+
           +-CRLFEOF--+
           '-U--------'
 
CRLF
レコードを文字の組み合わせ CR - LF で区切ることを指定します。('CR' と 'LF' は、それぞれ復帰と改行の ASCII 値である '0D'x と '0A'x を表します。*** ページにある制約事項を参照してください) 出力ファイルの場合、PL/I は各レコードの終わりにこれらの文字を挿入します。入力ファイルの場合、PL/I はこれらの文字を破棄します。 入力、出力のいずれの場合も、これらの文字は RECSIZE の考慮事項には入りません。

データ・セットのレコード長として決められている値よりも長いレコードを データ・セットに入れることはできません。

これは、ISAM および BTRIEVE のデフォルトです。

LF
レコードが LF 文字組み合わせで区切られることを指定します。('LF' は、ASCII コードの用紙送り、つまり '0A'x を表します。*** ページにある制約事項を参照してください) 出力ファイルの場合、PL/I は各レコードの終わりにこれらの文字を挿入します。入力ファイルの場合、PL/I はこれらの文字を破棄します。 入力、出力のいずれの場合も、これらの文字は RECSIZE の考慮事項には入りません。

データ・セットのレコード長として決められている値よりも長いレコードを データ・セットに入れることはできません。

TEXT
前述の CRLF と同じです。
FIXED
データ・セット内の各レコードの長さが同じであることを指定します。データ・セット内のレコード長として指定されている値は、レコードの境界を認識す る場合に使用されます。

TYPE(FIXED) ファイル内のすべての文字は、制御文字も含め (ある場合)、データと見なされます。 指定したレコード長が、存在している文字を反映していること、あるいは、指定したレコード長がレコード内の全文字を扱えることを 確認してください。

VARLS
レコードの先頭にレコードの残りの部分のバイト数を指定する 2 バイトの接頭部が付き、その長さ接頭部がリトル・エンディアン・フォーマットで保持されることを示します。これらのレコードは、NATIVE CHAR VARYING ストリングのようになります。

TYPE(VARLS) データ・セットを使用すれば、可変長で任意のバイト・パターンのレコードが含まれるデータ・セットを PL/I で読み書きする場合に、最も高速で処理できます。 TYPE(CRLF) データ・セットでは、このような処理はできません。というのも、ビット・ストリング '0d0a'b4 を付けて書き込まれたレコードを読み取るときに、誤変換が発生するからです。

VARLS4X4
レコードに 4 バイトの接頭部と 4 バイトの接尾部があることを示します。接頭部と接尾部にはそれぞれ、レコードの残りの部分のバイト数が入っています。このバイト数は NATIVE フォーマットです。その数には、接頭部で使用される 4 バイトも、接頭部で使用される 4 バイトも含まれません。

Type(VARLS4X4) データ・セットを使用すれば、FORTRAN の順次不定形式ファイルを処理できます。

VARMS
レコードの先頭にレコードの残りの部分のバイト数を指定する 2 バイトの接頭部が付き、その長さ接頭部がビッグ・エンディアン・フォーマットで保持されることを示します。これらのレコードは、NONNATIVE CHAR VARYING ストリングのようになります。

TYPE(VARMS) データ・セットを使用すれば、メインフレームからダウンロードされた SCALARVARYING ファイルを読み取ることができます。

LL
レコードの先頭にレコードの合計バイト数 (接頭部を含む) を指定する 2 バイトの接頭部が付くことを示します。長さは、ビッグ・エンディアン・フォーマットで保持されます。

TYPE(LL) データ・セットを使用すれば、2 バイトを追加するツール (VRECGEN.PLI サンプル・プログラムを参照) を使ってメインフレームからダウンロードされたファイルを読み取ることができます。

LLZZ
レコードには S/390 上の可変レコードと同様に保持される 4 バイトの接頭部があることを指定します。

LLZZ サブオプションを使用すれば、TYPE(CRLF) データ・セットでは不可能な、可変長で任意のバイト・パターンのレコードが含まれるデータ・セットの読み書きが可能になります。CRLF の場合、ビット・ストリング '0d0a'b4 を付けて書き込まれたレコードは、読み取り時に誤変換されます。

TYPE(LLZZ) データ・セットには、データ・セットのレコード長として決められている値よりも長いレコードを入れることはできません。

CRLFEOF
出力ファイルを除けば、このサブオプションは CRLF オプションと同じ情報を指定します。ファイルの 1 つが出力についてクローズされるときに、ファイルの終わりマーカーが最後のレコードに追加されます。
U
レコードがフォーマットされていないことを表します。 このような不定形式ファイルは、OPEN および CLOSE を除いて、どのレコード入出力またはストリーム入出力のステートメントでも 使用できません。 TYPE(U) ファイルからの読み取りは、FILEREAD 組み込み関数を使用することのみにより行うことができます。 また、TYPE(U) ファイルへの書き込みは、FILEWRITE 組み込み関数を使用することのみにより行うことができます。

ASA(N) オプションを指定したプリンター向けファイルではこのオプションが無視されるということを除き、TYPE オプションを 適用できるのは CONSECUTIVE ファイルだけです。

使用しているプログラムが TYPE(FIXED) が有効である既存のデータ・セットにアクセスしようとしており、 かつそのデータ・セット長がユーザーが指定した複数の論理レコード長の倍数でない場合は、PL/I は UNDEFINEDFILE 条件を 発生させます。

TYPE(FIXED) 属性を指定した非印刷ファイルを使用している場合は、SKIP が行の終わりまで末尾ブランクに置き換えられます。 TYPE(CRLF) が使用されている場合、SKIP は末尾ブランクなしに、CRLF で置き換えられます。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)