機能
入力パラメタを基に検索を行い、検索結果を呼出し元に通知します。
記述形式
#include “libshun.h” int shunsearch2( char *host_Name, /* in (1)ホスト名 */ int Port_No, /* in (2)ポート番号 */ int Reply_No, /* in (3)返信開始番号 */ int Request_Cnt, /* in (4)返信要求件数 */ char *Query, /* in (5)検索式領域 */ char *Return, /* in (6)リターン式領域 */ char *Reserve1, /* in (7)リザーブ(NULL) */ char *Reserve2, /* in (8)リザーブ(NULL) */ int Secure_Size, /* in (9)返信データ格納領域サイズ */ int *Hit_Cnt, /* out (10)ヒット件数 */ int *Return_Cnt, /* out (11)応答返信件数 */ int *Stored_Size, /* out (12)返信データ格納済領域サイズ */ Sdsma *Dsma, /* out (13)返信データ格納管理配列 */ char *Data /* out (14)返信データ格納領域 */ /* (Len=Secure_Size) */ ); |
復帰値
本関数が通知するエラーコードが返却されます。
正常終了の場合は、“0”です。
復帰値が“0”以外の場合、返却結果は保証されません。
エラーコードの詳細については、“N.7 出力されるエラーコード”を参照してください。
パラメタ
ディレクタサーバのホスト名またはIPアドレスを指定します。
conductorを使用する場合は、conductorが稼働しているサーバのホスト名またはIPアドレスを指定します。
conductorを使用しない場合は、directorが稼働しているサーバのホスト名またはIPアドレスを指定します。
サイズは24バイト以内です。
ディレクタサーバの要求受付ポート番号または検索受付ポート番号を指定します。
conductorを使用する場合は、conductor用動作環境ファイルのMySearchPortを指定します。
conductorを使用しない場合は、director用動作環境ファイルのMySearchPortを指定します。
本関数の出力結果として返信されるデータの最大件数を指定します。
1以上の値を指定します。
クライアントの要求への応答最大件数を超えた値を指定した場合、クライアントの要求への応答最大件数までが返信されます。クライアントの要求への応答最大件数は、conductorを使用する場合はconductor用動作環境ファイルのAnsMaxを、conductorを使用しない場合はdirector用動作環境ファイルのAnsMaxを参照します。
検索式の領域へのポインタを設定します。検索式には、director用動作環境ファイルのCharacterCodeに定義した文字コードの文字列を設定してください。検索式は1~1048575バイトの範囲で指定してください。
検索式の詳細については、“B.3 検索式”を参照してください。
リターン式の領域へのポインタを設定します。リターン式の領域は本関数の呼出し元で用意する必要があります。リターン式は0~1048575バイトの範囲で指定してください。
リターン式の詳細については、“B.4 リターン式”を参照してください。
NULLを指定します。
NULLを指定します。
検索結果に対する返信データを返却するために使用した領域のサイズが返却されます。
返信データ格納済領域サイズの領域は0クリアして設定してください。
返信データ格納領域のサイズが不足していた場合は、返信データを格納するために必要な領域サイズが返却されます。
検索の結果が返却される、返信データ格納管理配列へのポインタを設定します。返信データ格納管理配列は本関数の呼出し元で用意する必要があります。
返信データ格納管理配列の詳細については、“【返信データ格納管理構造体】”を参照してください。
本関数を実行した結果が返却される、返信データ格納領域へのポインタを設定します。
返信データ格納領域の領域を0クリアして設定してください。
返信データ格納領域は(9)返信データ格納領域サイズで指定した領域を本関数の呼出し元で用意する必要があります。
返信データ格納領域に格納された各返信データの情報を取得するには、返信データ格納管理配列に通知される各返信データのポインタとサイズを参照してください。
本関数を実行した結果が返却される、返信データ格納管理配列の構造体です。この領域は、本関数の呼出し元が返信要求件数分の配列の大きさであらかじめ用意する必要があります。
typedef struct /* データ格納管理域 */ { char *Rec_Ctl; /* (1)コンダクタ制御情報域へのポインタ */ char *Rec_ID; /* (2)返信レコード識別子域へのポインタ */ char *Rec_Ptr; /* (3)返信データへのポインタ */ int Rtn_Len; /* (4)返信データのサイズ */ } Sdsma; |
返信データのコンダクタ制御情報域へのポインタを、あらかじめ設定してください。通知領域はあらかじめ確保し、0クリアして設定してください。
通知領域はlibshun.hのCOND_CTL_LENに定義した長さの領域を確保してください。
注意
コンダクタ制御情報はバイナリデータです。str関数などの文字列関数は使用しないでください。
返信データのレコード識別子域へのポインタを、あらかじめ設定してください。通知領域はあらかじめ確保し、0クリアして設定してください。
通知領域はlibshun.hのROW_ID_LENに定義した長さの領域を確保してください。
注意
返信レコード識別子はバイナリデータです。str関数などの文字列関数は使用しないでください。
本関数の呼出し後に、返信データ格納領域における返信データへのポインタが返却されます。
返信データへのポインタの領域を0クリアして設定してください。
本関数の呼出し後に、返信データのサイズが返却されます。
返信データのサイズの領域は0クリアして設定してください。
shunsearch2のパラメタの説明図を以下に示します。
図N.1 shunsearch2のパラメタの説明図
注意
返信データ格納済領域のサイズが返信データ格納領域サイズに指定した値を超えた場合、以下の情報が設定されます。
返信データ格納済領域サイズには、データの格納に必要なサイズが返却されます。
エラーコードは-30です。
ヒット件数には、検索に該当したデータ(ヒット件数)が返却されます。
返信レコード識別子には、検索に該当したすべてのレコード識別子が返却されます。
リターン式にNULLを設定した場合、返信データは不要であると解釈し、レコード識別子のみが返却されます。
リターン式に、空文字“\0”または“/”を指定した場合、レコードの全体が返却されます。