Hitachi

Hitachi Advanced Data Binder AP開発ガイド


19.3.2 a_rdb_SQLEndTran()(トランザクションの終了)

〈この項の構成〉

(1) 機能

トランザクションを終了します。トランザクションが終了すると,その時点で割り当てられているすべての文ハンドルが解放されます。

(2) 形式

signed short a_rdb_SQLEndTran
(
  void                          *ConnectionHandle,   /* In */
  unsigned short                 CompletionType,     /* In */
  void                          *Option              /* In */
)

(3) 引数の説明

ConnectionHandle

コネクションハンドルを指定します。

CompletionType

次に示すどちらかの値を指定します。

  • a_rdb_SQL_COMMITCOMMIT(トランザクションの正常終了)する場合に指定します。

  • a_rdb_SQL_ROLLBACKROLLBACK(トランザクションの取り消し)する場合に指定します。

Option

NULLを指定します。

(4) 戻り値

  1. a_rdb_SQLEndTran()が正常に終了した場合,a_rdb_RC_SQL_SUCCESSが返却されます。

  2. トランザクションの終了には成功したが,サーバメッセージログファイルまたはクライアントメッセージログファイルを格納しているディスクが満杯になった場合,a_rdb_RC_SQL_WARNINGが返却されます。

  3. クライアントメッセージログファイルにメッセージが出力できない場合にエラーが発生したときは,エラー要因コードが返却されます。エラー要因コードについては,「19.8 CLI関数の戻り値」を参照してください。

(5) 留意事項

  1. 行の取り出し処理で発生したエラーを,コミットの延長で実行されたカーソルクローズで検知した場合,トランザクションは正常終了しないで,自動的にROLLBACKが実行されます。これ以外の理由でCOMMITに失敗した場合,HADBサーバは異常終了します。

  2. ROLLBACKに失敗した場合,HADBサーバは異常終了します。

  3. 次に示す場合,a_rdb_SQLEndTran()は実行できません。

    • コネクションが確立されていない場合

    • CompletionTypeに不正な値を指定した場合

    • 行の取り出し処理で発生したエラーを,コミットの延長で実行されたカーソルクローズで検知した場合

  4. a_rdb_SQLEndTran()を実行してトランザクションをコミットまたはロールバックした場合,次に示す状態になります。

    • オープンしているカーソルはすべてクローズされます。

    • 前処理されたSQL文は無効になります。

    • すべての文ハンドルが解放されます。