Hitachi

Hitachi Advanced Data Binder AP開発ガイド


19.2.3 a_rdb_SQLSetConnectAttr()(コネクション属性の設定)

〈この項の構成〉

(1) 機能

指定したコネクションハンドルのコネクション属性を設定します。

(2) 形式

signed short a_rdb_SQLSetConnectAttr
(
  void                          *ConnectionHandle,    /* In */
  signed short                   Attribute,           /* In */
  void                          *Value,               /* In */
  void                          *Option               /* In */
)

(3) 引数の説明

ConnectionHandle

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

Attribute

次に示すどれかのコネクション属性を指定します。

  • トランザクション隔離性水準を設定する場合:

    a_rdb_SQL_ATTR_TXN_ISOLATION

  • SELECT文の最も外側の問合せ指定または問合せ式本体に指定したORDER BY句に対して,文字データの並び替え順序を設定する場合:

    a_rdb_SQL_ATTR_ORDER_MODE

  • トランザクションアクセスモードを設定する場合:

    a_rdb_SQL_ATTR_ACCESS_MODE

Value

属性情報を格納したアドレスを指定します。

・トランザクション隔離性水準を設定する場合

次に示すどれかの値が設定されているunsigned shortの領域のアドレスを指定します。

  • READ COMMITTEDの場合:

    a_rdb_SQL_TXN_READ_COMMITTED

  • REPEATABLE READの場合:

    a_rdb_SQL_TXN_REPEATABLE_READ

  • 指定値を未設定(このCLI関数を使用して一度もトランザクション隔離性水準を設定していない状態)に変更する場合:

    a_rdb_SQL_TXN_UNSPECIFIED

SELECT文の最も外側の問合せ指定または問合せ式本体に指定したORDER BY句に対して,文字データの並び替え順序を設定する場合

次に示すどれかの値が設定されているunsigned shortの領域のアドレスを指定します。

  • 文字データをバイトコード順で並び替える場合:

    a_rdb_SQL_ORDER_MODE_BYTE

  • 文字データをソートコード順(ISO/IEC14651:2011準拠)で並び替える場合:

    a_rdb_SQL_ORDER_MODE_ISO

  • 指定値を未設定(このCLI関数を使用して一度も文字データの並び替え順序を設定していない状態)に変更する場合:

    a_rdb_SQL_ORDER_MODE_UNSPECIFIED

・トランザクションアクセスモードを設定する場合

次に示すどれかの値が設定されているunsigned shortの領域のアドレスを指定します。

  • 読み書き可能モードの場合:

    a_rdb_SQL_ACCESS_MODE_READ_WRITE

  • 読み取り専用モードの場合:

    a_rdb_SQL_ACCESS_MODE_READ_ONLY

  • 指定値を未設定(このCLI関数を使用して一度もトランザクションアクセスモードを設定していない状態)に変更する場合:

    a_rdb_SQL_ACCESS_MODE_UNSPECIFIED

Option

NULLを指定します。

(4) 戻り値

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

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

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

(5) 留意事項

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

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

    • トランザクションが決着していない場合

    • 無効なコネクション属性を指定した場合

    • 無効なトランザクション隔離性水準を指定した場合

    • 無効な文字データの並び替え順序を指定した場合

    • 無効なトランザクションアクセスモードを指定した場合

  2. トランザクション隔離性水準は,次に示す優先順位に従って決定されます。番号が小さいほど優先順位が高くなります。1と2では1の指定が優先されます。

    1.a_rdb_SQLSetConnectAttr()で指定したトランザクション隔離性水準

    2.クライアント定義のadb_clt_trn_iso_lvオペランドで指定したトランザクション隔離性水準

    3.サーバ定義のadb_sys_trn_iso_lvオペランドで指定したトランザクション隔離性水準

  3. 文字データの並び替え順序は,次に示す優先順位に従って決定されます。

    番号が小さいほど優先順位が高くなります。1と2では1の指定が優先されます。

    1.a_rdb_SQLSetConnectAttr()で指定した文字データの並び替え順序

    2.クライアント定義のadb_clt_sql_order_modeオペランドで指定した文字データの並び替え順序

    3.サーバ定義のadb_sql_order_modeオペランドで指定した文字データの並び替え順序

  4. トランザクションアクセスモードは,次に示す優先順位に従って決定されます。

    番号が小さいほど優先順位が高くなります。1と2では1の指定が優先されます。

    1.a_rdb_SQLSetConnectAttr()で指定したトランザクションアクセスモード

    2.クライアント定義のadb_clt_trn_access_modeオペランドで指定したトランザクションアクセスモード