Hitachi

ノンストップデータベース HiRDB Version 10 SQLリファレンス


6.4.1 ALLOCATE CONNECTION HANDLEの形式と規則

〈この項の構成〉

(1) 機能

複数接続機能を使用した環境で,UAPが使用する接続ハンドルを割り当てます。

(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) 共通規則

  1. ALLOCATE CONNECTION HANDLEは,CONNECT文より先に発行してください。

  2. 使用する埋込み変数は,埋込みSQL宣言節で宣言してください。

  3. 接続ハンドルの割り当てに失敗した場合,その障害コードをリターンコード受け取り変数に設定します。

  4. 接続PDHOST変数及び接続PDNAMEPORT変数は,両方指定するか,又は両方省略するかのどちらかにしてください。省略した場合は,クライアント環境定義の指定値でデータベースとの接続処理をします。

  5. 接続PDHOST変数に設定するホスト名の最後は,ナル文字にしてください。

(5) 留意事項

  1. 割り当てた接続ハンドルは,DISCONNECT文の発行時には解放されません。接続ハンドルを解放する場合は,FREE CONNECTION HANDLEを発行してください。

  2. COBOL言語の場合,接続PDHOST変数,及び環境変数グループ名変数に値を設定するときは,設定値の最後をナル文字にしてください。

  3. 接続PDHOST変数と接続PDNAMEPORT変数を指定した場合でも,クライアント環境定義で高速接続又はFESホストダイレクト接続を指定しているときは,クライアント環境定義で指定されている接続形態でHiRDBサーバに接続します。接続形態の選択方法については,マニュアル「HiRDB UAP開発ガイド」の「HiRDBサーバと接続するための環境変数と接続形態との関係」を参照してください。

(6) 使用例

  1. 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.
  2. 接続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.
  3. 環境変数グループ名の使用例を次に示します。

    (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.