目次 前 次 PDF


RECORDの機能

RECORDの機能
ここでは、以下の内容について説明します。
RECORDの機能
RECORD機能は、データがCOBOL言語とC言語間で転送される場合に特に役立ちます。このような場合、RECORDバッファ・タイプはC言語で使用し、コピーブックはCOBOL言語で使用できます。
RECORD機能には、次の特徴があります。
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
OCCURSは、指標または添字指定で要素を参照可能な表を指定します。固定長の表がサポートされます。ASCENDING KEYおよびDESCENDING KEY句、INDEXED BY句およびOCCURS DEPENDING ON句(可変長の表)はサポートされません。
PICTURE
PICTUREは、基本項目の一般的性質および編集要件を指定します。PICTUREでサポートされる記号は、ABEGNPSVXZ90/,.+-*CおよびDです。
SIGN
SIGNは、適用される符号付き数値項目の演算符号の位置および表現モードを指定します。
USAGE
USAGEは、格納時のデータの表現形式を指定します。サポートされる句は、BINARYCOMPCOMP-1COMP-2COMP-3COMP-4COMP-5COMPUTATIONALCOMPUTATIONAL-1COMPUTATIONAL-2COMPUTATIONAL-3COMPUTATIONAL-4COMPUTATIONAL-5DISPLAYDISPLAY-1NATIONALおよびPACKED-DECIMALです。サポートされない句は、NATIVEINDEXPOINTERPROCEDURE-POINTERFUNCTION-POINTERおよびOBJECT REFERENCEです。
注意:
COBOLコピーブック・ファイル内の句BLANK WHEN ZEROEXTERNALGLOBALJUSTIFIEDGROUP-USAGERENAMESおよびSYNCHRONIZEDcpy2recordでサポートされません。
数多くのRECORD関数がサポートされています。詳細は、『FMLを使用したOracle Tuxedo ATMIアプリケーションのプログラミング』RECORD関数に関する項を参照してください。どのRECORD関数を呼び出しても、指定されたRECORD記述ファイルが検索され、そのファイルが見つかると、RECORDファイルのキャッシュに自動的にロードされます。詳細は、「RECORD記述ファイル」を参照してください。環境変数RECORDFILESで指定される各ファイルは、順番に検索されます。指定名を持つ最初のRECORD記述ファイルがロードされます。同じ名前を持つ以降のRECORD記述ファイルは無視されます。
RECORD記述ファイル
RECORD記述は、ソース・コピーブック内に作成および格納されます。これは、多くの場合、既存のメインフレームCOBOLコピーブックから取得できます。ソースRECORD記述は、RECORDオブジェクト・ファイルを作成するためにcpy2recordによってコンパイルされ、Cプログラムで使用できます。
rname (コピーブック内のフィールド名)には、対応するfbname (フィールド化バッファ内のフィールドの名前)およびvname (構造体メンバーの識別子)は定義されていません。
VIEW定義内のcnameは、コピーブック内のフィールド名と同じではありません(cnameは小文字です。ハイフンはアンダースコアに変換されます。同じ名前はシーケンス番号を付加します)。RECORDアイテムは、変換を行うためにVIEWメンバー名を保持する必要があります。
VIEW32/FML32間のRECORD変換をサポートするために、コピーブックの列72の後またはフリーフォーマットのCOBOLの*>の後に、vnameおよびfbnamernameごとに手動で設定できます。明示的に設定しない場合、fbnameおよびvnamernameと同じになります。RECORD記述ファイル内のvnameまたはfbnameは、一意のままである必要があります。fbnameの同じvnameが同じレベル内に多数ある場合、VIEW32またはFML32をRECORDバッファに変換する際には、最初のものが使用されます。
#vnameおよび#fbnameが列72の後に設定されていない場合、rnameがデフォルトのfbnameとして使用されます。vnameについては、rnameのハイフンはアンダースコアに変換され、大文字は小文字に変換されます(オプション-iを設定した場合、大文字は小文字に変換されません)。
ビュー名は@vname()で定義されます。fbnameは@fbname()で定義されます。
リスト3-1 RECORD記述ファイルの例
# copybook definition #vname #fbname
01 A.
05 B.
10 E PIC S9(9) COMP-5. @vname(e_v) @fbname(FB_E)
10 F.
15 K PIC X(4).
15 L PIC S9(8) COMP.
05 C PIC S9(4).
05 D OCCURS 10 TIMES.
10 G PIC S9999 SIGN LEADING.
10 H PIC S9(5)V9(2) PACKED-DECIMAL.
10 I USAGE COMP-1.
10 J PIC X(10).
 
RECORDの環境設定
FMLでは、次の変数を使用して、RECORDファイルにアクセスします。
RECORDFILES - この変数には、所定のアプリケーション・プログラム用のRECORD記述ファイルをカンマで区切ってリストします。フル・パス名で指定したファイルは、そのまま使用されます。相対パス名で指定したファイルは、RECORDDIR変数で指定したディレクトリのリストから検索されます。RECORDFILESが設定されていない場合、単一のファイル名record.Rが使用されます(RECORDDIRが依然として適用されます。次を参照)。
RECORDDIR - この変数には、相対ファイル名を指定したRECORDファイルを検索するために使用する、コロンで区切ったディレクトリのリストを指定します。使用法はPATH環境変数と同様です。RECORDDIRを設定しない場合またはNULLの場合、カレント・ディレクトリの値が使用されます。
 

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved