Hitachi

Hitachi Advanced Database AP開発ガイド


19.6.2 SQLのデータ型とデータ記述の対応

SQLのデータ型とC言語またはC++言語のデータ記述の対応を次の表に示します。

表19‒8 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

STRING

a_rdb_M_VARCHAR(32000000) 変数名;

32,000,004

4

BIGINT

long long 変数名;

8

5

INTEGER※4

int 変数名;

4

6

SMALLINT※5

short 変数名;

2

7

DECIMAL(m,n)

unsigned char 変数名[p※1];

p※1

8

NUMERIC(m,n)

9

REAL

float 変数名;

4

10

DOUBLE PRECISION

double 変数名;

8

11

FLOAT

12

DATE

unsigned char 変数名[4];

4

13

TIME(p)※2

unsigned char 変数名[3+(p+1)÷2];

3+(p+1)÷2

14

TIMESTAMP(p)※2

unsigned char 変数名[7+(p+1)÷2];

7+(p+1)÷2

15

BINARY(n)

unsigned char 変数名[n];

n

16

VARBINARY(n)

a_rdb_M_VARBINARY(n) 変数名;

n+2

17

BOOLEAN

char 変数名;

1

18

UUID

unsigned char 変数名[16];

16

19

ROW

unsigned char 変数名[行長※3];

行長※3

(凡例)

mn:正の整数

注※1

pm(精度)の値によって異なります。

項番

mの値

pの値

1

1≦m≦4の場合

2

2

5≦m≦8の場合

4

3

9≦m≦16の場合

8

4

17≦m≦38の場合

16

注※2

pは小数秒精度で,0369,または12となります。

注※3

各列のデータ長の合計が行長になります。各列のデータ長の計算方法については,マニュアルHADB SQLリファレンスデータ型の種類データ格納長を参照してください。

注※4

整数データ型のデータ形式がレガシー形式の場合,C言語またはC++言語のデータ記述は「long long 変数名;」で,領域長は8になります。

注※5

整数データ型のデータ形式がレガシー形式の場合,C言語またはC++言語のデータ記述は「int 変数名;」で,領域長は4になります。

データ記述に使用されるマクロは,次のように展開されます。

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] ;         /* バイナリデータ */
}