6.4.1 ALLOCATE CONNECTION HANDLEの形式と規則
(2) 形式
ALLOCATE CONNECTION HANDLE :PDCNCTHDL型変数, :リターンコード受け取り変数 〔,{:接続PDHOST変数,:接続PDNAMEPORT変数 |:環境変数グループ名変数}〕
(3) オペランド
(a) :PDCNCTHDL型変数
PDCNCTHDL型として宣言した埋込み変数を指定します。
(b) :リターンコード受け取り変数
INT型として宣言した埋込み変数を指定します。
リターンコード受け取り変数に返される値を次に示します。
- C言語の場合
-
- 正常に割り当てられた場合:
-
p_rdb_RC_NORM
- 接続ハンドルの値が不正な場合:
-
p_rdb_RC_ERRPARM
- メモリ不足が発生した場合:
-
p_rdb_RC_MEMERR
これらの値は,pdberrno.hに定義しています。
- COBOL言語の場合
-
- 正常に割り当てられた場合:
-
P-RDB-RC-NORM
- 接続ハンドルの値が不正な場合:
-
P-RDB-RC-ERRPARM
- メモリ不足が発生した場合:
-
P-RDB-RC-MEMERR
これらの値は,PDBSQLCAMTH.CBLに定義しています。
(c) :接続PDHOST変数
接続先のホスト名をCHARACTER型(領域長511バイト)の埋込み変数で指定します。ホスト名はクライアント環境定義のPDHOSTオペランドに指定する形式で指定してください。
既定文字集合以外の文字集合は指定できません。
(d) :接続PDNAMEPORT変数
接続先のポート番号をSMALLINT型の埋込み変数で指定します。ポート番号はクライアント環境定義のPDNAMEPORTオペランドに指定する形式で指定してください。
ただし,接続先のポート番号が65535の場合は,クライアント環境定義のPDHOSTとPDNAMEPORT,又は環境変数グループ名変数を使用して,接続先を指定してください。
(e) :環境変数グループ名変数
CHAR型(領域長256バイト)として宣言した埋込み変数を指定します。
既定文字集合以外の文字集合は指定できません。
UNIX環境では,環境変数を記述した通常ファイルのファイル名を絶対パス名(ナル文字を含めて256バイトまで)で指定します。
Windows環境では,環境変数登録ツールで登録したグループ名(ナル文字を含めて31バイトまで),又は環境変数グループファイル名を絶対パス名(ナル文字を含めて256バイトまで)で指定します。「ドライブ名:\」から始まっていた場合は,すべて環境変数グループファイル名指定とみなします。Windows環境での環境変数グループファイルはWindowsのiniファイルの仕様に準じます。Windows環境での環境変数グループファイル指定の場合,パス名に空白などを含むロングパス指定もできますが,パス名の前後を引用符(")で囲まないでください。
環境変数グループについては,マニュアル「HiRDB UAP開発ガイド」を参照してください。
(4) 共通規則
-
ALLOCATE CONNECTION HANDLEは,CONNECT文より先に発行してください。
-
使用する埋込み変数は,埋込みSQL宣言節で宣言してください。
-
接続ハンドルの割り当てに失敗した場合,その障害コードをリターンコード受け取り変数に設定します。
-
接続PDHOST変数及び接続PDNAMEPORT変数は,両方指定するか,又は両方省略するかのどちらかにしてください。省略した場合は,クライアント環境定義の指定値でデータベースとの接続処理をします。
-
接続PDHOST変数に設定するホスト名の最後は,ナル文字にしてください。
(5) 留意事項
-
割り当てた接続ハンドルは,DISCONNECT文の発行時には解放されません。接続ハンドルを解放する場合は,FREE CONNECTION HANDLEを発行してください。
-
COBOL言語の場合,接続PDHOST変数,及び環境変数グループ名変数に値を設定するときは,設定値の最後をナル文字にしてください。
-
接続PDHOST変数と接続PDNAMEPORT変数を指定した場合でも,クライアント環境定義で高速接続又はFESホストダイレクト接続を指定しているときは,クライアント環境定義で指定されている接続形態でHiRDBサーバに接続します。接続形態の選択方法については,マニュアル「HiRDB UAP開発ガイド」の「HiRDBサーバと接続するための環境変数と接続形態との関係」を参照してください。
(6) 使用例
-
PDCNCTHDL型変数の使用例を次に示します。
(C言語の場合)
EXEC SQL BEGIN DECLARE SECTION; PDCNCTHDL CnctHdl; long AlchdlRtn; EXEC SQL END DECLARE SECTION; EXEC SQL ALLOCATE CONNECTION HANDLE :CnctHdl, :AlchdlRtn;
(COBOL言語の場合)
DATA DIVISION. WORKING-STORAGE SECTION. EXEC SQL BEGIN DECLARE SECTION END-EXEC. 01 CNCTHDL SQL TYPE IS PDCNCTHDL. 01 ALCHDLRTN PIC S9(9) COMP. EXEC SQL END DECLARE SECTION END-EXEC. : PROCEDURE DIVISION. : EXEC SQL ALLOCATE CONNECTION HANDLE :CNCTHDL, :ALCHDLRTN; END-EXEC.
-
接続PDHOST変数,及び接続PDNAMEPORT変数の使用例を次に示します。
(C言語の場合)
EXEC SQL BEGIN DECLARE SECTION; PDCNCTHDL CnctHdl; long AlchdlRtn; char CnctHost[31]; short CnctPort; EXEC SQL END DECLARE SECTION; strcpy(CnctHost,"HOST01"); EXEC SQL ALLOCATE CONNECTION HANDLE :CnctHdl, :AlchdlRtn, :CnctHost, :CnctPort;
(COBOL言語の場合)
DATA DIVISION. WORKING-STORAGE SECTION. EXEC SQL BEGIN DECLARE SECTION END-EXEC. 01 CNCTHDL SQL TYPE IS PDCNCTHDL. 01 ALCHDLRTN PIC S9(9) COMP. 01 CNCTHOST PIC X(31). 01 CNCTPORT PIC S9(4) COMP. EXEC SQL END DECLARE SECTION END-EXEC. : PROCEDURE DIVISION. : MOVE 'HOST01' & X'00' TO CNCTHOST. EXEC SQL ALLOCATE CONNECTION HANDLE :CNCTHDL, :ALCHDLRTN, :CNCTHOST, :CNCTPORT; END-EXEC.
-
環境変数グループ名の使用例を次に示します。
(C言語の場合)
EXEC SQL BEGIN DECLARE SECTION; PDCNCTHDL CnctHdl; long AlchdlRtn; char GroupName[31]; EXEC SQL END DECLARE SECTION; strcpy(GroupName,"HRD01"); EXEC SQL ALLOCATE CONNECTION HANDLE :CnctHdl, :AlchdlRtn, :GroupName;
(COBOL言語の場合)
DATA DIVISION. WORKING-STORAGE SECTION. EXEC SQL BEGIN DECLARE SECTION END-EXEC. 01 CNCTHDL SQL TYPE IS PDCNCTHDL. 01 ALCHDLRTN PIC S9(9) COMP. 01 GROUPNAME PIC X(31). EXEC SQL END DECLARE SECTION END-EXEC. : PROCEDURE DIVISION. : MOVE 'HRD01' & X'00' TO GROUPNAME. EXEC SQL ALLOCATE CONNECTION HANDLE :CNCTHDL, :ALCHDLRTN, :GROUPNAME END-EXEC.