![]() |
![]() |
|
|
VIEW の変換
VIEW を、指定したレコード形式に変換したり、その逆の処理を行うことができます。デフォルトでは、IBM System/370 COBOL レコード形式に変換されます。
Fvstot、Fvttos、および Fcodeset
以下の関数は、指定した形式に VIEW を変換します。
long
Fvstot(char *cstruct, char *trecord, long treclen, char *viewname)
long
Fvttos(char *cstruct, char *trecord, char *viewname)
int
Fcodeset(char *translation_table)
Fvstot 関数は、C 構造体のデータを、指定したレコードの形式に転送します。Fvttos 関数は、指定レコード形式のデータを C 構造体に転送します。trecord は指定したレコードに対するポインタです。cstruct は C 構造体に対するポインタです。viewname は、コンパイルされた VIEW 記述名に対するポインタです。VIEWDIR 環境変数および VIEWFILES 環境変数を使用してコンパイルされた VIEW 記述があるディレクトリとファイルが検索されます。
FML バッファを、指定したレコードに変換するには、次の手順に従います。
指定レコードを、FML バッファに変換するには、次の手順に従います。
デフォルトは、IBM/370 COBOL レコードの形式です。デフォルトのデータ変換は、以下の表に基づいて行われます。
IBM/370 のレコードでは、フィールド間のフィルタ・バイトはありません。ビューに対応するデータ構造の一部をなすデータ・アイテムに対しては、COBOL SYNC節は指定することはできません。整数フィールドは、変換を実行するマシン上の整数のサイズに応じて 4 バイトまたは 2 バイトの整数に変換されます。BM/370 形式への変換、または IBM/370 フォーマットからの変換を行う場合、ビューの文字列フィールドは NULL で終了している必要があります。carray フィールドのデータは変更されずに渡されます。データの変換は行われません。 パック 10 進数は、IBM/370 環境では1バイトにパッキングされた 2 桁の 10 進数として存在し、下位の 1/2 バイトは符号を格納するために使用されます。パッキングされた 10 進数の長さは 1 〜 16 バイトで、1 〜 31 桁の数字と 1 つの符号の格納領域があります。パッキングされた 10 進数は、C の構造体では dec_t というフィールド・タイプを利用することによってサポートされます。dec_t フィールドは、カンマで区切られた 2 つの数字で構成されたサイズに定義されています。カンマの左側の数字は、10 進数が占有する総バイト数です。右側の数値は、小数点以下の桁数です。変換には、次の公式が使用されます。 10 進数とほかのデータ型 (int 型、long 型、string 型、double 型、float 型) 間の変換には、decimal(3c) で説明されている関数を使用できます。 ASCII から EBCDIC へ、また EBCDIC から ASCII へのデフォルトの文字変換の詳細については、「Fvstof、Fvstof32(3fml)」の項を参照してください。 Fcodeset を呼び出すと、実行時に代替文字変換テーブルを使用することができます。translation_table は、512 バイトのバイナリ・データを指している必要があります。最初の 256 バイトのデータは、ASCII から EBCDIC への変換テーブルとして解釈されます。次の 256 バイトのデータは、EBCDIC から ASCII へのテーブルとして解釈されます。512 バイトより後ろのデータは無視されます。ポインタが NULL のときは、デフォルトの変換テーブルが使用されます。 詳細については、『BEA Tuxedo FML リファレンス』の「Fvstot、Fvttos(3fml)」を参照してください。dec_t(m, n) <=> S9(2*m-(n+1))V9(n)COMP-3
![]() |
![]() |
![]() |
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|