Hitachi

ノンストップデータベース HiRDB Version 10 UAP開発ガイド


15.7.3 HiRDBデータプロバイダ for .NET Frameworkの型変換

表「HiRDB型に対するUAPの使用型及びアクセサ」の.NET Framework型及びアクセサを使用しない場合,HiRDBデータプロバイダ内部で自動的に型変換されます。NET Framework型及びアクセサを使用しない場合とは,CHAR属性の項目を持つ表にInt32型のデータをINSERTしたり,GetInt32メソッドで取得したりすることをいいます。

INSERT時の型変換一覧を次の表に示します。

SELECT時の型変換一覧を次の表に示します。

なお,これらの表の記号の意味については,「記号の意味」を参照してください。

表15‒10 INSERT時の型変換一覧(1/2)

.NET Framework型

HiRDBのデータ型

I

SI

DE

F

SF

C

VC

NC

NVC

Boolean

×1

×1

×1

×1

×1

×1

×1

×1

×1

Int16

×1

×1

Int32

△1

×1

×1

Int64

△2

△1

×1

×1

UInt16

△1

×1

×1

UInt32

△2

△1

×1

×1

UInt64

△2

△1

×1

×1

Single小数部ありデータ

△4

△3

×1

×1

Single小数部なしデータ

△2

△1

×1

×1

Double小数部ありデータ

△4

△3

×1

×1

Double小数部なしデータ

△2

△1

×1

×1

Decimal小数部ありデータ

△4

△3

×1

×1

Decimal小数部なしデータ

△2

△1

×1

×1

Char

○1

○1

×1

×1

×1

Char[]

×1

×1

×1

×1

×1

×1

×1

×1

×1

String

△2

△1

DateTime

×1

×1

×1

×1

×1

×1

×1

TimeSpan

×1

×1

×1

×1

×1

×1

×1

Guid

×1

×1

×1

×1

×1

×1

×1

Byte

×1

×1

Byte[]

×1

×1

×1

×1

×1

×1

×1

×1

×1

Sbyte

×1

×1

SByte[]

×1

×1

×1

×1

×1

×1

×1

×1

×1

表15‒11 INSERT時の型変換一覧(2/2)

.NET Framework型

HiRDBのデータ型

MC

MVC

DA

T

TS

IY

IHS

BI

BL

Boolean

×1

×1

×1

×1

×1

×1

×1

×1

×1

Int16

×1

×1

×1

×2

×2

×1

×1

Int32

×1

×1

×1

×2

×2

×1

×1

Int64

×1

×1

×1

×2

×2

×1

×1

UInt16

×1

×1

×1

×2

×2

×1

×1

UInt32

×1

×1

×1

×2

×2

×1

×1

UInt64

×1

×1

×1

×2

×2

×1

×1

Single小数部ありデータ

×1

×1

×1

×2

×2

×1

×1

Single小数部なしデータ

×1

×1

×1

×2

×2

×1

×1

Double小数部ありデータ

×1

×1

×1

×2

×2

×1

×1

Double小数部なしデータ

×1

×1

×1

×2

×2

×1

×1

Decimal小数部ありデータ

×1

×1

×1

×2

×2

×1

×1

Decimal小数部なしデータ

×1

×1

×1

×2

×2

×1

×1

Char

×1

×1

×1

×2

×2

×1

×1

Char[]

×1

×1

×1

×1

×1

×2

×2

×1

×1

String

×1

×1

DateTime

×2

×2

×1

×1

TimeSpan

×1

×1

×1

×2

×1

×1

Guid

×1

×1

×1

×2

×2

×1

×1

Byte

×1

×1

×1

×2

×2

Byte[]

×1

×1

×1

×1

×1

×2

×2

Sbyte

×1

×1

×1

×2

×2

SByte[]

×1

×1

×1

×1

×1

×2

×2

注1 NCHAR/NVARCHARへのINSERT時の注意事項

S-JIS変換後のサイズが奇数バイトのデータは,[Hitachi.HiRDB.HiRDBException]KFPZ24026-E 形式変換エラーになります。

注2 配列INSERT時の注意事項

Object配列型以外は[Hitachi.HiRDB.HiRDBException]KFPZ24026-E 形式変換エラーになります。また,BLOBへの配列インサートはできないため,同じエラーになります。

表15‒12 SELECT時の型変換一覧(1/2)

アクセサ

HiRDBのデータ型

I

SI

DE

F

SF

C

VC

NC

NVC

GetBoolean

×3

×3

×3

×3

×3

×3

×3

×3

×3

GetByte

×3

×3

×3

×3

×3

×3

×3

×3

×3

GetBytes

×1

GetChar

×3

×3

×3

×3

×3

×3

×3

×3

×3

GetChars

×1

×1

×1

×1

×1

GetData

×3

×3

×3

×3

×3

×3

×3

×3

×3

GetDateTime

×1

×1

×1

×1

×1

△6

△6

△6

△6

GetDecimal

△7

△7

△7

△7

GetDouble

△8

△8

△8

△8

GetFloat

△9

△9

△9

△9

GetGuid

×3

×3

×3

×3

×3

×3

×3

×3

×3

GetInt16

△1

△1

△1

△1

△1

△1

△1

△1

GetInt32

△2

△2

△2

△2

△2

△2

△2

GetInt64

△10

△10

△10

△10

△10

△10

△10

GetString

GetValue

GetValues

表15‒13 SELECT時の型変換一覧(2/2)

アクセサ

HiRDBのデータ型

MC

MVC

DA

T

TS

IY

IHS

BI

BL

GetBoolean

×3

×3

×3

×3

×3

