Hitachi

ノンストップデータベース HiRDB Version 9 UAP開発ガイド


付録H.3 DECIMAL型符号正規化関数

DECIMAL型符号正規化関数とは,DECIMAL型データの符号をX'C',又はX'D'に統一(値が0の場合はX'C'に統一)する関数です。DECIMAL型データをデータベースに格納しなくても符号を正規化した結果が分かるので,次のような場合に使用すると有効です。

DECIMAL型符号正規化関数を使用する場合の前提条件

表分割ハッシュ関数と同じです。詳細については,「表分割ハッシュ関数を使用する場合の前提条件」を参照してください。

DECIMAL型符号正規化関数を使用したUAPの作成,実行

表分割ハッシュ関数と同じです。詳細については,「表分割ハッシュ関数を使用したUAPの作成,実行」を参照してください。

〈この項の構成〉

(1) DECIMAL型符号正規化関数の詳細

(a) 記述構成

記述構成については,「記述構成」を参照してください。

(b) DECIMAL型符号正規化関数(p_rdb_dec_sign_norm)

機能

DECIMAL型データの符号を正規化します。

srcpが示すDECIMAL型データの符号部を,次のように正規化します。

正規化前

正規化後

X'A'

X'C'

X'B'

X'D'

X'C'

X'C'

X'D'

X'D'

X'E'

X'C'

X'F'

X'C'

X'0'〜X'9'

エラー

注※ データの絶対値が0の場合,符号部はX'C'に統一されます。

ヘッダファイル
#include<pdauxcnv.h>

DECIMAL型符号正規化関数を使用する場合に必ず指定します。

形式
  int p_rdb_dec_sign_norm(unsigned char   *srcp,
                          short           srcl,
                          unsigned char   *destp);
引数
srcp(入力)

正規化するDECIMAL型データの先頭アドレスを指定します。

srcl(入力)

引数srcpが示すDECIMALデータのデータ長コードを指定します。指定できるデータ長コードを次に示します。

データ型

データ長コード

INTERVAL YEAR TO DAY

8×256

INTERVAL HOUR TO SECOND

6×256

DECIMAL[(p[,q])]

p×256+q

(pを省略した場合は15を仮定,qを省略した場合は0を仮定)

destp(出力)

正規化後のDECIMAL型データが格納されます。destpが示す領域はDECIMAL型符号正規化関数の呼び出し側で確保してください。

戻り値

データ型:int

p_rdb_RC_RTRN(0)

正常終了

p_rdb_RC_ERRDFRM(-12)

データの符号部が不正

注意事項
  1. DECIMAL型データの符号部以外はエラーチェックされません。したがって,不正なDECIMAL型データの場合,又は引数srclで設定したデータ長コードがDECIMAL型データと矛盾する場合は,動作は保証されません。

  2. データの入力領域と出力領域が同一の場合,又は出力領域が入力領域の前にあり,出力領域の後半部と入力領域の前半部が重複している場合は,動作は保証されます。