15.7.3 HiRDBデータプロバイダ for .NET Frameworkの型変換
表「HiRDB型に対するUAPの使用型及びアクセサ」の.NET Framework型及びアクセサを使用しない場合,HiRDBデータプロバイダ内部で自動的に型変換されます。NET Framework型及びアクセサを使用しない場合とは,CHAR属性の項目を持つ表にInt32型のデータをINSERTしたり,GetInt32メソッドで取得したりすることをいいます。
INSERT時の型変換一覧を次の表に示します。
SELECT時の型変換一覧を次の表に示します。
なお,これらの表の記号の意味については,「記号の意味」を参照してください。
.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 |
.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 |
範囲外:[Hitachi.HiRDB.HiRDBException]KFPZ24026-E 形式変換エラー |
△2 |
範囲外:[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] 未サポートエラー |