PowerSORT Workstation V5.0 使用手引書
目次 索引 前ページ次ページ

第6章 C言語プログラムからPowerSORTを使用する> 6.4 BSORT関数で使用する構造体

6.4.2 BSRTREC構造体

BSRTREC構造体は、PowerSORTとユーザアプリケーション間でレコードを受け渡すための構造体です。BSRTREC構造体には、bsrtopen関数発行前にユーザアプリケーションが設定するメンバはありません。

typedef struct {
  BSPTR_VOID     sort_table;
  unsigned long    errdetail;
  unsigned long    in_count;
  unsigned long    out_count;
  BSPTR_VOID     rec_addr;
  unsigned long    rec_len;
  unsigned char    rec_status;
  unsigned char    mgrec_status;
  unsigned short    mgrec_string;
  BSPTR_VOID     mgrec_addr;
  unsigned long    mgrec_len;
  unsigned long    hProcFile;
  unsigned long    sub_error_code;
} BSRTREC;

■BSRTREC構造体メンバ

BSPTR_VOID  sort_table

bsrtopen関数を処理するときにPowerSORTが使用する作業域のアドレスが設定されます。このメンバは、PowerSORTが使用する専用の領域であり、ユーザアプリケーションはbsrtopen関数発行時からbsrtclse関数の発行が完了するまでの間、内容を保証しなければなりません。
ユーザアプリケーションはこのメンバに対して何もする必要はありません。

unsigned long  errdetail

PowerSORTが処理中にエラーを検出した場合に、BSORT関数のエラー詳細コードが設定されます。ユーザアプリケーションは、エラーの発生を各BSORT関数の戻り値から知ることができます。
ユーザアプリケーションはエラー発生時以外にこのメンバを参照する必要はありません。

unsigned long  in_count

PowerSORTがユーザアプリケーションから受け取ったレコード件数を、レコードの受渡し毎にユーザアプリケーションに通知します。
このメンバは、ユーザアプリケーションが必要な場合に参照してください。

unsigned long  out_count

PowerSORTがユーザアプリケーションに受け渡したレコード件数を、レコードの受渡し毎にユーザアプリケーションに通知します。
このメンバは、ユーザアプリケーションが必要な場合に参照してください。

BSPTR_VOID  rec_addr

[bsrtput関数の場合]

PowerSORTに渡すレコードのアドレスを設定します。
bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_IMを指定した場合、レコード群のアドレスを設定します。

[bsrtget関数の場合]

ユーザアプリケーションに返却するレコードのアドレスが設定されます。
bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_OMを指定した場合、レコード群のアドレスが設定されます。返却するレコードまたはレコード群がないときは、<NULL>が設定されます。

[bsrtmrge関数の場合]

PowerSORTに渡すレコードのアドレスを設定します。

unsigned long  rec_len

[bsrtput関数の場合]

PowerSORTに渡すレコードの長さを設定します。
bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_IMを指定した場合、レコード群の長さを設定します。テキストファイルのレコードを渡すときは、改行文字を含めたレコードの長さを設定します。

[bsrtget関数の場合]

ユーザアプリケーションに返却するレコードの長さが設定されます。
bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_OMを指定した場合、レコード群の長さが設定されます。返却するレコードがないときは、0が設定されます。

[bsrtmrge関数の場合]

PowerSORTに渡すレコードの長さを設定します。テキストファイルのレコードを渡すときは、改行文字までの長さを設定します。

unsigned char  rec_status

[bsrtput関数の場合]

レコードを渡し終えたかどうかを通知します。以下のいずれかを設定します。

定義値

意味

BS_CONT

PowerSORTに渡すレコードはまだあります。

BS_ENDDATA

PowerSORTに渡すレコードは終わりました。レコードの終りを通知するときのrec_addrrec_lenには、0を指定します。

[bsrtget関数の場合]

使用しません。

[bsrtmrge関数の場合]

最終レコードか否かを通知します。以下のいずれかを設定します。

定義値

意味

BS_CONT

mgrec_stringのストリングにはレコードがまだあります。

BS_ENDDATA

mgrec_stringのストリングのレコードは終わりました。

unsigned char  mgrec_status

PowerSORTからレコードの入力要求が通知されます。
bsrtmrge関数を使用するときに設定されるメンバです。
以下のいずれかが設定されます。

定義値

意味

BS_REQ

レコードの入力要求を示します。
mgrec_stringが示すストリングのレコードを次のbsrtmrge関数で渡します。

BS_NOREQ

レコードの入力要求はありません。rec_addrrec_lenに0を設定して、再度bsrtmrge関数を発行します。

unsigned short  mgrec_string

PowerSORTに渡すレコードのストリング番号を設定します。
bsrtmrge関数で最初のレコードを渡すときに0を設定します。2回め以降はPowerSORTがストリング番号を設定するため参照だけになります。ユーザアプリケーションは、ここで設定されたストリング番号のレコードを、次のbsrtmrge関数発行時にPowerSORTへ渡してください。
bsrtmrge関数を使用するときに設定されるメンバです。

BSPTR_VOID  mgrec_addr

ユーザアプリケーションに返却するレコードのアドレスが設定されます。
返却するレコードがないときは<NULL>が設定されます。
bsrtmrge関数を使用するときに設定されるメンバです。

unsigned long  mgrec_len

ユーザアプリケーションに返却するレコードの長さが設定されます。
返却するレコードがないときは0が設定されます。
bsrtmrge関数を使用するときに設定されるメンバです。

unsigned long  hProcFile

PowerSORTが処理のために使用するメンバです。ユーザアプリケーションはこのメンバに対して何もする必要はありません。

unsigned long  sub_error_code

ファイルシステムまたは漢字ソートマージ機能でエラーが発生した場合、その詳細コードが設定されます。Btrieveファイルシステムでエラーが発生した場合は、Btrieveファイルに関するエラーコードが設定されます。また、漢字ソートマージ機能使用時には、ADJUSTに関するエラーコードまたはICONVに関するエラーコードが設定されています。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2004-2006