COBOL2002 ユーザーズガイド
CBLSQLERRORサービスルーチンは,埋め込みSQL文によるODBCインタフェース機能の使用時に,出力された実行時メッセージのエラー情報(COBOLメッセージ番号,SQLSTATE,SQLエラーコード)を取得します。
CALL 'CBLSQLERROR' USING 引数1
表32-6 CBLSQLERRORサービスルーチンのインタフェース領域
記述形式 | 内容 |
---|---|
01 データ名01. |
CALL文のUSINGで指定するエラー情報取得領域の名前を指定する。 |
02 データ名02 PIC S9(9) USAGE COMP. |
COBOLメッセージ番号 |
02 FILLER PIC X(7). |
予備。本サービスルーチンを呼び出す前にLOW-VALUE(X'00')を設定しなければならない。 |
02 データ名03 PIC X(5). |
SQLSTATE |
02 データ名04 PIC S9(9) USAGE COMP. |
SQLエラーコード |
02 FILLER PIC X(516). |
予備。本サービスルーチンを呼び出す前にLOW-VALUE(X'00')を設定しなければならない。 |
表32-7 引数1に設定されるエラー情報の説明
エラー情報 | 説明 |
---|---|
COBOLメッセージ番号 | 直前に実行された埋め込みSQL文で出力されたKCCC8000R-SからKCCC8026R-Sのメッセージ番号が設定されます。メッセージについては,マニュアル「COBOL2002 メッセージ」を参照してください。 |
SQLSTATE | ODBCドライバマネージャが返す診断コードが設定されます。詳細については,使用しているODBCドライバまたはDBMSのマニュアルを参照してください。 |
SQLエラーコード | データソース固有のネイティブエラーコードが設定されます。詳細については,使用しているODBCドライバまたはDBMSのマニュアルを参照してください。 |
IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE1. : DATA DIVISION. WORKING-STORAGE SECTION. : 01 OP-1. 02 ERR-MSGNUMBER PIC S9(9) USAGE COMP. 02 FILLER PIC X(7) VALUE LOW-VALUE. 02 ERR-SQLSTATE PIC X(5). 02 ERR-SQLERRORCODE PIC S9(9) USAGE COMP. 02 FILLER PIC X(516) VALUE LOW-VALUE. 01 STMT-PROC PIC X(20). 01 戻り値 PIC S9(9) USAGE COMP. : EXEC SQL BEGIN DECLARE SECTION END-EXEC. 01 ODBC-DSN PIC X(10) VALUE 'サンプル'. 01 ODBC-UID PIC X(10) VALUE 'sa'. 01 ODBC-PWD PIC X(10) VALUE SPACE. EXEC SQL END DECLARE SECTION END-EXEC. : PROCEDURE DIVISION. : *>SQL文を実行できたかどうかを<埋め込み例外宣言>にて判断します。 EXEC SQL WHENEVER SQLERROR PERFORM :エラー処理 … 1. END-EXEC. : *>データソースに接続する。 MOVE 'データソースへの接続' TO STMT-PROC. … 2. EXEC SQL CONNECT :ODBC-UID IDENTIFIED BY :ODBC-PWD USING :ODBC-DSN END-EXEC. : *>表を参照する。 MOVE '表のデータ参照' TO STMT-PROC. … 2. EXEC SQL SELECT … 3. END-EXEC. : *>データソースから切断する。 MOVE 'データソースから切断' TO STMT-PROC. … 2. EXEC SQL DISCONNECT END-EXEC. STOP RUN. : エラー処理. … 4. PERFORM WITH TEST AFTER UNTIL 戻り値 NOT = ZERO CALL 'CBLSQLERROR' USING OP-1 MOVE RETURN-CODE TO 戻り値 EVALUATE 戻り値 WHEN 0 DISPLAY STMT-PROC … 5. *> << エラー情報判定,リカバリ処理 >> : WHEN -1 DISPLAY 'CBLSQLERRORが失敗しました。' END-EVALUATE END-PERFORM. :
All Rights Reserved. Copyright (C) 2013, 2016, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2002, 2011, Microsoft Corporation.