ページの先頭行へ戻る
Big Data Integration ServerV1.4.0 検索編アプリケーション開発ガイド
FUJITSU Software

12.2.3 データの更新

C APIでは、以下に示すデータの更新ができます。

参考

ダイレクトアクセスキーを使ったデータ更新も可能です。

ダイレクトアクセスキー機能の詳細については、“第6章 ダイレクトアクセス機能”を参照してください。

データを更新するサンプルプログラムは、“G.2 データの更新”を参照してください。

以降に、データの更新を行うアプリケーションの作成方法について説明します。


12.2.3.1 データを追加する

データを追加するには、ShunInsert関数を利用します。

データを追加する場合の流れについて、以下の図に示します。


図12.12 データを追加する場合の流れ


記述例

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

/* XML文書の追加 */
SHUNDATA Data[1];
Data[0].Data =

"<document>"
" <base>"
:
" </base>"
" <information>"
:
" </information>"
"</document>";
Data[0].Data_Len = strlen( Data[0].Data );
ShunInsert(StmtH, 1, Data);
(2) /* データ操作ハンドル解放 */ ShunFreeHandle(StmtH); (3)

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

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


(2) XML文書の追加

ShunInsert関数に、データ操作ハンドル、追加するデータ件数、追加するXML文書を指定し、追加します。

ポイント

ShunInsert関数では、一度に複数のXML文書を追加することができます。次のいずれの形式も指定できます。

  • 1つの追加データ領域に複数のXML形式の文書を連続して記述する。

  • 複数の追加データ領域を指定する。


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

データの追加が完了したら、ShunFreeHandle関数でデータ操作ハンドルを解放します。


12.2.3.2 レコードIDを指定してデータを削除する

データを削除するには、ShunDeleteRecId関数を利用します。


ShunDeleteRecId関数では、レコードID(コンダクタ制御情報および返信レコード識別子)を利用してデータを削除します。ShunDeleteRecId関数を実行する前に、ShunSearch関数を利用して、削除したいデータのレコードIDを取得しておく必要があります。

レコードIDを指定してデータを削除する場合の流れについて、以下の図に示します。


図12.13 レコードIDを指定してデータを削除する場合の流れ


記述例

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

/* レコードIDによる削除を実行 */
ShunDeleteRecId(StmtH, 1, Rec_Id_In);                       (2)

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

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

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


(2) XML文書の削除

ShunDeleteRecId関数に、データ操作ハンドル、削除するデータ件数、削除するレコードIDを指定し、削除を実行します。

ポイント

ShunDeleteRecId関数では、複数のレコードIDを指定することで、一度に複数のXML文書を削除することができます。


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

データの削除が完了したら、ShunFreeHandle関数でデータ操作ハンドルを解放します。


12.2.3.3 レコードIDを指定してデータを更新する

XML文書を更新するには、ShunUpdateRecId関数を利用します。


ShunUpdateRecId関数では、レコードID(コンダクタ制御情報および返信レコード識別子)を利用してデータを更新します。ShunUpdateRecId関数を実行する前に、ShunSearch関数を利用して、更新したいデータのレコードIDを取得しておく必要があります。レコードIDによるXML文書の更新とは、新しいXML文書で既存のXMLを置換することを指します。既存のXML文書中のデータを部分的に更新することはできません。

データを更新する場合の流れについて、以下の図に示します。


図12.14 データを更新する場合の流れ


記述例

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

/* レコードIDによる更新を実行 */
ShunUpdateRecId(StmtH, 1, Rec_Id_In, Data);                 (2)

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

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

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


(2) XML文書の更新

ShunUpdateRecId関数に、データ操作ハンドル、更新するデータ件数、更新するレコードID、更新するデータを指定し、更新を実行します。

ポイント

ShunUpdateRecId関数では、複数のレコードID、対応するデータを指定することで、一度に複数のXML文書を更新することができます。


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

データの更新が完了したら、ShunFreeHandle関数でデータ操作ハンドルを解放します。