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

レコード・フォーマット

データ・セット内のレコードは、次のいずれかのフォーマットを持っています。

レコードは、必要に応じて、ブロック化することができます。 オペレーティング・システムは、 固定長レコードと可変長レコードを非ブロック化しますが、 不定長レコードを非ブロック化するには、 ユーザーのプログラム内にコードを提供する必要があります。

レコード・フォーマットは、DD ステートメント の RECFM パラメーター内、OPEN ステートメントの TITLE オプション内、 または ENVIRONMENT 属性のオプションとして指定します。

固定長レコード

固定長レコードには、次に挙げるフォーマットを指定することがでます。

F
固定長、非ブロック化
FB
固定長、ブロック化
FS
固定長、非ブロック化、標準
FBS
固定長、ブロック化、標準

固定長レコードを持っているデータ・セットの 場合は、図 18 に示すように、すべてのレコードの長さが等しくなります。 レコードがブロック化されていると、通常、 各ブロックには同じ数の固定長レコードが入っています (ただし、 ブロックは切り捨てられる場合もあります)。 レコードがブロック化されていない場合は、 各レコードがブロックを構成します。

図 18. 固定長レコード
固定長レコード

オペレーティング・システムでは、一定のレコード長に基づいてブロック化、 非ブロック化が行われるため、可変長レコードより固定長レコードの方が速く処理されます。

可変長レコード

指定できる可変長レコードのフォーマットは、次のとおりです。

V
可変長、非ブロック化
VB
可変長、ブロック化
VS
可変長、非ブロック化、スパン
VBS
可変長、ブロック化、スパン

V フォーマットでは、可変長レコードと可変長ブロックの両方を使用することができます。 各レコードの 4 バイトの接頭部と、 各ブロックの最初の 4 バイトには、オペレーティング・システムが使用 する場合の制御情報が入ります (レコードまたはブロックのバイト単位の 長さを含む)。 このような制御フィールドのため、可変長レコードは逆方向に読み込むことができません。

V フォーマットは、非ブロック化可変長レコードを表します。 各レコードは、レコードが 1 つだけを持つブロックとして扱われます。 ブロックの最初の 4 バイトにはブロック制御情報が入り、 次の 4 バイトにはレコード制御情報が入ります。

VB フォーマットは、ブロック化可変長レコードを表します。 各ブロックには、そのブロックに収容可能なレコード数と同じ数のレコードが入ります。 ブロックの最初の 4 バイトにはブロック制御情報が入り、 各レコードの 4 バイト接頭部にはレコード制御情報が入ります。

スパン・レコード: スパン・レコードは可変長レコードで、 レコードの長さがブロック・サイズを超えることもできます。 超えた場合は、レコード・フォーマットを VS または VBS のいずれかで指定して、 レコードを複数のセグメントに分割し、2 つ以上の連続ブロックに置きます。 セグメンテーションおよび組み立ては、オペレーティング・システムによって処理されます。 スパン・レコードを使用すると、レコードの長さを問わず、 ブロック・サイズが選択でき、補助記憶域を最大限に活用し、伝送の効果を最大限に高めます。

VS フォーマットは、V フォーマットに似ています。それぞれのブロックは、1 つのレコードまたは レコードのセグメントのみを含みます。 ブロックの最初の 4 バイトにはブロック制御情報が入り、 次の 4 バイトにはレコードまたはセグメント制御情報 (レコードが単体のものか、 または最初、中間、最後のセグメントであるかということを示す情報を含む) が入ります。

VBS フォーマットでは、各ブロックが、単体のレコードまたはセグメントを できるだけ多く保持することができるという点において、VS フォーマットと 異なっています。したがって、各ブロックのサイズがほとんど同じになります (ただし、 各セグメントは最低 1 バイトのデータを含まなければならないため、最大で 4 バイトの 変化幅があります)。

不定長レコード

U フォーマットでは、F フォーマットにも V フォーマットにも 当てはまらないレコードを処理することができます。 オペレーティング・システムおよびコンパイラーは各ブロックをレコード として扱います。 ユーザー・プログラムで必要に応じてブロック化あるいは非ブロック化を 行わなくてはなりません。


Terms of use | Feedback

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