ソートマージ


13.1.2 関数の詳細

このマニュアルでは,次に示す形式で関数を記載します。

[図データ]

なお,各関数での指定内容の詳細は,各機能のコマンドの使い方,および「3.3 指定できる値の範囲」を参照してください。

また,詳細エラーコードについては,「13.4 詳細エラーコード」を参照してください。

〈この項の構成〉

(1) WNS_Create

形式
int  WNS_Create  (int  ハンドル数);
機能

ハンドル管理テーブルを確保し,初期化します。この関数で確保されたハンドル管理テーブルは,WNS_Releaseが呼び出されるまで有効です。

戻り値
int

正常に終了した場合は「0」,エラーが発生した場合はその詳細エラーコードを返します。

パラメタ
int ハンドル数

ハンドル管理テーブルの総数(エラーハンドルを含め,Create関数で同時に取得できるハンドル数)を「16〜65,535」の範囲で指定します。ハンドル管理テーブルは,Create関数で使用され,Release関数で解放されます。

指定を省略した場合は「16」が設定されます。

(2) WNS_File_Create

形式
WNS_FILE_HANDLE  WNS_File_Create
                          (int  ファイル数,
                           WNS_FILEORG  ファイル編成,
                           int  ファイルレコード長,
                           WNS_FILEOPT  オプション情報);
機能

ファイル情報領域を確保して初期化します。この関数で確保されたファイル情報領域は,WNS_File_ReleaseまたはWNS_Releaseが呼び出されるまで有効です。

戻り値
WNS_FILE_HANDLE

確保したファイル情報領域のハンドルです。確保できなかった場合は,「0」を返します。

パラメタ
int ファイル数

ファイル数を「1〜256」の範囲で指定します。ただし,出力ファイル情報の場合は「1」を指定します。

WNS_FILEORG ファイル編成

ファイルのファイル編成を指定します。

  • WNS_FIX_SAM:固定長順編成ファイル

  • WNS_VAR_SAM:可変長順編成ファイル

  • WNS_FIX_RSAM:固定長相対ファイル

  • WNS_VAR_RSAM:可変長相対ファイル

  • WNS_FIX_ISAM:固定長索引ファイル(入力ファイルのときだけ有効)

  • WNS_VAR_ISAM:可変長索引ファイル(入力ファイルのときだけ有効)

  • WNS_TEXT:テキストファイル

int ファイルレコード長

固定長順編成ファイルまたはテキストファイルの場合,レコード長(テキストファイルの場合,最大レコード長)を「1〜65,535」の範囲で指定します。それ以外のファイルの場合は指定を省略できます。

WNS_FILEOPT オプション情報

ファイルに対するオプション情報を指定します。

  • WNS_ORDER:重複レコードの入力順序保存機能を指定(入力ファイルのときだけ有効)

  • WNS_NOTRW:出力ファイルの上書き禁止を指定(出力ファイルのときだけ有効)

(3) WNS_File_Init

形式
int  WNS_File_Init  (WNS_FILE_HANDLE  ファイルハンドル);
機能

ファイル情報領域を,WNS_File_Create実行直後の状態に戻します(ファイル情報領域の初期化)。この関数で初期化されたファイル情報領域は,WNS_File_ReleaseまたはWNS_Releaseが呼び出されるまで有効です。

戻り値
int

正常に終了した場合は「0」,エラーが発生した場合はその詳細エラーコードを返します。

パラメタ
WNS_FILE_HANDLE ファイルハンドル

ファイル情報領域のハンドルを指定します。

(4) WNS_File_Release

形式
int  WNS_File_Release  (WNS_FILE_HANDLE  ファイルハンドル);
機能

ファイル情報領域を解放します。

戻り値
int

正常に終了した場合は「0」,エラーが発生した場合はその詳細エラーコードを返します。

パラメタ
WNS_FILE_HANDLE ファイルハンドル

ファイル情報領域のハンドルを指定します。

(5) WNS_File_Set

形式
int  WNS_File_Set  (WNS_FILE_HANDLE  ファイルハンドル,
                              WNS_FILENAME  ファイル名);