×3

×3

×3

×3

GetByte

×3

×3

×3

×3

×3

×3

×3

×3

×3

GetBytes

×1

×1

×1

×1

×1

GetChar

×3

×3

×3

×3

×3

×3

×3

×3

×3

GetChars

×1

×1

×1

×1

×1

×1

×1

GetData

×3

×3

×3

×3

×3

×3

×3

×3

×3

GetDateTime

△6

△6

×1

×1

×1

×1

GetDecimal

△7

△7

×1

×1

×1

×1

×1

×1

×1

GetDouble

△8

△8

×1

×1

×1

×1

×1

×1

×1

GetFloat

△9

△9

×1

×1

×1

×1

×1

×1

×1

GetGuid

×3

×3

×3

×3

×3

×3

×3

×3

×3

GetInt16

△1

△1

×1

×1

×1

×1

×1

×1

×1

GetInt32

△2

△2

×1

×1

×1

×1

×1

×1

×1

GetInt64

△10

△10

×1

×1

×1

×1

×1

×1

×1

GetString

GetValue

GetValues

注1 DATE取得時の注意事項

GetDateTimeメソッドで取得した場合,時刻領域は0時0分0秒が入ります。GetStringメソッドで取得した場合,YYYY/MM/DDのフォーマットで入ります。

注2 TIME/TIMESTAMP取得時の注意事項

GetDateTimeメソッドで取得した場合,日付領域は現在年月日が入ります。GetStringメソッドで取得した場合,次のフォーマットで入ります。

TIME:hh:mm:ss

TIMESTAMP(0):YYYY/MM/DD hh:mm:ss

TIMESTAMP(2):YYYY/MM/DD hh:mm:ss.nn

TIMESTAMP(4):YYYY/MM/DD hh:mm:ss.nnnn

TIMESTAMP(6):YYYY/MM/DD hh:mm:ss.nnnnnn

注3 INTERVALYEARTODAY取得時の注意事項

GetStringメソッドで取得した場合,±YYYY/MM/DDのフォーマットで入ります。

注4 INTERVALHOURTOSECOND取得時の注意事項

GetStringメソッドで取得した場合,±hh:mm:ssのフォーマットで入ります。

〈この項の構成〉

(1) 記号の意味

(a) HiRDBのデータ型

HiRDBのデータ型の,記号の意味を次に示します。

記号

意味

I

INTEGER

SI

SMALLINT

DE

DECIMAL,及びLARGE DECIMAL

F

FLOAT/DOUBLE PRECISION

SF

SMALLFLT,及びREAL

C

CHARACTER

VC

VARCHAR

NC

NCHAR,及びNATIONAL CHARACTER

NVC

NVARCHAR

MC

MCHAR

MVC

MVARCHAR

DA

DATE

T

TIME

TS

TIMESTAMP

IY

INTERVAL YEAR TO DAY

IHS

INTERVAL HOUR TO SECOND

BI

BINARY

BL

BLOB

(b) 型変換可否

○は正常,△は条件付きで動作,×はエラーとなります。さらに,これらに番号が付いている場合があります。○,△,及び×に番号が付いている場合の記号の意味を次に示します。

記号

意味

数字の文字コードが入ります。

△1

Int32型,Int64型,Single小数部なしデータ型,Double小数部なしデータ型,Decimal小数部なしデータ型,String小数部なしデータ型の場合

-32768〜32767:正常

UInt16型,UInt32型,UInt64型の場合

0〜32767:正常

範囲外:[Hitachi.HiRDB.HiRDBException]KFPZ24026-E 形式変換エラー

△2

Int64型,Single小数部なしデータ型,Double小数部なしデータ型,Decimal小数部なしデータ型,String小数部なしデータ型の場合

-2147483648〜2147483647:正常

UInt32型,UInt64型の場合

0〜2147483647:正常

範囲外:[Hitachi.HiRDB.HiRDBException]KFPZ24026-E形式変換エラー

△3

-32768〜32767:正常(小数点第一位四捨五入)

範囲外:[Hitachi.HiRDB.HiRDBException]KFPZ24026-E形式変換エラー

△4

-2147483648〜2147483647:正常(小数点第一位四捨五入)

範囲外:[Hitachi.HiRDB.HiRDBException]KFPZ24026-E形式変換エラー

△5

0〜255:正常

範囲外:[Hitachi.HiRDB.HiRDBException]KFPZ24026-E形式変換エラー

△6

DateTime形式データの場合:正常

DateTime形式データ以外:[Hitachi.HiRDB.HiRDBException]KFPZ24026-E形式変換エラー

△7

Decimal形式データの場合:正常

Decimal形式データ以外:[Hitachi.HiRDB.HiRDBException]KFPZ24026-E形式変換エラー

△8

Double形式データの場合:正常

Double形式データ以外:[Hitachi.HiRDB.HiRDBException]KFPZ24026-E形式変換エラー

△9

Float形式データの場合:正常

Float形式データ以外:[Hitachi.HiRDB.HiRDBException]KFPZ24026-E形式変換エラー

△10

-9223372036854775808〜9223372036854775807:正常

範囲外:[Hitachi.HiRDB.HiRDBException]KFPZ24026-E形式変換エラー

×1

[Hitachi.HiRDB.HiRDBException]KFPZ24026-E形式変換エラー

×2

[Hitachi.HiRDB.HiRDBException]KFPZ24107-E Decimal,日時,時間間隔型オーバフロー

[Hitachi.HiRDB.HiRDBException]KFPZ24106-E 日時,時間間隔型フォーマットエラー

×3

[System.NotSupportedException] 未サポートエラー