COBOL2002 ユーザーズガイド

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

32.9.2 CBLSQLSETOPT

CBLSQLSETOPTサービスルーチンは,埋め込みSQL文によるODBCインタフェース機能の使用時に,SQLSetConnectOption関数で接続関連を制御するオプションを設定します。

形式
CALL 'CBLSQLSETOPT' USING 引数1 引数2

引数
  • 引数1は,オプション種別を設定する128バイトの英数字項目です。
  • 引数2は,引数1に関連づけられた値を4バイトの符号なし2進項目で指定します。引数1に指定するオプション種別に対して引数2に設定できる値を次に示します。

    表32-8 CBLSQLSETOPTサービスルーチンで設定できるオプション

    引数1の設定値と機能 引数2の設定値と機能 注意事項
    設定値 機能
    SQL_COPT_SS_ENLIST_IN_XA
    SQL Server Version 6.5以降の分散トランザクションのX/OpenのXAトランザクションを行います。
    1 XAトランザクションをODBC接続に関連づけます。 この指定によってXAトランザクションをODBC接続に関連づけた場合,COMMIT,ROLLBACK文によるトランザクション管理はできません。それまでのトランザクションは,コミットされます。
    0 XAトランザクションを終了します。

戻り値
0:正常終了した場合
-1:引数に誤りがある場合
-2:メモリ不足が発生した場合

規則
  • 引数の属性,および引数に指定する値が上記と異なる場合の結果は保証しません。
SQLSetConnectOption関数でODBCの接続関連を制御するオプションを設定する場合
  • CBLSQLSETOPTサービスルーチンで指定した接続オプションは,直後に実行されるSQL文で設定されます。SQLSetConnectOption関数実行のタイミングを次に示します。
  • CONNECT文,またはSET CONNECTION文の場合
    CONNECT文,またはSET CONNECTION文の処理後に関数を実行します。
  • CONNECT文,またはSET CONNECTION文以外のSQL文
    各SQL文の処理に先立って関数を実行します。
  • 指定した接続オプションの設定時に接続されている現行コネクションのデータソースが,該当するデータベースでない場合,その実行は保証しません。

使用例

SQLSetConnectOption関数でODBCの接続関連を制御するオプションを設定する場合
       IDENTIFICATION DIVISION.
       PROGRAM-ID. SAMPLE1.
                :
       DATA DIVISION.
        WORKING-STORAGE SECTION.
                :
        01 OP-1 PIC X(128).
        01 OP-2 PIC 9(9) USAGE COMP.
                :
       PROCEDURE DIVISION.
                :
           *> XAトランザクションをODBC接続に関連づける
           MOVE 'SQL_COPT_SS_ENLIST_IN_XA' TO OP-1.
           MOVE 1 TO OP-2.
 
           CALL 'CBLSQLSETOPT' USING OP-1 OP-2.
           IF RETURN-CODE NOT = 0 THEN
             *> エラー処理
           END-IF.
           EXEC SQL … 1.
             SELECT
                :
  1. CBLSQLSETOPTサービスルーチンを呼び出した直後に実行される埋め込みSQL文(SELECT)で,SQL_COPT_SS_ENLIST_IN_XAの接続オプションが設定されます。