BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   FML を使用した BEA Tuxedo アプリケーションのプログラミング   |   先頭へ   |   前へ   |   次へ   |   目次

 


フィールド・テーブルからヘッダ・ファイルに変換する

既に説明したとおり、mkfldhdr (または mkfldhdr32) コマンドを実行すると、フィールド・テーブルが C コンパイラ処理に対応したファイルに変換されます。生成されたヘッダ・ファイルの各行の形式は、次のとおりです。

#define fname fieldid

fname にはフィールド名を指定し、fieldid にはフィールド識別子を指定します。フィールド識別子は、符号化されたフィールド型とフィールド番号で構成されます。フィールド番号は絶対数、つまり baserel-number を足した数です。生成されたファイルは、C プログラムに組み込むことができます。

「フィールドを C 構造体および COBOL レコードにマッピングする」で説明するとおり、実行時のマッピング関数を使用する場合、ヘッダ・ファイルを使用する必要はありません。

コンパイル時にファイル名を識別子にマッピングすると、処理を高速化でき、データ領域が少なくて済むという利点があります。逆に、サービス・ルーチンのコンパイル後にフィールド名と識別子のマッピングが変更されると、サービス・ルーチンに伝播されないという欠点があります。このような場合、サービス・ルーチンはコンパイル済みのマッピングを使用します。

mkfldhdr コマンドを実行すると、FIELDTBLS 環境変数で指定された各フィールド・テーブルが、対応するヘッダ・ファイルに変換されます。ヘッダ・ファイル名は、フィールド・テーブル名に .h という接尾辞を付けて指定します。生成されたヘッダ・ファイルは、デフォルトでカレント・ディレクトリに保存されます。別のディレクトリに保存したい場合は、mkfldhdr コマンドで -d オプションを使用して、保存先ディレクトリを指定します。詳細については、『BEA Tuxedo コマンド・リファレンス』の「mkfldhdr、mkfldhdr32(1)」を参照してください。

フィールド・テーブルからヘッダ・ファイルへの変換例

例 1 および 2 は、環境変数を設定して mkfldhdr(1) コマンドを実行する方法を示しています。ここでは、3 つのフィールド・テーブル・ファイル (${FLDTBLDIR}/maskftbl${FLDTBLDIR}/DBftbl${FLDTBLDIR}/miscftbl) が処理され、3 つのインクルード・ファイル (maskftbl.hDBftbl.hmiscftbl.h) がカレント・ディレクトリに生成されます。詳細については、『BEA Tuxedo コマンド・リファレンス』の「mkfldhdr、mkfldhdr32(1)」を参照してください。

例 1

FLDTBLDIR=/project/fldtbls
FIELDTBLS=maskftbl,DBftbl,miscftbl
export FLDTBLDIR FIELDTBLS
mkfldhdr

例 2

FLDTBLDIR32=/project/fldtbls
FIELDTBLS32=maskftbl,DBftbl,miscftbl
export FLDTBLDIR32 FIELDTBLS32
mkfldhdr32

例 3

例 3 は例 1 と同じですが、出力ファイル (maskftbl.hDBftbl.hmiscftbl.h) が ${FLDTBLDIR} で指定されたディレクトリに保存される点だけが異なります。

FLDTBLDIR=/project/fldtbls
FIELDTBLS=maskftbl,DBftbl,miscftbl
export FLDTBLDIR FIELDTBLS
mkfldhdr -d${FLDTBLDIR}
mkfldhdr -d${FLDTBLDIR}

環境変数をオーバーライドして mkfldhdr を実行する

mkfldhdr のコマンド行でフィールド・テーブルの名前を指定し、環境変数をオーバーライドする (または環境変数を設定しない) ことができます。

ただし、この方法は実行時マッピングの関数に対しては適用できません。実行時マッピングの関数が使用されている場合、FLDTBLDIR がカレント・ディレクトリと見なされ、FIELDTBLS はユーザがコマンド行で指定したパラメータの一覧と見なされます。次の例を参照してください。

mkfldhdr myfields

このコマンドは、フィールド・テーブル・ファイル myfields をフィールド・ヘッダ・ファイル myfields.h に変換し、そのヘッダ・ファイルをカレント・ディレクトリに格納します。

詳細については、『BEA Tuxedo コマンド・リファレンス』の「mkfldhdr、mkfldhdr32(1)」を参照してください。

 

先頭へ戻る 前のトピックへ 次のトピックへ