Hitachi

DBPARTNER2 Client プログラマーズガイド


5.3.1 DABrokerドライバの場合のODBCとデータベースとのデータ型の対応

〈この項の構成〉

(1) ODBCとデータベースとのデータ型の対応

DABrokerドライバ(DBPARTNER/Serverドライバ)の場合の,ODBCとデータベースとのデータ型の対応について表5-3〜表5-11に示します。

表5-3〜表5-11で使用している略号,及び凡例の意味は次のとおりです。また,表の中で※印で示している注意事項については,この項の末尾にまとめて記述しています。

(略号)

HiR:HiRDBのことです。

ORA:ORACLEのことです。

SQL:SQL Serverのことです。

Adap:Adaptive Server Anywhereのことです。

RDB1:RDB1 E2のことです。

RDB編成:RDB編成ファイルのことです。

RD:XDM/RD E2のことです。

SD:XDM/SD E2のことです。

PDM:PDMII E2のことです。

KSP:VOSKスプールファイルのことです。

RDA(経由):RDA Link for Gatewayのことです。

DBS(経由,直結):Database Connection Serverのことです。

(凡例)

−:ODBCにはないデータ型を示します。

○:データ型を使えます。

●:データベースに該当するデータ型がありません。

×:ODBCドライバに該当するデータ型がないので使えません。

(a) 文字データ型の対応と各データベースでの使用可否

ODBCとデータベースとの文字データ型の対応を表5-3に,各データベースでの文字データ型の使用可否を表5-4と表5-5に示します。

表5-4/表5-5で使用可否を示す文字データ型については,表5-3を参照してください。表5-3と表5-4/表5-5は,項番で対応しています。

表5‒3 ODBCとデータベースのデータ型の対応(文字データ)

項番

ODBCのデータ型

データベースのデータ型

説明

1

SQL_CHAR

CHAR(n),ROWID

固定長文字列

2

SQL_VARCHAR

VARCHAR(n)

可変長文字列

3

SQL_LONGVARCHAR

LONG VARCHAR(n),VARCHAR2,LONG※1

可変長長文字列

4

※2

NCHAR(n),NATIONAL CHARACTER

固定長各国文字列

5

※2

NVARCHAR(n)

可変長各国文字列

6

※2

LONG NVARCHAR(n)

可変長長各国文字列

7

※2

MCHAR(n)

固定長混在文字列

8

※2

MVARCHAR(n)

可変長混在文字列

9

※2

LONG MVARCHAR(n)

可変長長混在文字列

表5‒4 各データベースでの文字データ型の使用可否(DABroker経由)

項番

DABroker経由

DABroker直結

RDA経由

DBS経由

HiR

ORA

SQL

Adap

RD

RDB1

RDB編成

RD

SD※7

RDB編成

PDM

※8

RDB1

KSP

※5

1

2

3

4

5

6

7

8

9

表5‒5 各データベースでの文字データ型の使用可否(DBS直結)

項番

DBS直結

RD

SD※7

RDB編成

PDM

※8

RDB1

KSP

※5

1

2

3

4

5

6

7

8

9

(b) 数データ型の対応と各データベースでの使用可否

ODBCとデータベースとの数データ型の対応を表5-6に,各データベースでの数データ型の使用可否を表5-7と表5-8に示します。

表5-7/表5-8で使用可否を示す数データ型については,表5-6を参照してください。表5-6と表5-7/表5-8は,項番で対応しています。

表5‒6 ODBCとデータベースのデータ型の対応(数データ)

項番

ODBCのデータ型

データベースのデータ型

説明

1

SQL_DECIMAL

DEC[IMAL](p,s)※6

固定小数点数

2

SQL_NUMERIC

NUMERIC,NUMBER(p,s)※6

精度1≦p≦15,0≦s≦p

3

LARGE DEC[IMAL](p,s)※6

拡張精度固定小数点数

1≦p≦29,0≦s≦p

4

SQL_DECIMAL

PACKED DECIMAL FIXED WITH NO SIGN

符号なしPACK形式

5

※4

WZONE

符号なしZONE形式

6

SQL_DECIMAL

UNPACKED DECIMAL FIXED

WITH NO SIGN

符号なしZONE形式

7

SQL_SMALLINT

SMALLINT

値の範囲が-32,768〜32,767の整数

8

SQL_INTEGER

INTEGER

値の範囲が-2,147,483,648〜

2,147,483,647の整数

9

SQL_TINYINT

TINYINT

-256〜255の整数

10

SQL_BIGINT

BIGINT

1けたの符号と19けたの整数

11

SQL_REAL

SMALLFLT,REAL

単精度浮動小数点数

12

SQL_FLOAT

FLOAT,DOUBLE PRECISION