機能

ファイル情報領域にファイル名を指定します。この関数を複数回呼び出した場合は,すべてのファイル名が有効です。ただしファイル数は,WNS_File_Createで設定したファイル数より多く設定できません。

この関数で設定したファイル名は,WNS_File_Init,WNS_File_ReleaseまたはWNS_Releaseが呼び出されるまで有効です。

戻り値
int

正常に終了した場合は「0」,エラーが発生した場合はその詳細エラーコードを返します。

パラメタ
WNS_FILE_HANDLE ファイルハンドル

ファイル情報領域のハンドルを指定します。

WNS_FILENAME ファイル名

ファイル名を設定した文字列バッファポインタを指定します。

(6) WNS_GetError

形式
int  WNS_GetError  (WNS_ERR_HANDLE  エラーハンドル,
                         WNS_ERR_INF  エラー情報テーブルポインタ);
機能

WNS_Sort,WNS_Sum,WNS_SelectおよびWNS_SortEXでエラーとなった場合の詳細エラー情報テーブルを取得します。

この関数を実行したあと,使用したエラーハンドルは削除されます。

戻り値
int

正常に終了した場合は「0」,エラーが発生した場合はその詳細エラーコードを返します。

パラメタ
WNS_ERR_HANDLE エラーハンドル

エラー発生時のエラーハンドルを指定します。

WNS_ERR_INF エラー情報テーブルポインタ

詳細エラー情報を設定するためのエラー情報テーブルへのポインタを指定します。エラー情報テーブルを次に示します。

[図データ]

(7) WNS_GetMsg

形式
int  WNS_GetMsg  (WNS_ERR_INF  エラー情報テーブルポインタ,
                           void  メッセージ領域);
機能

WNS_GetErrorで取得したエラー情報テーブルを基に,エラーメッセージテキストを取得します。

戻り値
int

エラーメッセージテキストの長さを返します。エラーコードに該当するメッセージテキストがない場合は「0」を返します。

パラメタ
WNS_ERR_INF エラー情報テーブルポインタ

WNS_GetErrorで取得した詳細エラー情報テーブルへのポインタを指定します。

void メッセージ領域

メッセージテキストを設定するバッファ(256バイト以上)へのポインタを指定します。

(8) WNS_Key_Create

形式
WNS_KEY_HANDLE  WNS_Key_Create  (int  キー数,
                                           WNS_KEYOPT  オプション情報);
機能

キー情報領域を確保して初期化します。

この関数で確保されたキー情報領域は,WNS_Key_ReleaseまたはWNS_Releaseが呼び出されるまで有効です。

戻り値
WNS_KEY_HANDLE

確保したキー情報領域のハンドルです。確保できなかった場合は「0」を返します。

パラメタ
int キー数

ソートキーおよび集約キー項目の数を「1〜64」の範囲で指定します。

WNS_KEYOPT オプション情報

ソートキーおよび集約キーに対するオプション情報を指定します。

WNS_BIGENDIAN:数値項目がbig endian

(9) WNS_Key_Init

形式
int  WNS_Key_Init  (WNS_KEY_HANDLE  キーハンドル);
機能

キー情報領域を,WNS_Key_Create実行直後の状態に戻します(キー情報領域の初期化)。

この関数で初期化されたキー情報領域は,WNS_Key_ReleaseまたはWNS_Releaseが呼び出されるまで有効です。

戻り値
int

正常に終了した場合は「0」,エラーが発生した場合はその詳細エラーコードを返します。

パラメタ
WNS_KEY_HANDLE キーハンドル

キー情報領域のハンドルを指定します。

(10) WNS_Key_Release

形式
int  WNS_Key_Release  (WNS_KEY_HANDLE  キーハンドル);
機能

キー情報領域を解放します。

戻り値
int

正常に終了した場合は「0」,エラーが発生した場合はその詳細エラーコードを返します。

パラメタ
WNS_KEY_HANDLE キーハンドル

キー情報領域のハンドルを指定します。

(11) WNS_Key_Set

