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

7.4.1 bsrtopen関数

bsrtopen関数は、PowerSORTのダイナミックリンクライブラリ(DLL)を仮想記憶域にロードし、各関数のアドレスをパラメタfuncに設定します。
さらにPowerSORTの実行環境を準備します。

記述形式

#include "bsrt.h"
int bsrtopen (__int64 BSRTVL, BSPTR_BSRTFUNC func,
              BSPTR_BSRTPRIM prim, BSPTR_BSRTREC rec,
              BSPTR_BSRTKEY key, BSPTR_BSRTFILE file,
              BSPTR_BSRTOPT opt);

機能説明

以下にbsrtopen関数の機能を示します。

パラメタ詳細

以下では、bsrtopen関数のパラメタについて説明します。

__int64    BSRTVL

PowerSORTのバージョンレベル(BSRTVL)を指定します。
BSRTVLはBSORT関数のヘッダーファイル(bsrt.h)で定義されています。このパラメタにより、BSORT関数のインターフェースに変更があってもユーザアプリケーションを変更することなく動作させることができます。

BSPTR_BSRTFUNC    func

BSORT関数(bsrtput関数bsrtget関数、およびbsrtmrge関数)の各アドレスが設定されます。
なお、BSPTR_BSRTFUNCは、BSRTFUNC構造体のポインタを意味します。

BSPTR_BSRTPRIM    prim

ソート機能、マージ機能、コピー機能、レコード選択機能、レコード再編成機能、先入力先出力(FIFO)機能、レコード集約機能、およびサプレス機能などを指定するパラメタです。
なお、BSPTR_BSRTPRIMは、BSRTPRIM構造体のポインタを意味します。

BSPTR_BSRTREC    rec

bsrtopen関数で指定する情報はありません。
エラーがあった場合、その詳細コードが設定されます。なお、BSPTR_BSRTRECは、BSRTREC構造体のポインタを意味します。

BSPTR_BSRTKEY    key

ソート機能、またはマージ機能で使用するキーフィールドを指定します。
なお、BSPTR_BSRTKEYは、BSRTKEY構造体のポインタを意味します。

BSPTR_BSRTFILE    file

入力ファイル、出力ファイル、および一時ファイルなどファイル情報を指定するパラメタです。
なお、BSPTR_BSRTFILEは、BSRTFILE構造体のポインタを意味します。

BSPTR_BSRTOPT    opt

オプション機能を指定するパラメタです。
集約フィールド、選択フィールド、再編成フィールド、および読み飛ばしレコード件数を指定する各構造体のポインタを指定します。これら構造体のポインタをいずれも指定しない場合は、bsrtopen関数のoptパラメタに0を指定します。いずれかを指定する場合は、それぞれ領域を確保した上で指定します。なお、BSPTR_BSRTOPTは、BSRTOPT構造体のポインタを意味します。

復帰値

bsrtopen関数の復帰値を説明します。

復帰値

意味

0

正常にbsrtopen関数が終了したことを示します。
続けて、bsrtput関数bsrtget関数bsrtmrge関数、またはbsrtclse関数を発行してください。

-1

bsrtopen関数で異常が発生したことを示します。
詳細な情報は、BSRTREC構造体のerrdetail、またはsub_error_codeに設定されます。続けて、bsrtclse関数を発行してください。

-2

bsrtopen関数で異常が発生したことを示します。
詳細な情報は、BSRTREC構造体のerrdetail、またはsub_error_codeに設定されます。なお、当復帰値の場合は、bsrtclse関数を発行する必要はありません。

注意

  • BSRTVLを除いた他のパラメタは、値を設定しない場合でもbsrtopen関数発行前に0クリアする必要があります。値を設定するパラメタは、設定前にフィールドを0クリアします。

  • bsrtopen関数のパラメタのうち、BSRTVL、func、prim、およびrecは省略できません。key、file、およびoptは省略できます。省略する場合は、bsrtopen関数のパラメタに0を指定します。


    例) key、file、およびoptを省略する場合の指定方法

    bsrtopen(BSRTVL, func, prim, rec,
             (BSPTR_BSRTKEY) 0, (BSPTR_BSRTFILE) 0,
             (BSPTR_BSRTOPT) 0);