BEA Logo BEA Tuxedo Release 8.0

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

 

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

 


サポートされているフィールド型

サポートされているフィールド型は、short 型、long 型、float 型、double 型、character 型、string 型、carray 型 (文字配列)、ptr 型 (バッファを指すポインタ)、FML32 型 (埋め込み型の FML32 バッファ)、および VIEW32 型 (埋め込み型の VIEW32 バッファ) です。ptr 型、FML32 型、および VIEW32 型は、FML32 インターフェイスでのみサポートされています。これらの型は、次のリストに示すように、fml.h (または fml32.h) 内の #define 文で定義されています。

fml.h および fml32.h における FML フィールド型の定義

#define FLD_SHORT       0       /* short int */
#define FLD_LONG 1 /* long int */
#define FLD_CHAR 2 /* character */
#define FLD_FLOAT 3 /* single-precision float */
#define FLD_DOUBLE 4 /* double-precision float */
#define FLD_STRING 5 /* string - null terminated */
#define FLD_CARRAY 6 /* character array */
#define FLD_PTR 9 /* pointer to a buffer */
#define FLD_FML32 10 /* embedded FML32 buffer */
#define FLD_VIEW32 11 /* embedded VIEW32 buffer */

FLD_STRING および FLD_CARRAY はどちらも配列ですが、次の点が異なります。

フィールドを追加または変更する関数には、FLDLEN 引数を指定します。この引数は、FLD_CARRAY フィールドを処理する場合は必須です。文字列または文字配列のサイズは、FML では最大 65,535 文字、FML32 では最大 2 ギガバイトに制限されています。

unsigned 型のデータ型は、フィールド化バッファに格納しないでください。このデータ型を使用すると、フィールド化バッファからデータを検索するたびに、FML の変換関数を使用して、unsigned short 型データをすべて long 型データに変換するか、またはそれらのデータを正しい unsigned 型にキャストしなければなりません。

ほとんどの FML 関数では、型のチェックは行われません。通常、フィールド化バッファで更新または検索された値は、ネイティブな型と一致すると見なされます。たとえば、バッファ・フィールドが FLD_LONG として定義されていると、必ず、long 型の値のアドレスを渡す必要があります。FML 変換関数は、データをフィールド化バッファに格納する (または、データをフィールド化バッファから検索する) ほか、ユーザ指定の型からネイティブ・フィールド型 (または、ネイティブ・フィールド型からユーザ指定の型) にデータを変換します。

FLD_PTR フィールド型を使用すると、FML32 バッファ内のアプリケーション・データへのポインタを埋め込むことができます。アプリケーション側では、データ・バッファへのポインタの追加、変更、アクセス、および削除が可能です。FLD_PTR フィールドが指すバッファは、tpalloc(3c) を呼び出して割り当てます。FLD_PTR フィールド型は、FML32 でのみサポートされています。

FLD_FML32 フィールド型は、レコード全体を単一フィールドとして FML32 バッファに格納できます。同様に、FLD_VIEW32 フィールド型は、C 構造体全体を FML32 バッファ内に単一フィールドとして格納できます。FLD_FML32 および FLD_VIEW32 フィールド型は、FML32 でのみサポートされています。

VIEWS の int 型

VIEWS は、大半の FML 関数でサポートされているデータ型のほか、ソース VIEW 記述内で int 型を間接的にサポートします。VIEW 記述がコンパイルされると、VIEW のコンパイラは、マシンの種類に応じて、すべての int 型を short 型か long 型に自動的に変換します。詳細については、「VIEWS の機能」を参照してください。

VIEWS の dec_t 型

VIEWS では、ソース VIEW 記述内で dec_t パック 10 進数型もサポートされています。このデータ型は、VIEW の構造体から COBOL のプログラムへの転送に便利です。dec_t 型を使用する C プログラムでは、『BEA Tuxedo C 言語リファレンス』の「decimal(3c)」リファレンス・ページで説明されている関数を使用してフィールドの初期化およびアクセスを行う必要があります。COBOL プログラムでは、パック 10 進数 (COMP-3) の定義を使用してこのフィールドに直接アクセスできます。FML では dec_t フィールドがサポートされていないため、このフィールドは、VIEW から FML に変換するときに、フィールド化バッファ内の対応する FML フィールドのデータ型 (string 型など) に自動的に変換されます。

 

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