形式
int  WNS_Key_Set  (WNS_KEY_HANDLE  キーハンドル,
                            WNS_KEYATTR  キー属性,
                            int  キー位置,
                            int  キー長,
                            WNS_KEYORDER  キー並び);
機能

キー情報領域にソートキーおよび集約キーの並び,属性,位置および長さを設定します。この関数を複数回呼び出した場合は,すべてのキーが有効です。ただし,キーの数は,WNS_Key_Createで設定したキー数より多く設定できません。

この関数で指定したソートキーおよび集約キーの情報は,WNS_Key_Init,WNS_Key_ReleaseまたはWNS_Releaseが呼び出されるまで有効です。

戻り値
int

正常に終了した場合は「0」,エラーが発生した場合はその詳細エラーコードを返します。

パラメタ
WNS_KEY_HANDLE キーハンドル

キー情報領域のハンドルを指定します。

WNS_KEYATTR キー属性

ソートキーおよび集約キーの属性を指定します。

  • WNS_CHAR:文字項目

  • WNS_SIGN_BIN:符号付き2進項目

  • WNS_UNS_BIN:符号なし2進項目

  • WNS_PACK_DEC:内部10進項目

  • WNS_ZONE_DEC:外部10進項目

  • WNS_L_ZONE_DEC:左符号外部10進項目

  • WNS_R_SEP_DEC:右分離符号外部10進項目

  • WNS_L_SEP_DEC:左分離符号外部10進項目

  • WNS_FLOAT:内部浮動小数点項目

  • WNS_EBCDIK:文字(EBCDIK順)項目

  • WNS_DATE:日付(英数字)項目

int キー位置

ソートキーおよび集約キー項目のバイト位置を「0〜65,534」の範囲で指定します。

int キー長

ソートキーおよび集約キーのバイト長を「1〜4,096」の範囲で指定します。

WNS_KEYORDER キー並び

昇順,降順のどちらでソートするかを指定します。

  • WNS_ASC:昇順ソート

  • WNS_DES:降順ソート

(12) WNS_Release

形式
WNS_Release  ( );
機能

WNS_Createで確保したハンドル管理テーブルを解放します。

この関数を呼び出したあとは,WNS_Createが呼び出されるまで,すべての関数が無効になります。

戻り値

なし。

パラメタ

なし。

(13) WNS_Sel_Create

形式
WNS_SEL_HANDLE  WNS_Sel_Create  (int  選択条件式数,
                                         WNS_SELOPT  オプション情報);
機能

選択条件式の情報領域を確保して初期化します。

この関数で確保された選択条件式の情報領域は,WNS_Sel_ReleaseまたはWNS_Releaseが呼び出されるまで有効です。

戻り値
WNS_SEL_HANDLE

確保した選択条件式情報の領域のハンドルです。確保できなかった場合は「0」を返します。

パラメタ
int 選択条件式数

選択条件式の数を「1〜64」の範囲で指定します。

WNS_SELOPT オプション情報

選択条件式に対するオプション情報を指定します。

  • WNS_NOT_SELECT:選択条件式を満たさないデータを入力

  • WNS_BIGENDIAN:数値項目がbig endian

(14) WNS_Select

形式
WNS_ERR_HANDLE  WNS_Select (WNS_FILE_HANDLE  入力ファイルハンドル,
                                  WNS_FILE_HANDLE  出力ファイルハンドル,
                                  WNS_SEL_HANDLE  選択条件式ハンドル);
機能

選択機能を実行します。

戻り値
WNS_ERR_HANDLE

関数が正常に終了した場合は「0」,エラーが発生した場合はそのエラーハンドルを返します。

パラメタ
WNS_FILE_HANDLE 入力ファイルハンドル

入力ファイル情報領域のハンドルを指定します。

WNS_FILE_HANDLE 出力ファイルハンドル

出力ファイル情報領域のハンドルを指定します。入力ファイル領域のハンドルと同じ値は指定できません。

WNS_SEL_HANDLE 選択条件式ハンドル

選択条件式の情報領域のハンドルを指定します。

(15) WNS_Sel_Init

