Hitachi

Hitachi Advanced Data Binder AP開発ガイド


5.15 ?パラメタの値の一括転送

HADBクライアントからHADBサーバに?パラメタの値を転送する際,複数の?パラメタの値を一括して転送できます。HADBクライアントからHADBサーバにアクセスし,?パラメタを使用してデータの追加,更新,または削除をする場合に効果があります。

?パラメタの値の一括転送の概要を次の図に示します。

図5‒22 ?パラメタの値の一括転送の概要

[図データ]

[説明]

?パラメタの値を行の挿入値として,複数の行の挿入(INSERT文)を実行する場合,通常の?パラメタの値の転送処理では,?パラメタの値を1組(1つの行に挿入する?パラメタの値)ずつHADBサーバに転送します。

一方,?パラメタの値の一括転送処理では,2組以上の?パラメタの値をまとめて一括転送します。これによって,通信オーバヘッドが少なくなり,その分APの実行時間が短縮されます。

なお,この図では行の挿入(INSERT文)を例にしていますが,UPDATE文またはDELETE文についても,?パラメタの値を一括転送できます。

JDBCドライバを使用している場合は,PreparedStatementクラスのexecuteBatchメソッドまたはexecuteLargeBatchメソッドでSQL文を実行すると,?パラメタの値が一括転送されます。

CLI関数を使用している場合は,次に示す流れでSQL文を実行すると,?パラメタの値が一括転送されます。

  1. INSERT文,UPDATE文,またはDELETE文を前処理する

  2. a_rdb_SQLBindArrayParams()で,?パラメタの一括関連づけをする

  3. 1.で前処理した文ハンドルを使用して,a_rdb_SQLExecute()でSQL文を実行する

ODBCドライバを使用している場合は,?パラメタの値の一括転送は使用できません。

留意事項
  • SQL文の実行中にエラーが発生してロールバックが実行された場合,処理結果行数は破棄され,エラー情報だけがHADBクライアントに返却されます。

  • ?パラメタの値を一括転送すると,HADBサーバおよびHADBクライアントが使用するメモリ所要量が増加するため,メモリ所要量の再見積もりをしてください。HADBサーバが使用するメモリ所要量については,マニュアルHADB システム構築・運用ガイド通常運用時のメモリ所要量の求め方を参照してください。HADBクライアントが使用するメモリ所要量については,「付録C HADBクライアントのメモリ所要量の見積もり」を参照してください。

  • スカラ関数RANDOMCURSORを指定したSQL文に対して,?パラメタの値の一括転送を実行した場合,スカラ関数RANDOMCURSORは?パラメタの1組ごとに擬似乱数を生成します。