19.6.2 SQLのデータ型とデータ記述の対応
SQLのデータ型とC言語またはC++言語のデータ記述の対応を次の表に示します。
項番 |
SQLのデータ型 |
C言語またはC++言語のデータ記述 |
領域長(バイト) |
---|---|---|---|
1 |
CHAR(n) |
char 変数名 [n+1]; |
n+1 |
2 |
VARCHAR(n) |
a_rdb_M_VARCHAR(n) 変数名; |
n+4 |
3 |
INTEGER |
long long 変数名; |
8 |
4 |
SMALLINT |
int 変数名; |
4 |
5 |
DECIMAL(m,n) |
unsigned char 変数名[p※1]; |
p※1 |
6 |
NUMERIC(m,n) |
||
7 |
DOUBLE PRECISION |
double 変数名; |
8 |
8 |
FLOAT |
||
9 |
DATE |
unsigned char 変数名[4]; |
4 |
10 |
TIME(p)※2 |
unsigned char 変数名[3+(p+1)÷2]; |
3+(p+1)÷2 |
11 |
TIMESTAMP(p)※2 |
unsigned char 変数名[7+(p+1)÷2]; |
7+(p+1)÷2 |
12 |
BINARY(n) |
unsigned char 変数名[n]; |
n |
13 |
VARBINARY(n) |
a_rdb_M_VARBINARY(n) 変数名; |
n+2 |
14 |
ROW |
unsigned char 変数名[行長※3]; |
行長※3 |
- (凡例)
-
m,n:正の整数
- 注※1
-
pはm(精度)の値によって異なります。
項番
mの値
pの値
1
1≦m≦4の場合
2
2
5≦m≦8の場合
4
3
9≦m≦16の場合
8
4
17≦m≦38の場合
16
- 注※2
-
pは小数秒精度で,0,3,6,9,または12となります。
- 注※3
-
各列のデータ長の合計が行長になります。各列のデータ長の計算方法については,マニュアルHADB SQLリファレンスのデータ型の種類のデータ格納長を参照してください。
データ記述に使用されるマクロは,次のように展開されます。
- ■a_rdb_M_VARCHAR(n) 変数名;
-
struct { unsigned int Length ; /* データ長 */ char Data[n] ; /* 文字データ */ }
- ■a_rdb_M_VARBINARY(n) 変数名;
-
struct { unsigned short Length ; /* データ長 */ unsigned char Data[n] ; /* バイナリデータ */ }