BSIDXKEY構造体は、出力ファイルが富士通COBOLファイルシステムの索引ファイルの場合に、インデックスフィールドを指定するための構造体です。
typedef struct { unsigned __int64 idx_position; unsigned __int64 idx_length; unsigned char idx_type; unsigned char idx_order; unsigned char idx_msub; unsigned char idx_comp; unsigned char reserve[4]; /* reserved */ } BSIDXKEY;
BSIDXKEY構造体のメンバー
以下では、BSIDXKEY構造体のメンバーについて説明します。
unsigned __int64 idx_position
インデックスフィールドの位置をレコードの先頭を0としたバイト位置で指定します。
unsigned __int64 idx_length
インデックスフィールドの長さをバイト数で指定します。
unsigned char idx_type
インデックスフィールドのデータ形式を指定します。
指定可能なデータ形式と長さを以下に示します。
種類 | データ形式 | 定義値 | 長さ(バイト) | 意味 |
---|---|---|---|---|
文字 | ASCIIコード | BSKEY_ASC | 1~254 | 富士通COBOLのCHARTYPE |
Unicode UCS-2形式(注) | BSKEY_UCS2 | 2~254 | 富士通COBOLのCHARTYPE | |
Unicode UTF-8形式 | BSKEY_UTF8 | 1~254 | 富士通COBOLのCHARTYPE |
注) Unicode UCS-2形式のバイトオーダーはLittle endianとなります。
unsigned char idx_order
インデックスフィールドの並びを指定します。
富士通COBOLファイルシステムの索引ファイルの場合は、昇順しか指定できません。
定義値 | 並び |
---|---|
BS_ASCND | 昇順に並べます。 |
unsigned char idx_msub
インデックスフィールドの作成方法を指定します。
必要に応じて以下を指定します。最終セグメントには、必ずBS_ISEGENDを指定します。
定義値 | 意味 |
---|---|
BSIF_DUPS | インデックスに重複キー指定を示します。 |
BS_IMAIN | 主キー指定を示します。 |
BS_ISUB | 副キー指定を示します。 |
BS_ISEGEND | セグメントの終わりを示します。 |
unsigned char idx_comp
現在サポートしていないメンバーです。
'¥0'を指定します。