形式
int  WNS_Sel_Init  (WNS_SEL_HANDLE  選択条件式ハンドル);
機能

選択条件式の情報領域を,WNS_Sel_Create実行直後の状態に戻します(選択条件式の情報領域の初期化)。

この関数で初期化された選択条件式の情報領域は,WNS_Sel_ReleaseまたはWNS_Releaseが呼び出されるまで有効です。

戻り値
int

正常に終了した場合は「0」,エラーが発生した場合はその詳細エラーコードを返します。

パラメタ
WNS_SEL_HANDLE 選択条件式ハンドル

選択条件式の領域のハンドルを指定します。

(16) WNS_Sel_Release

形式
int  WNS_Sel_Release  (WNS_SEL_HANDLE  選択条件式ハンドル);
機能

選択条件式の情報領域を解放します。

戻り値
int

正常に終了した場合は「0」,エラーが発生した場合はその詳細エラーコードを返します。

パラメタ
WNS_SEL_HANDLE 選択条件式ハンドル

選択条件式の領域のハンドルを指定します。

(17) WNS_Sel_Set

形式
int  WNS_Sel_Set  (WNS_SEL_HANDLE  選択条件式ハンドル,
                          WNS_LOGOPER  論理演算子,
                          WNS_CMPATTR  比較項目の属性,
                          int  比較項目のバイト位置,
                          int  比較項目のバイト長,
                          WNS_COMPARE  比較演算子,
                          WNS_VALATTR  条件値の属性,
                          WNS_VALADDR  条件値エリアのアドレス,
                          int  条件値エリアのバイト長);
機能

選択条件式の情報領域に,選択条件式の内容を設定します。この関数を複数回呼び出した場合,すべての選択条件式が有効です。ただし,選択条件式の設定数は,WNS_Sel_Createで設定した選択条件式の数より少なくしてください。

この関数で指定した選択条件式の情報は,WNS_Sel_Init,WNS_Sel_ReleaseまたはWNS_Releaseが呼び出されるまで有効です。

戻り値
int

正常に終了した場合は「0」,エラーが発生した場合はその詳細エラーコードを返します。

パラメタ
WNS_SEL_HANDLE 選択条件式ハンドル

選択条件式領域のハンドルを指定します。

WNS_LOGOPER 論理演算子

選択条件式を接続する論理演算子を指定します。

  • WNS_SL_NON:なし(先頭の選択条件式にだけ有効)

  • WNS_SL_AND:AND(論理積)

  • WNS_SL_OR:OR(論理和)

WNS_CMPATTR 比較項目の属性

比較項目の属性を指定します。

  • WNS_CHAR:文字項目

  • WNS_SIGN_BIN:符号付き2進項目

  • WNS_UNS_BIN:符号なし2進項目

  • WNS_PACK_DEC:内部10進項目

  • WNS_ZONE_DEC:外部10進項目

  • WNS_L_ZONE_DEC:左符号外部10進項目

  • WNS_R_SEP_DEC:右分離符号外部10進項目

  • WNS_L_SEP_DEC:左分離符号外部10進項目

  • WNS_FLOAT:内部浮動小数点項目

  • WNS_EBCDIK:文字(EBCDIK順)項目

  • WNS_DATE:日付(英数字)項目

int 比較項目のバイト位置

比較項目のバイト位置を「0〜65,534」の範囲で指定します。

int 比較項目のバイト長

比較項目のバイト長を「1〜4,096」の範囲で指定します。

WNS_COMPARE 比較演算子

比較演算子を指定します。

  • WNS_SL_EQ:比較項目=条件値

  • WNS_SL_NE:比較項目≠条件値

  • WNS_SL_GT:比較項目>条件値

  • WNS_SL_GE:比較項目≧条件値

  • WNS_SL_LT:比較項目<条件値

  • WNS_SL_LE:比較項目≦条件値

WNS_VALATTR 条件値の属性

条件値の属性を設定します。

  • WNS_VAL_CHAR:文字条件値

  • WNS_VAL_NUM :数値条件値

  • WNS_VAL_HEX :16進数条件値

  • WNS_VAL_DATE :日付条件値

