18.2.1 HADBサーバへの接続および切り離しをする場合
ここでは,CLI関数を使用したHADBサーバへの接続,およびHADBサーバからの切り離しについて説明します。
HADBサーバへの接続から切り離しまでの処理の流れを次の図に示します。
- 注※
-
SQL文を使ったデータ操作については,「18.2.2 データを参照する場合」以降で説明します。
- 〈この項の構成〉
(1) HADBサーバへの接続
HADBサーバに接続する場合は,次に示すCLI関数を使用します。
-
a_rdb_SQLAllocConnect()(コネクションハンドルの割り当て)
-
a_rdb_SQLConnect()(コネクションの確立)
(a) コネクションハンドルの割り当て
コネクションを確立する前に,コネクションハンドルの割り当てが必要になります。コネクションハンドルを割り当てるにはa_rdb_SQLAllocConnect()を使用します。コネクションハンドルの割り当てが成功すると,戻り値としてa_rdb_RC_SQL_SUCCESSが返されます。a_rdb_SQLAllocConnect()の呼び出し例を次に示します。
- a_rdb_SQLAllocConnect()の呼び出し例
-
signed short rtnc ; /* 戻り値 */ void *hCnct ; /* コネクションハンドルアドレス */ /* コネクションハンドルの割り当て */ rtnc = a_rdb_SQLAllocConnect(&hCnct, "/hadb/client.def", /* クライアント定義ファイルパス */ NULL) ;
a_rdb_SQLAllocConnect()の第2引数にクライアント定義ファイルの絶対パスを指定することで,コネクションごとに異なるクライアント定義を使用できます。クライアント定義については,「4.4 クライアント定義の作成」を参照してください。
a_rdb_SQLAllocConnect()については,「19.2.1 a_rdb_SQLAllocConnect()(コネクションハンドルの割り当て)」を参照してください。
(b) コネクションの確立
コネクションを確立するには,a_rdb_SQLConnect()を使用します。コネクションが確立されると,戻り値としてa_rdb_RC_SQL_SUCCESSが返されます。
a_rdb_SQLConnect()の呼び出し例を次に示します。
- a_rdb_SQLConnect()の呼び出し例
-
a_rdb_SQLResultInfo_t rsltInfo ; /* SQL結果情報 */ /* コネクションの確立 */ rtnc = a_rdb_SQLConnect(hCnct, /* コネクションハンドル */ "ADBUSER01", /* 認可識別子 */ "password01", /* パスワード */ &rsltInfo, NULL) ;
SQL結果情報のアドレスをa_rdb_SQLConnect()の第4引数に指定することで,CLI関数の呼び出し単位で各種結果を返却するSQL結果情報を取得できます。SQL結果情報については,「19.7.6 a_rdb_SQLResultInfo_t構造体(SQL結果情報)」を参照してください。
a_rdb_SQLConnect()については,「19.2.2 a_rdb_SQLConnect()(コネクションの確立)」を参照してください。
(2) HADBサーバからの切り離し
HADBサーバからの切り離しを行う場合は,次に示すCLI関数を使用します。
-
a_rdb_SQLDisconnect()(コネクションの終了)
-
a_rdb_SQLFreeConnect()(コネクションハンドルの解放)
(a) コネクションの終了
コネクションを終了するには,a_rdb_SQLDisconnect()を使用します。a_rdb_SQLDisconnect()の呼び出し例を次に示します。
- a_rdb_SQLDisconnect()の呼び出し例
-
/* コネクションの終了 */ rtnc = a_rdb_SQLDisconnect(hCnct, NULL) ;
a_rdb_SQLDisconnect()については,「19.2.4 a_rdb_SQLDisconnect()(コネクションの終了)」を参照してください。
(b) コネクションハンドルの解放
コネクションを終了したあとに,コネクションハンドルを解放してください。コネクションハンドルを解放するには,a_rdb_SQLFreeConnect()を使用します。a_rdb_SQLFreeConnect()の呼び出し例を次に示します。
- a_rdb_SQLFreeConnect()の呼び出し例
-
/* コネクションハンドルの解放 */ rtnc = a_rdb_SQLFreeConnect(hCnct, NULL) ;
a_rdb_SQLFreeConnect()については,「19.2.5 a_rdb_SQLFreeConnect()(コネクションハンドルの解放)」を参照してください。