スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス

[目次][索引][前へ][次へ]

ALLOCATE CONNECTION HANDLE接続ハンドルの割り当て

機能

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

形式

 
 ALLOCATE CONNECTION HANDLE :PDCNCTHDL型変数
                  :リターンコード受け取り変数
                  〔,{:接続PDHOST変数,:接続PDNAMEPORT変数
                     |:環境変数グループ名変数}〕
 

オペランド

PDCNCTHDL型として宣言した埋込み変数を指定します。

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に定義しています。

CHAR型(領域長511バイト)として宣言した埋込み変数を指定します。

既定文字集合以外の文字集合は指定できません。

SMALLINT型として宣言した埋込み変数を指定します。ただし,接続先のポート番号が65535の場合は,クライアント環境定義のPDHOSTとPDNAMEPORT,又は環境変数グループ名変数を使用して,接続先を指定してください。

CHAR型(領域長256バイト)として宣言した埋込み変数を指定します。

既定文字集合以外の文字集合は指定できません。

UNIX環境では,環境変数を記述した通常ファイルのファイル名を絶対パス名(ナル文字を含めて256バイトまで)で指定します。

Windows環境では,環境変数登録ツールで登録したグループ名(ナル文字を含めて31バイトまで),又は環境変数グループファイル名を絶対パス名(ナル文字を含めて256バイトまで)で指定します。「ドライブ名:\」から始まっていた場合は,すべて環境変数グループファイル名指定とみなします。Windows環境での環境変数グループファイルはWindowsのiniファイルの仕様に準じます。Windows環境での環境変数グループファイル指定の場合,パス名に空白などを含むロングパス指定もできますが,パス名の前後を引用符(")で囲まないでください。

環境変数グループについては,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。

共通規則

  1. ALLOCATE CONNECTION HANDLEは,CONNECT文より先に発行してください。
  2. 使用する埋込み変数は,埋込みSQL宣言節で宣言してください。
  3. 接続ハンドルの割り当てに失敗した場合,その障害コードをリターンコード受け取り変数に設定します。
  4. 接続PDHOST変数及び接続PDNAMEPORT変数は,両方指定するか,又は両方省略するかのどちらかにしてください。省略した場合は,クライアント環境定義の指定値でデータベースとの接続処理をします。
  5. 接続PDHOST変数に設定するホスト名の最後は,ナル文字である必要があります。

留意事項

  1. 割り当てた接続ハンドルは,DISCONNECT文の発行時には解放されません。接続ハンドルを解放する場合は,FREE CONNECTION HANDLEを発行してください。
  2. COBOL言語の場合,接続PDHOST変数,及び環境変数グループ名変数に値を設定するときは,設定値の最後をナル文字にしてください。

使用例

  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.