Hitachi

Hitachi Advanced Data Binder AP開発ガイド


19.5.9 a_rdb_CNV_DECIMALchar()(DECIMAL型またはNUMERIC型データの変換)

〈この項の構成〉

(1) 機能

SQLのDECIMALまたはNUMERICのデータをC言語またはC++言語の文字列データに変換します。DECIMAL型のデータを文字列データに変換する場合の例を次の図に示します。

図19‒9 DECIMAL型のデータを文字列データに変換する場合の例

[図データ]

[説明]
  • DECIMAL型のデータを符号なしの10進数定数の定数表現に文字列変換します。

  • 引数のDECIMAL_PrecisionDECIMAL_Scaleの値が同じ場合は,小数点の前に0を付加して文字列変換します。

  • DECIMAL_Scaleの値が0の場合は,小数点は付加されません。

  • データが負数の場合は,先頭に負符号''(マイナス)を付加します。

  • 末尾にナル文字(0x00)を付加して,格納領域に右詰で格納します。

  • 格納した文字列の長さよりBufferLengthの方が大きい場合,余った領域には空白文字を格納します。

(2) 形式

#include <adbcnv.h>
 
signed short a_rdb_CNV_DECIMALchar
(
  unsigned char          *DECIMAL_Data,             /* In  */
  unsigned short          DECIMAL_Precision,        /* In  */
  unsigned short          DECIMAL_Scale,            /* In  */
  char                   *char_Data,                /* Out */
  unsigned short          BufferLength,             /* In  */
  void                   *Option                    /* In  */
)

(3) 引数の説明

DECIMAL_Data

変換前のDECIMALまたはNUMERICのデータを格納している領域の先頭アドレスを指定します。

DECIMAL_Precision

変換前のDECIMALまたはNUMERICのデータの精度(全体の桁数)を指定します。1〜38を指定できます。

取り出した列値のデータ型と同じ精度を指定してください。

DECIMAL_Scale

変換前のDECIMALまたはNUMERICのデータの位取り(小数点以下の桁数)を指定します。0〜38を指定できます。

取り出した列値のデータ型と同じ位取りを指定してください。

char_Data

変換後の文字列データ(C言語またはC++言語の文字列データ)を格納する領域の先頭アドレスを指定します。

BufferLength

変換後の文字列データを格納する領域の長さをバイト数で指定します。次に示す値を指定してください。

DECIMAL_Precision+4

Option

NULLを指定します。

(4) 戻り値

  1. a_rdb_CNV_DECIMALchar()が正常に終了した場合,a_rdb_RC_CNV_SUCCESSが返却されます。

  2. エラーが発生した場合,戻り値にエラーコードが返却されます。エラーコードについては,「19.8 CLI関数の戻り値」を参照してください。

(5) 留意事項

変換前のデータ格納領域(DECIMAL_Data)と,変換後のデータ格納領域(char_Data)は重複しないようにしてください。