倍精度浮動小数点数

13

SQL_DOUBLE

DOUBLE

倍精度浮動小数点数

14

SQL_BIT

BIT

ビット

15

SQL_BINARY

BINARY

固定長バイナリデータ

16

SQL_VARBINARY

VARBINARY,RAW

可変長バイナリデータ

17

SQL_LONGVARBINARY

LONG VARBINARY,LONG RAW※1

可変長バイナリデータ

表5‒7 DABrokerドライバ経由での数データの使用可否(DABroker経由)

項番

DABroker経由

DABroker直結

RDA経由

DBS経由

HiR

ORA

SQL

Adap

RD

RDB1

RDB編成

RD

SD※7

RDB編成

PDM

※8

RDB1

KSP

※5

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

表5‒8 DABrokerドライバ経由での数データの使用可否(DBS直結)

項番

DBS直結

RD

SD※7

RDB編成

PDM

※8

RDB1

KSP

※5

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

(c) 日付時刻データ型の対応と各データベースでの使用可否

ODBCとデータベースとの日付時刻データ型の対応を表5-9に,各データベースでの日付時刻データ型の使用可否を表5-10と表5-11に示します。

表5-10/表5-11で使用可否を示す日付時刻データ型については,表5-9を参照してください。表5-9と表5-10/表5-11は,項番で対応しています。

表5‒9 ODBCとデータベースのデータ型の対応(日付時刻データ)

項番

ODBCのデータ型

データベースのデータ型

説明

1

SQL_DATE

DATE

日付

2

SQL_TIMESTAMP

DATE

固定長日付/時刻値

3

SQL_TIME

TIME

時刻

4

※2

INTERVAL YEAR TO DAY

日間隔

5

※2

INTERVAL HOUR TO SECOND

時間隔

表5‒10 DABrokerドライバ経由での日付時刻データの使用可否(DABroker経由)

項番

DABroker経由

DABroker直結

RDA経由

DBS経由

HiR

ORA

SQL

Adap

RD

RDB1

RDB編成

RD

SD

※7

RDB編成

PDM

※8

RDB1

※5

KSP

※5

1

※3

※3

2

3

×

4

×

×

×

×

5

×

×

×

×

表5‒11 DABrokerドライバ経由での日付時刻データの使用可否(DBS直結)

項番

DBS直結

RD

SD※7

RDB編成

PDM

※8

RDB1

※5

KSP

※5

1

※3

2

3

4

×

5

×

データ型の最大文字列長と値の範囲は,各データベースで異なります。各データベースのマニュアルを参照してください。

注※1

データの最大長は,DABroker動作環境定義ファイルのDABORADBA_LONGBUFSIZEで指定した値です。

注※2

「DBPARTNER2 ClientとDABrokerドライバ」を使っているときは,データベースのデータ型がそのまま通知されます。それ以外のときは,アプリケーションに固定長文字列(CHAR)として通知されます。

注※3

XDM/RD E2 01-02以降を使っているときに対応します。

注※4

「DBPARTNER2 ClientとDABrokerドライバ」を使っているときは,データベースのデータ型がそのまま通知されます。それ以外のときは,アプリケーションに固定小数点数(SQL_NUMERIC)として通知されます。

注※5

バージョンが01-02以降のDatabase Connection Server,又はバージョンが02-04以降のDABrokerを使っているときに対応します。

注※6

「(p,s)」の「p」は全体のけた数,「s」は小数点以下のけた数を示します。

注※7

バージョンが02-00以降のDatabase Connection Server,又はバージョンが02-01以降のDABrokerを使っているときに対応します。

注※8

Database Connection Server,又はバージョンが02-04以降のDABrokerを使っているときに対応します。

(2) データベースのデータ型とSQLデータ型の対応

データベースのデータ型に対するSQLデータ型の対応を次に示します。

(a) SQL Serverの場合

SQL Serverのデータ型に対するSQLデータ型の対応を表5-12に示します。

表5‒12 SQL Serverのデータ型とSQLデータ型の対応

データベースのデータ型

SQLデータ型

bit

SQL_BIT

tinyint

SQL_TINYINT

smallint

SQL_SMALLINT

int

SQL_INTEGER

binary

SQL_BINARY

timestamp

SQL_BINARY

varbinary

SQL_VARBINARY

image

SQL_LONGVARBINARY

char

SQL_CHAR

varchar

SQL_VARCHAR

sysname

SQL_VARCHAR

text

SQL_LONGVARCHAR

decimal

SQL_DECIMAL

money

SQL_DECIMAL

smallmoney

SQL_DECIMAL

numeric

SQL_NUMERIC

real

SQL_REAL

float

SQL_FLOAT又はSQL_DOUBLE