WNS_VALADDR 条件値エリアのアドレス

条件値エリアの先頭ポインタを指定します。

int 条件値エリアのバイト長

条件値エリアのバイト長を「1〜8,192」の範囲で指定します。

(18) WNS_Sort

形式
WNS_ERR_HANDLE  WNS_Sort
                (WNS_FILE_HANDLE  入力ファイルハンドル,
                 WNS_FILE_HANDLE  出力ファイルハンドル,
                 WNS_KEY_HANDLE  ソートキーハンドル,
                 int  ワークバッファサイズ,
                 WNS_WORKDIR  ソート用一時ファイルディレクトリ);
機能

ソート機能を実行します。

戻り値
WNS_ERR_HANDLE

正常に終了した場合は「0」,エラーが発生した場合はその詳細エラーハンドルを返します。

パラメタ
WNS_FILE_HANDLE 入力ファイルハンドル

入力ファイル領域のハンドルを指定します。

WNS_FILE_HANDLE 出力ファイルハンドル

出力ファイル領域のハンドルを指定します。

WNS_KEY_HANDLE ソートキーハンドル

ソートキー情報領域のハンドルを指定します。

int ワークバッファサイズ

ソート実行時に使用するワークバッファサイズをKB単位で,「128〜2,000,000」の範囲で指定します。指定を省略した場合は「1024」が設定されます。

WNS_WORKDIR ソート用一時ファイルディレクトリ

ソート用一時ファイルを生成するディレクトリ名を設定した,文字列バッファポインタを指定します。指定を省略した場合は,環境変数「temp」か「tmp」で指定したディレクトリ,またはカレントディレクトリが使用されます。

(19) WNS_SortEX

形式
WNS_ERR_HANDLE  WNS_SortEX  (WNS_PARM_FILE  パラメタファイル名);
機能

拡張SORT機能を実行します。

戻り値
WNS_ERR_HANDLE

正常に終了した場合は「0」,エラーが発生した場合はそのエラーハンドルを返します。

パラメタ
WNS_PARM_FILE パラメタファイル名

パラメタファイル名がある文字列バッファへのポインタを指定します。

パラメタファイルについては,「11. 拡張SORTコマンドの使い方(Windowsの場合)」を参照してください。

(20) WNS_Sum

形式
WNS_ERR_HANDLE  WNS_Sum
                        (WNS_FILE_HANDLE  入力ファイルハンドル,
                        WNS_FILE_HANDLE  出力ファイルハンドル,
                        WNS_KEY_HANDLE  集約キーハンドル,
                        WNS_SUM_HANDLE  集約項目ハンドル);
機能

集約機能を実行します。

戻り値
WNS_ERR_HANDLE

正常に終了した場合は「0」,エラーが発生した場合はそのエラーハンドルを返します。

パラメタ
WNS_FILE_HANDLE 入力ファイルハンドル

入力ファイル情報領域のハンドルを指定します。

WNS_FILE_HANDLE 出力ファイルハンドル

出力ファイル情報領域のハンドルを指定します。入力ファイル領域のハンドルと同じ値は指定できません。

WNS_KEY_HANDLE 集約キーハンドル

集約キー情報領域のハンドルを指定します。

WNS_SUM_HANDLE 集約項目ハンドル

集約項目情報領域のハンドルを指定します。無条件レコード抽出機能を使用する場合は「0」を指定します。

(21) WNS_Sum_Create

形式
WNS_SUM_HANDLE  WNS_Sum_Create
                               (int  集約項目数,
                                WNS_SUMOPT  オプション情報,
                                WNS_SUMOPT値);
機能

集約項目の情報領域を確保して初期化します。

この関数で確保された集約項目の情報領域は,WNS_Sum_ReleaseまたはWNS_Releaseが呼び出されるまで有効です。

戻り値
WNS_SUM_HANDLE

確保した集約項目の情報領域のハンドルです。確保できなかった場合は「0」を返します。

パラメタ
int 集約項目数

集約項目数を「1〜64」の範囲で指定します。

