ダイレクト検索には、ShunSearchKey関数を使用します。
C APIでのダイレクト検索の流れについて、以下の図に示します。
図6.6 ダイレクト検索の流れ
記述例
/* 以下のように用意されていることを仮定しています */ /* 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, "/", |
構造体SHUNKEYにダイレクトアクセスキーを設定します。
ShunSearchKey関数のパラメタに、データ操作ハンドル、ダイレクトアクセスキー名、リターン式、依頼ダイレクトアクセスキー数、依頼ダイレクトアクセスキーの配列を指定して検索を実行します。
ポイント
ShunSearchKey関数では、複数のダイレクトアクセスキーを指定することで、一度に複数のXML文書を取得することもできます。
ShunSearchKey関数では、検索した結果のアドレスを返却します。
検索した結果は、構造体の配列で構成されていますので、これをもとにデータを取り出します。また、XML文書が存在しない場合、配列の要素であるデータへのポインタにはNULLが、データサイズには0が設定されます。
参照
ダイレクトアクセスのサンプルプログラムは、“J.3.2 ダイレクトアクセスキーを使用してデータを検索する”を参照してください。