ページの先頭行へ戻る
Interstage Shunsaku Data Manager V9.0.6 アプリケーション開発ガイド
FUJITSU Software

N.5 shunsearch3

機能

入力パラメタのレコード識別子に対応するデータを呼出し元に通知します。


記述形式

#include     “libshun.h”
int    shunsearch3(
        char    *host_Name,     /* in  (1)ホスト名                    */
        int     Port_No,        /* in  (2)ポート番号                  */
        int     Request_Cnt,    /* in  (3)返信要求件数                */
        char    **cond_ctl,     /* in  (4)コンダクタ制御情報域         */
        char    **rec_ID,       /* in  (5)返信レコード識別子域         */
        char    *Reserve,       /* in  (6)リザーブ(NULL)              */
        int     Secure_Size,    /* in  (7)返信データ格納領域サイズ     */
        int     *Hit_Cnt,       /* out (8)ヒット件数                  */
        int     *Return_Cnt,    /* out (9)応答返信件数                */
        int     *Stored_Size,   /* out(10)返信データ格納済領域サイズ   */
        Sdsma   *Dsma,          /* out(11)返信データ格納管理配列       */
        char    *Data           /* out(12)返信データ格納領域           */
                                /*   (Len=Secure_Size)                */
);

復帰値

本関数が通知するエラーコードが返却されます。

正常終了の場合は、“0”です。

復帰値が“0”以外の場合は、返却結果は保証されません。

エラーコードの詳細については、“N.7 出力されるエラーコード”を参照してください。


パラメタ

(1)ホスト名

ディレクタサーバのホスト名またはIPアドレスを指定します。

conductorを使用する場合は、conductorが稼働しているサーバのホスト名またはIPアドレスを指定します。

conductorを使用しない場合は、directorが稼働しているサーバのホスト名またはIPアドレスを指定します。

サイズは24バイト以内です。


(2)ポート番号

ディレクタサーバの要求受付ポート番号または検索受付ポート番号を指定します。

conductorを使用する場合は、conductor用動作環境ファイルのMySearchPortを指定します。

conductorを使用しない場合は、director用動作環境ファイルのMySearchPortを指定します。


(3)返信要求件数

本関数の出力結果として返信されるデータの最大件数を指定します。

1以上の値を指定します。


(4)コンダクタ制御情報域

以下の手順でコンダクタ制御情報域を設定します。


  1. コンダクタ制御情報としてlibshun.hのCOND_CTL_LENに定義した値の領域を確保します。shunsearch2で取得したコンダクタ制御情報を設定します。

  2. 検索要求数分のポインタ配列を確保します。

  3. 手順1.で確保したコンダクタ制御情報のポインタをポインタ配列の各要素に設定します。

  4. 手順2.で確保したポインタ配列のポインタをコンダクタ制御情報域に設定します。



(5)返信レコード識別子域

以下の手順で返信レコード識別子域を設定します。


  1. 返信レコード識別子を格納する領域をlibshun.hのROW_ID_LENに定義した値で確保します。shunsearch2で取得した返信レコード識別子を設定します。

  2. 検索要求数分のポインタ配列を確保します。

  3. 手順1.で確保した返信レコード識別子のポインタをポインタ配列の各要素に設定します。

  4. 手順2.で確保したポインタ配列のポインタを返信レコード識別子域に設定します。



(6)リザーブ

NULLを指定します。


(7)返信データ格納領域サイズ

返信データを格納する領域のサイズを指定します。


(8)ヒット件数

検索条件に一致した件数が返却されます。

ヒット件数の領域は0クリアして設定してください。


(9)応答返信件数

検索結果に対する応答返信件数が返却されます。応答返信件数分の返信データが返信データ格納領域に返却されます。

応答返信件数の領域は0クリアして設定してください。


(10)返信データ格納済領域サイズ

検索結果に対する返信データを返却するために使用した領域のサイズが返却されます。

返信データ格納済領域サイズの領域は0クリアして設定してください。

返信データ格納領域のサイズが不足していた場合は、返信データを格納するために必要な領域サイズが返却されます。


(11)返信データ格納管理配列

検索の結果が返却される、返信データ格納領域へのポインタを設定します。

返信データ格納管理配列は、本関数の呼出し元で用意する必要があります。

返信データ格納管理配列の詳細については、“【返信データ格納管理構造体】”を参照してください。


(12)返信データ格納領域

本関数を実行した結果が返却される、返信データ格納領域へのポインタを設定します。

返信データ格納領域の領域を0クリアして設定してください。

返信データ管理領域は(7)返信データ格納領域サイズで指定した領域を本関数の呼出し元で用意する必要があります。

返信データ格納領域に格納された各返信データの情報を取得するには、返信データ格納管理配列に通知される各返信データのポインタとサイズを参照してください。


【返信データ格納管理構造体

本関数を実行した結果が返却される、返信データ格納管理配列の構造体です。この領域は、本関数の呼出し元が返信要求件数分の配列の大きさであらかじめ用意する必要があります。


typedef struct             /* データ格納管理域                    */
{
    char    *Rec_Ctl;      /* (1)コンダクタ制御情報域へのポインタ  */
    char    *Rec_ID;       /* (2)返信レコード識別子域へのポインタ  */
    char    *Rec_Ptr;      /* (3)返信データへのポインタ           */
    int     Rtn_Len;       /* (4)返信データのサイズ               */
} Sdsma;

(1)コンダクタ制御情報域へのポインタ

返信データのコンダクタ制御情報域へのポインタを、あらかじめ設定してください。通知領域はあらかじめ確保し、0クリアして設定してください。

通知領域はlibshun.hのCOND_CTL_LENに定義した長さの領域を確保してください。

注意

コンダクタ制御情報はバイナリデータです。str関数などの文字列関数は使用しないでください。

(2)返信レコード識別子へのポインタ

返信データのレコード識別子域へのポインタを、あらかじめ設定してください。通知領域はあらかじめ確保し、0クリアして設定してください。

通知領域はlibshun.hのROW_ID_LENに定義した長さの領域を確保してください。

注意

返信レコード識別子はバイナリデータです。str関数などの文字列関数は使用しないでください。

(3)返信データへのポインタ

本関数の呼出し後に、返信データ格納領域における返信データへのポインタが返却されます。

返信データへのポインタの領域を0クリアして設定してください。


(4)返信データのサイズ

本関数の呼出し後に、返信データのサイズが返却されます。

返信データのサイズの領域は0クリアして設定してください。


shunsearch3のパラメタの説明図を以下に示します。

図N.2 shunsearch3のパラメタの説明図

注意

  • 返信データ格納済領域のサイズが返信データ格納領域サイズに指定した値を超えた場合、以下の情報が設定されます。

    • 返信データ格納済領域サイズには、データの格納に必要なサイズが返却されます。

    • エラーコードは-30です。

    • ヒット件数には、検索に該当したデータ(ヒット件数)が返却されます。

    • 返信レコード識別子には、検索に該当したすべてのレコード識別子が返却されます。

  • 応答返信件数には、返信要求件数が返却されます。この応答返信件数よりヒット件数が少ない場合、レコード識別子に存在していないレコード識別子が指定されています。この場合、存在していないレコード識別子の返信データ格納管理配列の返信データへのポインタには、NULLが返却されます。また返信データのサイズには0が返却されます。