WNS_SUMOPT オプション情報

集約項目に対するオプション情報を指定します。

WNS_SUMOPT値
  • WNS_OVERFLOW_10:2進数の桁あふれを10進表示の桁数で判定

  • WNS_BIGENDIAN:数値項目がbig endian

(22) WNS_Sum_Init

形式
int  WNS_Sum_Init   (WNS_SUM_HANDLE  集約項目ハンドル);
機能

集約項目の情報領域を,WNS_Sum_Create実行直後の状態に戻します(集約項目の情報領域の初期化)。

この関数で初期化された集約項目の情報領域は,WNS_Sum_Release,またはWNS_Releaseが呼び出されるまで有効です。

戻り値
int

正常に終了した場合は「0」,エラーが発生した場合はその詳細エラーコードを返します。

パラメタ
WNS_SUM_HANDLE 集約項目ハンドル

集約項目の情報領域のハンドルを指定します。

(23) WNS_Sum_Release

形式
int  WNS_Sum_Release  (WNS_SUM_HANDLE  集約項目ハンドル);
機能

集約項目の情報領域を解放します。

戻り値
int

正常に終了した場合は「0」,エラーが発生した場合はその詳細エラーコードを返します。

パラメタ
WNS_SUM_HANDLE 集約項目ハンドル

集約項目の情報領域のハンドルを指定します。

(24) WNS_Sum_Set

形式
int  WNS_Sum_Set  (WNS_SUM_HANDLE  集約項目ハンドル,
                     WNS_SUMATTR  項目属性,
                     int  項目位置,
                     int  項目長);
機能

集約項目の情報領域に集約項目の属性,位置,および長さを設定します。この関数を複数回呼び出した場合は,すべての集約項目が有効です。ただし,集約項目の数は,WNS_Sum_Createで設定した集約項目数より多く設定できません。

この関数で設定された集約項目の情報は,WNS_Sum_Init,WNS_Sum_ReleaseまたはWNS_Releaseが呼び出されるまで有効です。

戻り値
int

正常に終了した場合は「0」,エラーが発生した場合はその詳細エラーコードを返します。

パラメタ
WNS_SUM_HANDLE 集約項目ハンドル

集約項目情報領域のハンドルを指定します。

WNS_SUMATTR 項目属性

集約項目の属性を指定します。

  • WNS_SIGN_BIN:符号付き2進項目

  • WNS_UNS_BIN:符号なし2進項目

  • WNS_PACK_DEC:内部10進項目

  • WNS_ZONE_DEC:外部10進項目

  • WNS_L_ZONE_DEC:左符号外部10進項目

  • WNS_R_SEP_DEC:右分離符号外部10進項目

  • WNS_L_SEP_DEC:左分離符号外部10進項目

int 項目位置

集約項目のバイト位置を「0〜65,534」の範囲で指定します。

int 項目長

集約項目のバイト長を「1〜19」の範囲で指定します。

(25) WNS_Date_Set

形式
int  WNS_Date_Set  (int  基準年度);
機能

日付項目使用時の基準年度を設定します。この関数を省略した場合,基準年度「70」を仮定します。

戻り値
int

正常終了した場合は「0」,エラーが発生した場合はその詳細エラーコード(負)を返します。

パラメタ
int 基準年度

日付項目の基準年度(0〜99)を指定します。

(26) WNS_Work_Set

形式
int  WNS_Work_Set  (WNS_WORKDIR  マージ用一時ファイルディレクトリ);
機能

ソート実行で,マージ用一時ファイルを使用するとき,マージ用一時ファイルの情報を設定します。

戻り値
int

正常終了した場合は「0」,エラーが発生した場合はその詳細エラーコード(負)を返します。

パラメタ
WNS_WORKDIR マージ用一時ファイルディレクトリ

マージ用一時ファイルを生成するディレクトリ名を設定した,文字列バッファポインタを指定します。指定を省略した場合は,WNS_SORT,WNS_SORTEXで指定したソート用一時ファイルディレクトリ,またはカレントディレクトリが使用されます。