反映側Datareplicatorに格納してあるUOCのサンプルについて説明します。
反映側Datareplicatorをインストールすると,サンプルファイルが次のディレクトリに格納されます。
抽出対象表の構成を次の図に示します。
図8-7 抽出対象表の構成
サンプルで抽出する処理の内容を次に示します。
反映対象表の構成を次の図に示します。反映対象表名は,「在庫表」としています。
図8-8 反映対象表(在庫表)の構成
反映定義の内容を次に示します。反映定義は次の条件に従っています。
format ZAIKO
NAME FCODE /* 商品コード */
NAME FNAME /* 商品名 */
NAME FCOLOR /* 色 */
NAME FTANKA /* 単価 */
NAME FZAIKO /* 在庫量 */
load FCODE,FNAME,FTANKA,FZAIKO from ZAIKO by '/users/replicator/sampleuoc';
編集開始指示関数(hds_ubegin)は,反映側HiRDBへのCONNECT処理を実行します。編集・加工指示関数(hds_uedit)は,更新種別に対応してINSERT,UPDATE,DELETE,PURGE,COMMITを実行します。
UPDATE,DELETEでは,反映対象表に更新対象の行がないエラー(SQLCODE 100)になると,エラーになった更新情報を無視して反映処理を継続します。そのほかのSQL実行エラーが発生した場合,編集終了指示関数(hds_uend)でROLLBACK処理を実行します。編集終了指示関数(hds_uend)は,必要に応じてROLLBACKし,DISCONNECTを実行します。
hds_ubegin関数のパラメタであるUINTERFACE_BLKから,認可識別子,パスワードを埋込み変数に設定して,その埋込み変数をパラメタとして反映側HiRDBにCONNECTを発行します。
表8-23 SQLコードによるリターンコードとステータスコード
SQLCODE | SQLの状態 | リターンコード | ステータスコード |
---|---|---|---|
0 | 正常終了 | HDS_RET_NORM (正常終了) | - |
100 | UPDATE,又はDELETEで反映対象表に,該当する行が存在しないエラー | HDS_RET_WARN (軽度のエラー) | SQLCODE |
0,100以外※ | 反映処理を中断するエラー | HDS_RET_ERR (重度のエラー) | SQLCODE |
ROLLBACK及びDISCONNECTを実行します。
ROLLBACKは,hds_uend関数のパラメタであるインタフェースブロック(UNITERFACE_BLK)の引き継ぎ情報2が「-1」のときだけ実行します。