C APIでは、以下に示すデータの更新ができます。
XML文書の追加
レコードIDによるXML文書の削除
レコードIDによるXML文書の更新
参考
ダイレクトアクセスキーを使ったデータ更新も可能です。
ダイレクトアクセスキー機能の詳細については、“第6章 ダイレクトアクセス機能”を参照してください。
データを更新するサンプルプログラムは、“G.2 データの更新”を参照してください。
以降に、データの更新を行うアプリケーションの作成方法について説明します。
データを追加するには、ShunInsert関数を利用します。
データを追加する場合の流れについて、以下の図に示します。
図12.12 データを追加する場合の流れ
記述例
SHUNHSTMT StmtH; /* データ操作ハンドルの割当て */ ShunAllocHandle(ConH, &StmtH); (1) /* XML文書の追加 */ SHUNDATA Data[1]; |
事前にデータ操作ハンドルを割り当てします。データ操作ハンドルは、ShunAllocHandle関数に、親ハンドルとなるコネクションハンドルを指定して割り当てます。
ShunInsert関数に、データ操作ハンドル、追加するデータ件数、追加するXML文書を指定し、追加します。
ポイント
ShunInsert関数では、一度に複数のXML文書を追加することができます。次のいずれの形式も指定できます。
1つの追加データ領域に複数のXML形式の文書を連続して記述する。
複数の追加データ領域を指定する。
データの追加が完了したら、ShunFreeHandle関数でデータ操作ハンドルを解放します。
データを削除するには、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) |
事前にデータ操作ハンドルを割り当てます。データ操作ハンドルは、ShunAllocHandle関数に、親ハンドルとなるコネクションハンドルを指定して割り当てます。
ShunDeleteRecId関数に、データ操作ハンドル、削除するデータ件数、削除するレコードIDを指定し、削除を実行します。
ポイント
ShunDeleteRecId関数では、複数のレコードIDを指定することで、一度に複数のXML文書を削除することができます。
(3) データ操作ハンドルの解放
データの削除が完了したら、ShunFreeHandle関数でデータ操作ハンドルを解放します。
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) |
事前にデータ操作ハンドルを割り当てます。データ操作ハンドルは、ShunAllocHandle関数に、親ハンドルとなるコネクションハンドルを指定して割り当てます。
ShunUpdateRecId関数に、データ操作ハンドル、更新するデータ件数、更新するレコードID、更新するデータを指定し、更新を実行します。
ポイント
ShunUpdateRecId関数では、複数のレコードID、対応するデータを指定することで、一度に複数のXML文書を更新することができます。
データの更新が完了したら、ShunFreeHandle関数でデータ操作ハンドルを解放します。