BSIDXKEY構造体は、出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスフィールドを指定するための構造体です。
typedef struct { unsigned long idx_position; unsigned long idx_length; unsigned char idx_type; unsigned char idx_order; unsigned char idx_msub; unsigned char idx_comp; } BSIDXKEY;
BSIDXKEY構造体のメンバー
以下では、BSIDXKEY構造体のメンバーについて説明します。
idx_position
インデックスフィールドの位置をレコードの先頭を0としたバイト位置で指定します。
idx_length
インデックスフィールドの長さをバイト数で指定します。
idx_type
インデックスフィールドのデータ形式を指定します。
指定可能なデータ形式と長さを以下に示します。
種類 | データ形式 | 定義値 | 長さ(バイト) | 意味 | |
---|---|---|---|---|---|
文字 | ASCIIコード(注1) | BSKEY_ASC | 1~254 | 富士通COBOLのCHARTYPE | |
Unicode UCS-2形式(注2) | BSKEY_UCS2 | 2~254 | 富士通COBOLのCHARTYPE | ||
Big endian | BSKEY_UCS2B | 2~254 | 富士通COBOLのCHARTYPE | ||
Little endian | BSKEY_UCS2L | 2~254 | 富士通COBOLのCHARTYPE | ||
Unicode UTF-32形式(注2) | BSKEY_UTF32 | 4~252 | 富士通COBOLのCHARTYPE | ||
Big endian | BSKEY_UTF32B | 4~252 | 富士通COBOLのCHARTYPE | ||
Little endian | BSKEY_UTF32L | 4~252 | 富士通COBOLのCHARTYPE | ||
Unicode UTF-8形式(注2) | BSKEY_UTF8 | 1~254 | 富士通COBOLのCHARTYPE |
注1) 入力ファイルのコード系(BSRTPRIM構造体のcdmode)がEBCDICコード系以外の場合に指定できます。
注2) 入力ファイルのコード系(BSRTPRIM構造体のcdmode)がEBCDICコード系以外で、環境変数LANGがCまたはUTF-8のlocaleの場合に指定できます。
idx_order
インデックスフィールドの並びを指定します。
富士通COBOLファイルシステムの索引ファイルの場合は、昇順を指定します。
定義値 | 並び |
---|---|
BS_ASCND | 昇順に並べます。 |
idx_msub
インデックスフィールドの作成方法を指定します。
必要に応じて以下を指定します。主キーの終わり、および副キーの終わりには、BS_ISEGENDを指定します。
定義値 | 意味 |
---|---|
BSIF_DUPS | インデックスに重複キー指定を示します。 |
BSIF_NDUP | インデックスにユニークキー指定を示します。 |
BS_IMAIN | 主キー指定を示します。 |
BS_ISUB | 副キー指定を示します。 |
BS_ISEGEND | 主キー、および副キーの終わりを示します。 |
idx_comp
現在サポートしていないメンバーです。
'\0'を指定します。