Hitachi

Hitachi Advanced Data Binder 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

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

(凡例)

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リファレンスデータ型の種類データ格納長を参照してください。

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

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