HiRDB データ連動機能 HiRDB Datareplicator Version 8

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

8.3.4 送信データUOCで使う関数の文法

送信データUOCは,C言語でプログラミングします。抽出側Datareplicatorには,送信データUOCを作成するときに使う関数を備えています。

送信データUOCで使える関数名と機能の概要を次の表に示します。

表8-37 送信データUOCで使える関数と機能の概要

関数名 機能
hde_usendcheck ()
(送信データの判定)
送信データ(更新情報)を受け取って,チェック結果を格納します。ユーザは,チェックする内容を指定して,結果を返します。
<この項の構成>
(1) hde_usendcheck(送信データの判定)
(2) 送信データUOCで使うヘッダファイル

(1) hde_usendcheck(送信データの判定)

送信データUOCで使う関数は,hde_usendcheck()です。一つの抽出側Datareplicatorシステム内に1個のUOC関数を作成できます。

(a) 関数の形式
 
     #include<hde_usend.h>
      int hde_usendcheck(
      HDE_EXT_ENVINFO *envinfo, /*(IN) 送信環境情報ブロック*/
      HDE_EXT_TBLINFO *tblinfo, /*(IN) 抽出表情報ブロック  */
      HDE_EXT_COLINFO *colinfo, /*(IN) 抽出データ情報ブロック*/
      int *status ); /*(OUT) 送信UOCステータス */
 
(b) パラメタの説明

パラメタの内容を次に示します。

関数の構造体は,送信データUOCのヘッダファイルで定義しています。構造体の設定者が呼び出し元の領域は,更新しないでください。ヘッダファイルについては,「表8-45 送信データUOCのヘッダファイルの一覧」を参照してください。

注※1
更新前データと更新後データの組み合わせの一覧を「表8-42 更新前データと更新後データの組み合わせ」に示します。DATAINFOの並び(配列)については,INSERTのときにはカラムIDでソート,UPDATE,DELETEのときには抽出順になります。

注※2
該当する抽出列の属性がCHAR,又はVARCHARの場合,渡されるデータは該当する抽出列の文字集合となります。

表8-42 更新前データと更新後データの組み合わせ

データ種別 更新前
データ長
更新前
データ
更新後
データ長
更新後
データ
INSERT nバイトデータ −1 −1 n addr
0バイトデータ −1 −1 0 addr
NULLデータ −1 −1 0 0
非マッピングキーのUPDATE nバイト
データ
から
nバイトデータへ −1 −1 n addr
0バイトデータへ −1 −1 0 addr
NULLデータへ −1 −1 0 0
0バイト
データ
から
nバイトデータへ −1 −1 n addr
0バイトデータへ −1 −1 0 addr
NULLデータへ −1 −1 0 0
NULL
データ
から
nバイトデータへ −1 −1 n addr
0バイトデータへ −1 −1 0 addr
NULLデータへ −1 −1 0 0
マッピングキーのUPDATE nバイト
データ
から
nバイトデータへ n addr n addr
0バイトデータへ n addr 0 addr
NULLデータへ n addr 0 0
0バイト
データ
から
nバイトデータへ 0 addr n addr
0バイトデータへ 0 addr 0 addr
NULLデータへ 0 addr 0 0
NULL
データ
から
nバイトデータへ 0 0 n addr
0バイトデータへ 0 0 0 addr
NULLデータへ 0 0 0 0
DELETE nバイトデータ n addr −1 −1
0バイトデータ 0 addr −1 −1
NULLデータ 0 0 −1 −1

注※
渡されるデータはマッピングキーのデータだけです。可変長データの同値更新,又は非更新の場合,変更前後のデータ情報はすべて「−1」になります。

 

列データ型の一覧を次の表に示します。

表8-43 列データ型の一覧

列データ型 ニモニック コード
INTEGER HDE_T_INT 0xF1
SMALLINT HDE_T_SINT 0xF5
LARGE DECIMAL HDE_T_DEC 0xE5
FLOAT HDE_T_FLT 0xE1
DOUBLE PRECISION HDE_T_DBL 0xE1
SMALL FLOAT HDE_T_SFLT 0xE3
REAL HDE_T_REAL 0xE3
CHARACTER HDE_T_CHAR 0xC5
VARCHAR HDE_T_VCHAR 0xC1
NCHAR HDE_T_NCHAR 0xB5
NVARCHAR HDE_T_NVCHAR 0xB1
MCHAR HDE_T_MCHAR 0xA5
MVARCHAR HDE_T_MVCHAR 0xA1
DATE HDE_T_DATE 0x71
TIME HDE_T_TIME 0x79
TIMESTAMP HDE_T_TIMESTAMP 0x7D
INTERVAL YEAR TO DAY HDE_T_YTD 0x65
INTERVAL HOUR TO SECOND HDE_T_HTS 0x6F
ADT(抽象データ型) HDE_T_ADT 0x83
BLOB HDE_T_BLOB 0x93
BINARY HDE_T_BINARY 0x91
(c) 戻り値

送信データUOC関数では,呼び出し元にリターンするときに戻り値を設定してください。

設定できる送信データUOCからの戻り値を次の表に示します。

表8-44 hde_usendcheck()からの戻り値

状態 コード ニモニック リターン後の処置
更新情報を送信 1 HDE_EXT_SEND 該当する更新情報を反映システムに送信します。
更新情報を送信しない 0 HDE_EXT_NOSEND 該当する更新情報は反映システムに送信しません。
送信処理を停止 −1 HDE_EXT_STOP 反映システムへの送信処理を停止します。この値が返ったときは,送信プロセスからエラーメッセージKFRB02052-Eが出力されて,該当する送信先に対する処理を中止します。
送信処理を停止した理由は,hde_usendcheck()のstatusに返ります。
上記以外

(2) 送信データUOCで使うヘッダファイル

送信データUOCで使うヘッダファイルは,次に示すディレクトリに格納してあります。

UNIX版の場合:/opt/hirdbds/include/

Windows版の場合:Datareplicatorをインストールしたディレクトリ\include\

送信データUOCのヘッダファイルを次の表に示します。

表8-45 送信データUOCのヘッダファイルの一覧

ファイル名 内容 送信データUOCに関連するメンバ
hde_usend.h 送信データUOCの構造体及びニモニックコード ・HDE_EXT_ENVINFO
・HDE_EXT_TBLINFO
・HDE_EXT_COLINFO
・HDE_EXT_DATAINFO
・データ型のニモニック
・データアドレスのニモニック