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

第2部 APIでのアプリケーション開発> 第11章 C APIのアプリケーション開発> 11.2 C APIの使用方法> 11.2.2 データの検索

11.2.2.5 レコードIDを利用してXML文書全体を取得する

XML文書の中から必要なXML文書を検索する場合、はじめからXML文書全体を取得するのではなく、XML文書を識別するのに有効な部分情報を取得します。利用者は、これらの部分情報から、詳細情報を取得したいXML文書を特定します。

XML文書の全体を取り出すには、部分情報を取り出したときに一緒に返却されるレコードID(コンダクタ制御情報および返信レコード識別子)を利用します。ShunSearchRecId関数の引数にレコードIDを指定することで目的のXML文書の全体を取り出すことができます。

レコードIDを利用してXML文書全体を取得する場合の流れについて、以下の図に示します。

[図:レコードIDを利用してXML文書全体を取得する場合の流れ]

■記述例

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

/* レコードIDを指定して検索を実行 */
ShunSearchRecId(StmtH, 1, Rec_Id_In, &Rec_Id_Out, &Data);      (2)

/* 検索した結果の取出し */
printf("[結果] = %s\n", Data[0].Data);                         (3)

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

◆(1) データ操作ハンドルの割当て

事前にデータ操作ハンドルを割り当てます。データ操作ハンドルは、ShunAllocHandle関数に、親ハンドルとなるコネクションハンドルを指定して割り当てます。

◆(2) 検索の実行

ShunSearchRecId関数のパラメタに、データ操作ハンドル、依頼レコード数、依頼レコードIDの配列を指定して検索を実行します。

ShunSearchRecId関数では、複数のレコードIDを指定することで、一度に複数のXML文書を取得することもできます。

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

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

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

◆(4) データ操作ハンドルの解放

データの検索および結果の取出しが完了したら、ShunFreeHandle関数でデータ操作ハンドルを解放します。


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

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