Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能(UAP開発編)


2.7.1 DMLの実行結果の判定処理の例

次の情報がDMLの実行結果として,SQL連絡領域(SQLCA)に返されます。返された情報を基にDMLの実行結果の判定処理を行います。

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
[説明]
  1. レコード実現値を更新するDML(MODIFY文)を実行します。

  2. DMLの実行結果の判定処理を行います。

    SQLCODEが0未満の場合は,DMLがエラーとなっているため,エラー時の処理を行います。

    SQLCODEが0以上の場合は,DMLが正常終了しているため,処理を続行します。

  3. DMLの実行結果の判定処理を行います。

    DMLが警告付きで正常終了した場合は,SQLCODEに100以外の正の値が返されるか,またはSQLWARN1〜SQLWARFに警告情報が返されます。SQLWARN1〜SQLWARNFに警告情報が返された場合は,SQLWARN0に'W'が返されます。

    警告が発生していない場合は処理を続行してください。警告が発生している場合は,DMLに警告が発生したときの処理を行います。

COBOLソースプログラムのコーディング例については,次の個所を参照してください。コーディング例中に,DMLの実行結果の判定処理の例が記述されています。

なお,SQL連絡領域(SQLCA)は,宣言を収めた登録集原文のCOPY文がポストソースに展開されます。そのため,COBOLソースプログラム中にSQL連絡領域を宣言しないでください。