Interstage Shunsaku Data Manager アプリケーション開発ガイド - Microsoft(R) Windows(R) 2000/ Microsoft(R) Windows Server(TM) 2003 - - UNIX共通 -
目次 索引 前ページ次ページ

第1部 アプリケーション開発の基本> 第6章 ダイレクトアクセス機能> 6.4 ダイレクトアクセスキーでデータを検索する

6.4.3 C APIの場合

ダイレクト検索には、ShunSearchKey関数を使用します。

C APIでのダイレクト検索の流れについて、以下の図に示します。

[図: ダイレクト検索の流れ]

■記述例

/* 以下のように用意されていることを仮定しています          */
/* pKey       :ダイレクトアクセスキーを設定する構造体配列 */

SHUNHSTMT StmtH;
/* データ操作ハンドルの割当て */
ShunAllocHandle(ConH, &StmtH);

/* ダイレクトアクセスキーによる検索を実行 */
pKey[0].Key = "20061101,00000001";                                      (1)
pKey[0].Key_Len = strlen( pKey[0].Key );
pKey[1].Key = "20061101,00000002";                                      (1)
pKey[1].Key_Len = strlen( pKey[1].Key );
pKey[2].Key = "20061101,00000003";                                      (1)
pKey[2].Key_Len = strlen( pKey[2].Key );
ShunSearchKey(StmtH, "key1", SHUN_KEY_COMPLETE_MATCH, 3, pKey, "/",
              &Return_Cnt, &Rec_Id_Out, &Data, &Key_Out);               (2)

/* 検索した結果の取出し */
printf("結果件数              = %d\n", Return_Cnt);
if(Return_Cnt > 0) {
  for (i = 0; i < Return_Cnt; i++) {
    printf("[結果]%d件目 = %s\n", i+1, Data[i].Data);                    (3)
  }
}

/* データ操作ハンドルの解放 */
ShunFreeHandle(StmtH);

◆ダイレクトアクセスキーの設定

構造体SHUNKEYにダイレクトアクセスキーを設定します。

◆(2) 検索の実行

ShunSearchKey関数のパラメタに、データ操作ハンドル、ダイレクトアクセスキー名、リターン式、依頼ダイレクトアクセスキー数、依頼ダイレクトアクセスキーの配列を指定して検索を実行します。

ShunSearchKey関数では、複数のダイレクトアクセスキーを指定することで、一度に複数のXML文書を取得することもできます。

◆(3) 検索結果の取出し

ShunSearchKey関数では、検索した結果のアドレスを返却します。

検索した結果は、構造体の配列で構成されていますので、これをもとにデータを取り出します。また、XML文書が存在しない場合、配列の要素であるデータへのポインタにはNULLが、データサイズには0が設定されます。

ダイレクトアクセスのサンプルプログラムは、“J.3.2 ダイレクトアクセスを使用してデータを検索する”を参照してください。

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

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