datetime

SQL_TIMESTAMP

smalldatetime

SQL_TIMESTAMP

(b) Adaptive Server Anywhereの場合

Adaptive Server Anywhereのデータ型に対するSQLデータ型の対応を表5-13に示します。

表5‒13 Adaptive Server Anywhereのデータ型とSQLデータ型の対応

データベースのデータ型

SQLデータ型

bit

SQL_BIT

tinyint

SQL_TINYINT

oldbit

SQL_TINYINT

smallint

SQL_SMALLINT

integer

SQL_INTEGER

bigint

SQL_BIGINT

binary

SQL_BINARY

varbinary

SQL_BINARY

java serialization

SQL_LONGVARBINARY

java.lang.Object

SQL_LONGVARBINARY

long binary

SQL_LONGVARBINARY

image

SQL_LONGVARBINARY

char

SQL_VARCHAR

varchar

SQL_VARCHAR

sysname

SQL_VARCHAR

long varchar

SQL_LONGVARCHAR

text

SQL_LONGVARCHAR

decimal

SQL_DECIMAL

numeric

SQL_NUMERIC

money

SQL_NUMERIC

smallmoney

SQL_NUMERIC

float

SQL_REAL

double

SQL_DOUBLE

date

SQL_DATE

time

SQL_TIME

timestamp

SQL_TIMESTAMP

datetime

SQL_TIMESTAMP

smalldatetime

SQL_TIMESTAMP

(c) XDM/SD E2の場合

XDM/SD E2のデータ型に対するSQLデータ型の対応を表5-14に示します。

表5‒14 XDM/SD E2のデータ型とSQLデータ型の対応

データベースのデータ型

SQLデータ型

CHARACTER

SQL_CHAR

NCHARACTER

SQL_CHAR

COMP(2バイト)

SQL_SMALLINT

COMP(4バイト)

SQL_INTEGER

PACKED DECIMAL FIXED

SQL_DECIMAL

UNPACKED DECIMAL FIXED

SQL_DECIMAL

PACKED DECIMAL FIXED WITH NO SIGN

SQL_DECIMAL

UNPACKED DECIMAL FIXED WITH NO SIGN

SQL_DECIMAL

BIT

SQL_BINARY

データベースキー

SQL_BINARY

(d) RDB編成ファイル(DBS接続)の場合

RDB編成ファイル(DBS接続)のデータ型に対するSQLデータ型の対応を表5-15に示します。

表5‒15 RDB編成ファイル(DBS接続)のデータ型とSQLデータ型の対応

データベースのデータ型

SQLデータ型

CHAR

SQL_CHAR

PACK

SQL_DECIMAL

ZONE

SQL_NUMERIC

WZONE

SQL_NUMERIC

BINARY(2バイト)

SQL_SMALLINT

BINARY(4バイト)

SQL_INTEGER

HEX

SQL_BINARY

NCHAR

SQL_CHAR

MCHAR

SQL_CHAR

BIT

SQL_BINARY

(e) PDMII E2の場合

PDMII E2のデータ型に対するSQLデータ型の対応を表5-16に示します。

表5‒16 PDMII E2のデータ型とSQLデータ型の対応

データベースのデータ型

SQLデータ型

CHARACTER

SQL_CHAR

NCHARACTER

SQL_CHAR

COMP(2バイト)

SQL_SMALLINT

COMP(4バイト)

SQL_INTEGER

PACKED DECIMAL FIXED

SQL_DECIMAL

UNPACKED DECIMAL FIXED

SQL_DECIMAL

DBK(データベースキー)

SQL_BINARY

(f) RDB1 E2の場合

RDB1 E2のデータ型に対するSQLデータ型の対応を表5-17に示します。

表5‒17 RDB1 E2のデータ型とSQLデータ型の対応

データベースのデータ型

SQLデータ型

CHAR

SQL_CHAR

VARCHAR

SQL_VARCHAR

LONG VARCHAR

SQL_LONGVARCHAR

NCHAR

SQL_CHAR

NVARCHAR

SQL_VARCHAR

INTEGER

SQL_INTEGER

SMALLINT

SQL_SMALLINT

DECIMAL

SQL_DECIMAL

FLOAT

SQL_FLOAT

SMALLFLT

SQL_REAL

(g) VOSKスプールファイルの場合

VOSKスプールファイルのデータ型に対するSQLデータ型の対応を表5-18に示します。

表5‒18 VOSKスプールファイルのデータ型とSQLデータ型の対応

データベースのデータ型

SQLデータ型

MCHAR

SQL_CHAR

(3) データベースと接続するときのSQLGetInfoの戻り値

次のデータベースと接続するときのSQLGetInfoの戻り値を表5-19に示します。