ページのトップに戻る
PowerSORT V6.0  ユーザーズガイド

7.5.10 BSIDXKEY構造体

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
(2の倍数)

富士通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_ISUB

副キー指定を示します。
BS_IMAINとは排他関係にあります。

BS_ISEGEND

セグメントの終わりを示します。

unsigned char    idx_comp

現在サポートしていないメンバーです。
'¥0'を指定します。