19.5.9 a_rdb_CNV_DECIMALchar()(DECIMAL型またはNUMERIC型データの変換)
(1) 機能
SQLのDECIMAL型またはNUMERIC型のデータを,C言語またはC++言語の文字列データに変換します。DECIMAL型のデータを文字列データに変換する場合の例を次の図に示します。
- [説明]
-
-
DECIMAL型のデータを符号なしの10進数定数の定数表現に文字列変換します。
-
引数のDECIMAL_PrecisionとDECIMAL_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) 戻り値
-
a_rdb_CNV_DECIMALchar()が正常に終了した場合,a_rdb_RC_CNV_SUCCESSが返却されます。
-
エラーが発生した場合,戻り値にエラーコードが返却されます。エラーコードについては,「19.8 CLI関数の戻り値」を参照してください。
(5) 留意事項
変換前のデータ格納領域(DECIMAL_Data)と,変換後のデータ格納領域(char_Data)は重複しないようにしてください。