2.7.1 DMLの実行結果の判定処理の例
次の情報がDMLの実行結果として,SQL連絡領域(SQLCA)に返されます。返された情報を基にDMLの実行結果の判定処理を行います。
-
SQLCODE(リターンコード)
-
SQLWARN0〜SQLWARNF(警告情報)
- DMLの実行結果の判定処理の例
EXEC DML MODIFY ZAIKO FROM :ZAIKO ...1 END-DML IF SQLCODE < 0 ...2 THEN MOVE 8 TO RETURN-CODE ELSE CONTINUE END-IF IF SQLWARN0 = 'W' OR (SQLCODE > 0 AND SQLCODE NOT = 100) ...3 THEN MOVE 4 TO RETURN-CODE ELSE CONTINUE END-IF
- [説明]
-
-
レコード実現値を更新するDML(MODIFY文)を実行します。
-
DMLの実行結果の判定処理を行います。
SQLCODEが0未満の場合は,DMLがエラーとなっているため,エラー時の処理を行います。
SQLCODEが0以上の場合は,DMLが正常終了しているため,処理を続行します。
-
DMLの実行結果の判定処理を行います。
DMLが警告付きで正常終了した場合は,SQLCODEに100以外の正の値が返されるか,またはSQLWARN1〜SQLWARFに警告情報が返されます。SQLWARN1〜SQLWARNFに警告情報が返された場合は,SQLWARN0に'W'が返されます。
警告が発生していない場合は処理を続行してください。警告が発生している場合は,DMLに警告が発生したときの処理を行います。
-
COBOLソースプログラムのコーディング例については,次の個所を参照してください。コーディング例中に,DMLの実行結果の判定処理の例が記述されています。
なお,SQL連絡領域(SQLCA)は,宣言を収めた登録集原文のCOPY文がポストソースに展開されます。そのため,COBOLソースプログラム中にSQL連絡領域を宣言しないでください。