Hitachi

Hitachi Advanced Data Binder AP開発ガイド


19.7.6 a_rdb_SQLResultInfo_t構造体(SQL結果情報)

〈この項の構成〉

(1) 機能

a_rdb_SQLResultInfo_t構造体には,SQLの結果情報がCLI関数の呼び出し単位で格納されます。

(2) 形式

typedef struct a_rdb_TG_ResultInfo {
  unsigned long long  RowCount ;                  /* Out */
  unsigned char       isInConnect ;               /* Out */
  unsigned char       EndTran ;                   /* Out */
  unsigned char       RowCountOverFlowed ;        /* Out */
  unsigned char       isMessageLogFull ;          /* Out */
  unsigned char       isClientLogFull ;           /* Out */
  char                _ResultInfo_rsv01[3] ;
  char                SQLState[5] ;               /* Out */
  char                _ResultInfo_rsv02[11] ;
} a_rdb_SQLResultInfo_t ;

(3) メンバの説明

RowCount

CLI関数の戻り値がa_rdb_RC_SQL_SUCCESSまたはa_rdb_RC_SQL_NO_DATAの場合,処理結果行数を返します。それ以外の場合は0を返します。

なお,処理結果行数は0〜18,446,744,073,709,551,615までの範囲で返却します。

18,446,744,073,709,551,615を超えてオーバフローした場合は,18,446,744,073,709,551,615を返却し,RowCountOverFloweda_rdb_SQL_OVERFLOWEDを設定します。

isInConnect

コネクションが確立されている(接続中)かどうかを返します。

  • 確立されていない場合:a_rdb_SQL_IS_NOT_IN_CONNECT

  • 確立されている場合:a_rdb_SQL_IS_IN_CONNECT

EndTran

トランザクションの実行結果を返します。

  • トランザクションが正常終了した場合:a_rdb_SQL_COMMITTED

  • トランザクションが取り消された場合:a_rdb_SQL_ROLLBACKED

  • トランザクションが実行中の場合:a_rdb_SQL_TRAN_NOT_ENDED

  • トランザクションが開始前の場合:a_rdb_SQL_TRAN_NOT_STARTED

  • トランザクションが正常終了したときにSQLエラーが発生し,トランザクションを取り消した場合:a_rdb_SQL_DETECTED_ERROR_IN_COMMIT

トランザクションの実行結果とトランザクションの状態の対応を次の表に示します。

表19‒10 トランザクションの実行結果とトランザクションの状態の対応

項番

トランザクションの実行結果

トランザクションの状態

1

a_rdb_SQL_COMMITTED

トランザクション開始可能

2

a_rdb_SQL_ROLLBACKED

トランザクション開始可能

3

a_rdb_SQL_TRAN_NOT_ENDED

トランザクション実行中

4

a_rdb_SQL_TRAN_NOT_STARTED

トランザクション開始可能

5

a_rdb_SQL_DETECTED_ERROR_IN_COMMIT

トランザクション開始可能

注※

COMMITおよびROLLBACKの成功によってトランザクションが決着し,次のトランザクションが開始できる状態です。

RowCountOverFlowed

RowCountがオーバフローしたかどうかを返します。

  • オーバフローしていない場合:a_rdb_SQL_NOT_OVERFLOWED

  • オーバフローした場合:a_rdb_SQL_OVERFLOWED

isMessageLogFull

サーバメッセージログファイルの状態を返します。

  • 正常状態の場合:a_rdb_SQL_IS_NOT_LOG_FULL

  • 縮退状態の場合:a_rdb_SQL_IS_LOG_FULL

サーバメッセージログファイルが縮退状態の場合は,HADB管理者に連絡してください。

isClientLogFull

クライアントメッセージログファイルの状態を返します。

  • 正常状態の場合:a_rdb_SQL_IS_NOT_LOG_FULL

  • 縮退状態の場合:a_rdb_SQL_IS_LOG_FULL

クライアントメッセージログファイルが縮退状態の場合は,クライアントメッセージログファイルを格納しているディスクの空き容量を確保してください。環境変数ADBMSGLOGSIZEで指定したサイズ×2以上の空き容量が必要になります。

SQLState

CLI関数の実行結果のSQLSTATEを返します。

SQLSTATEについては,マニュアルHADB メッセージSQLSTATEの一覧を参照してください。