RECORD機能は、データがCOBOL言語とC言語間で転送される場合に特に役立ちます。このような場合、RECORDバッファ・タイプはC言語で使用し、コピーブックはCOBOL言語で使用できます。
•
|
cpy2recordツールを使用すると、実行時にアプリケーション・プログラムによって解釈されるRECORD記述(バイナリ形式で格納)を生成できます。詳細は、『Oracle Tuxedoコマンド・リファレンス』の cpy2recordに関する項を参照してください。
|
•
|
RECORD記述は、実行時に要求に応じてRECORDファイル・キャッシュに読み込まれ、キャッシュがいっぱいになるまでキャッシュ内に保存されます。キャッシュがいっぱいになり、キャッシュ内にないRECORD記述が必要になると、アクセスされた時期が最も古いRECORD記述がキャッシュから削除され、新しいRECORD記述のための領域となります。
|
•
|
RECORDバッファとCOBOLレコードの間でデータ転送を行うと、ソース・データは自動的に宛先データの型に変換されます。たとえば、文字列フィールドは、EBCDIC形式とASCII形式の間で変換できます。
|
ソースRECORDファイルは、1つまたは複数のソースRECORD記述を含む一般的なテキスト・ファイルで、しばしば既存のCOBOLコピーブック・ファイルが使用されます。ソースRECORDファイルは、RECORD記述ファイルを生成する、
cpy2recordへの入力として使用されます。
次の表に、
cpy2recordでサポートされるCOBOLコピーブック・ファイル内の句をリストします。
表3-1
cpy2recordでサポートされるCOBOLコピーブック・ファイル内の句
|
|
|
OCCURSは、指標または添字指定で要素を参照可能な表を指定します。固定長の表がサポートされます。 ASCENDING KEYおよび DESCENDING KEY句、 INDEXED BY句および OCCURS DEPENDING ON句(可変長の表)はサポートされません。
|
|
PICTUREは、基本項目の一般的性質および編集要件を指定します。 PICTUREでサポートされる記号は、 A、 B、 E、 G、 N、 P、 S、 V、 X、 Z、 9、 0、 /、 ,、 .、 +、 -、 *、 Cおよび Dです。
|
|
SIGNは、適用される符号付き数値項目の演算符号の位置および表現モードを指定します。
|
|
USAGEは、格納時のデータの表現形式を指定します。サポートされる句は、 BINARY、 COMP、 COMP-1、 COMP-2、 COMP-3、 COMP-4、 COMP-5、 COMPUTATIONAL、 COMPUTATIONAL-1、 COMPUTATIONAL-2、 COMPUTATIONAL-3、 COMPUTATIONAL-4、 COMPUTATIONAL-5、 DISPLAY、 DISPLAY-1、 NATIONALおよび PACKED-DECIMALです。サポートされない句は、 NATIVE、 INDEX、 POINTER、 PROCEDURE-POINTER、 FUNCTION-POINTERおよび OBJECT REFERENCEです。
|
注意:
|
COBOLコピーブック・ファイル内の句 BLANK WHEN ZERO、 EXTERNAL、 GLOBAL、 JUSTIFIED、 GROUP-USAGE、 RENAMESおよび SYNCHRONIZEDは cpy2recordでサポートされません。
|
数多くのRECORD関数がサポートされています。詳細は、
『FMLを使用したOracle Tuxedo ATMIアプリケーションのプログラミング』の
RECORD関数に関する項を参照してください。どのRECORD関数を呼び出しても、指定されたRECORD記述ファイルが検索され、そのファイルが見つかると、RECORDファイルのキャッシュに自動的にロードされます。詳細は、
「RECORD記述ファイル」を参照してください。環境変数
RECORDFILESで指定される各ファイルは、順番に検索されます。指定名を持つ最初のRECORD記述ファイルがロードされます。同じ名前を持つ以降のRECORD記述ファイルは無視されます。
RECORD記述は、ソース・コピーブック内に作成および格納されます。これは、多くの場合、既存のメインフレームCOBOLコピーブックから取得できます。ソースRECORD記述は、RECORDオブジェクト・ファイルを作成するために
cpy2recordによってコンパイルされ、Cプログラムで使用できます。
各
rname (コピーブック内のフィールド名)には、対応する
fbname (フィールド化バッファ内のフィールドの名前)および
vname (構造体メンバーの識別子)は定義されていません。
VIEW定義内の
cnameは、コピーブック内のフィールド名と同じではありません(
cnameは小文字です。ハイフンはアンダースコアに変換されます。同じ名前はシーケンス番号を付加します)。RECORDアイテムは、変換を行うためにVIEWメンバー名を保持する必要があります。
VIEW32/FML32間のRECORD変換をサポートするために、コピーブックの列72の後またはフリーフォーマットのCOBOLの
*>の後に、
vnameおよび
fbnameを
rnameごとに手動で設定できます。明示的に設定しない場合、
fbnameおよび
vnameは
rnameと同じになります。RECORD記述ファイル内の
vnameまたは
fbnameは、一意のままである必要があります。
fbnameの同じ
vnameが同じレベル内に多数ある場合、VIEW32またはFML32をRECORDバッファに変換する際には、最初のものが使用されます。
#vnameおよび
#fbnameが列72の後に設定されていない場合、
rnameがデフォルトの
fbnameとして使用されます。
vnameについては、
rnameのハイフンはアンダースコアに変換され、大文字は小文字に変換されます(オプション
-iを設定した場合、大文字は小文字に変換されません)。
ビュー名は
@vname()で定義されます。fbnameは
@fbname()で定義されます。
# copybook definition #vname #fbname
10 E PIC S9(9) COMP-5. @vname(e_v) @fbname(FB_E)
10 G PIC S9999 SIGN LEADING.
10 H PIC S9(5)V9(2) PACKED-DECIMAL.
FMLでは、次の変数を使用して、RECORDファイルにアクセスします。
•
|
RECORDFILES - この変数には、所定のアプリケーション・プログラム用のRECORD記述ファイルをカンマで区切ってリストします。フル・パス名で指定したファイルは、そのまま使用されます。相対パス名で指定したファイルは、 RECORDDIR変数で指定したディレクトリのリストから検索されます。 RECORDFILESが設定されていない場合、単一のファイル名 record.Rが使用されます( RECORDDIRが依然として適用されます。次を参照)。
|
•
|
RECORDDIR - この変数には、相対ファイル名を指定したRECORDファイルを検索するために使用する、コロンで区切ったディレクトリのリストを指定します。使用法は PATH環境変数と同様です。 RECORDDIRを設定しない場合またはNULLの場合、カレント・ディレクトリの値が使用されます。
|