 |
Data Provider for .NET Guide (v11) |
 |
|
データ型
表 6 から表 9 は、Pervasive PSQL ADO.NET データ プロバイダーでサポートされるデータ型を示しています。
- 表 6 は、Pervasive データ型と .NET Framework 型の対応表です。
- 表 7 は、System.Data.DbType のみが指定されている場合にデータ プロバイダーが使用するデータ型の対応表です。
- 表 8 は、プロバイダー固有のデータ型も System.Data.DbType も指定されていない場合に、データ プロバイダーがデータ型を推定するために使用するデータ型の対応表です。
- 表 9 は、長いデータ パラメーターへの入力としてストリームが使用される場合にデ―タ プロバイダーが使用するデータ型の対応表です。
Pervasive データ型から .NET Framework データ型へのマッピング
表 6 では、ADO.NET データ プロバイダーでサポートされるデータ型と、対応する .NET Framework 型を示します。この表で、DataAdapter を使って DataSet を埋めるときに使用するデータ型を確認してください。
また、この表では DataReader オブジェクトを直接使用する場合にデータへアクセスするための適切なアクセサーも示します。
- [Pervasive データ型]列は、ネイティブなデータ型の名前を示しています。
- [PsqlDbType]列は、Pervasive PSQL ADO.NET データ プロバイダーのデータ型の列挙を示します。基本的には、ネイティブ データ型と PsqlDbType とは 1 対 1 で対応しています。ただし、Pervasive データ型 NUMBER は、Decimal または Double のどちらにも対応しているので、この限りではありません。
- [.NET Framework 型]列は .NET Framework で使用可能な基本データ型を示します。
- [.NET Framework 型指定されたアクセサー]列は、DataReader を使用する場合に、この型の列へのアクセスに使用する必要があるメソッドを示します。
表 6 Pervasive データ型のマッピング
Pervasive データ型
|
PsqlDbType
|
.NET Framework 型
|
.NET Framework 型指定されたアクセサー
|
BFLOAT4
|
BFloat4
|
Single
|
GetSingle( )
|
BFLOAT8
|
BFloat8
|
Double
|
GetDouble()
|
BIGINT
|
BigInt
|
Int64
|
GetDecimal( )
|
BINARY
|
Binary
|
Byte[]
|
GetBytes( )
|
BIT
|
Bit
|
Byte[]
|
GetBytes( )
|
CHAR
|
Char
|
String
Char[]
|
GetString( )
GetChars( )
|
CURRENCY
|
Currency
|
Decimal
|
GetDecimal( )
|
DATE
|
Date
|
DateTime
|
GetDateTime()
|
DATETIME
|
DateTime11
|
DateTime
|
GetDateTime()
|
DECIMAL
|
Decimal
|
Decimal
|
GetDecimal( )
|
DOUBLE
|
Double
|
Double
|
GetDouble()
|
FLOAT
|
Float
|
Double
|
GetDouble()
|
IDENTITY
|
Identity
|
Int32
|
GetInt32( )
|
INTEGER
|
Integer
|
Int32
|
GetInt32( )
|
LONGVARBINARY
|
LongVarBinary
|
Byte[]
|
GetBytes( )
|
LONGVARCHAR
|
LongVarChar
|
Byte[]
|
GetBytes( )
|
MONEY
|
Money
|
Decimal
|
GetDecimal( )
|
NUMERIC
|
Decimal
|
Decimal
|
GetDecimal( )
|
NUMERICSA
|
DecimalSA
|
Decimal
|
GetDecimal( )
|
NUMERICSTS
|
DecimalSTS
|
Decimal
|
GetDecimal( )
|
REAL
|
Real
|
Single
|
GetSingle( )
|
SMALLIDENTITY
|
SmallIdentity
|
Int16
|
GetInt16( )
|
SMALLINT
|
SmallInt
|
Int16
|
GetInt16( )
|
TIME
|
Time
|
Timespan2
|
GetValue()
|
TIMESTAMP
|
Timestamp
|
DateTime
|
GetDateTime()
|
TINYINT
|
TinyInt
|
SByte
|
GetByte( )
|
UBIGINT
|
UBigInt
|
UInt64
|
GetUInt64()
|
UNIQUE_IDENTIFIER
|
UniqueIdentifier1
|
String
|
GetString( )
|
UINTEGER
|
UInteger
|
UInt32
|
GetUInt32( )
|
USMALLINT
|
USmallInt
|
UInt16
|
GetUInt16( )
|
UTINYINT
|
UTinyInt
|
Byte
|
GetByte( )
|
VARCHAR
|
VarChar
|
String
Char[]
|
GetString( )
GetChars( )
|
1 Pervasive PSQL 9.5 以上でサポートされます。
2 timetype 接続オプションの設定によって異なります。
|
パラメーター データ型のマッピング
パラメーターのデータ型は、データ プロバイダーごとに固有のものを使用します。ADO.NET データ プロバイダーは、サーバーへ送信する前に、パラメーター値をネイティブの形式に変換する必要があります。アプリケーションでパラメーターを記述する最もよい方法は、データ プロバイダー固有の型の列挙を使用することです。
汎用プログラミングでは、データ プロバイダー固有の型を使用できない場合があります。プロバイダー固有の DB 型が指定されていない場合は、パラメーター値の System.Data.DbType または .NET Framework 型からデータ型が推定されます。
ADO.NET データ プロバイダーは、次の順序を用いてパラメーターのデータ型を推定します。
- データ プロバイダー固有のデータ型が指定されている場合は、それを使用します。
- System.Data.DbType は指定されているけれども、データ プロバイダー固有のデータ型が指定されていない場合は、System.Data.DbType からデータ型を推定します。
- データ プロバイダー固有のデータ型も System.Data.DbType も指定されていない場合は、.NET Framework 型からデータ型を推定します。
表 7 は、System.Data.DbType のみが指定された場合に、データ プロバイダーがどのようにデータ型を推定するかを示します。
表 7 System.Data.DbTypes から PsqlDbTypes へのマッピング
System.Data.DbType
|
PsqlDbType
|
AnsiString
|
VarChar
|
AnsiStringFixedLength
|
Char
|
Binary
|
Binary
|
Boolean
|
Integer
|
Byte
|
Integer
|
Currency
|
Currency
|
Date
|
Date
|
DateTime
|
DateTime1
|
Decimal
|
Decimal または Money
|
Double
|
Double
|
Float
|
Float
|
GUID
|
UniqueIdentifier*
|
Int16
|
SmallInt
|
Int32
|
Integer
|
Int64
|
BigInt
|
Sbyte
|
Integer
|
Single
|
BFloat4
|
String
|
VarChar
|
StringFixedLength
|
Char
|
Time
|
Time
|
Uint16
|
USmallInt
|
Uint32
|
UInteger
|
Uint64
|
UBigInt
|
VarNumeric
|
Decimal
|
1 Pervasive PSQL v9.5 以上でサポートされます。
|
表 8 では、プロバイダー固有のデータ型も System.Data.DbType も指定されない場合に、データ プロバイダーがデータ型を推定するために使用する対応表を示します。
表 8 .NET Framework 型から PsqlDbType へのマッピング
.NET Framework 型
|
PsqlDbType
|
Boolean
|
Integer
|
Byte
|
Integer
|
Byte[]
|
Binary
|
DateTime
|
Timestamp
|
Decimal
|
Decimal
|
Double
|
Double
|
Int16
|
SmallInt
|
Int32
|
Integer
|
Int64
|
BigInt
|
Single
|
BFloat4
|
String
|
VarChar
|
Uint16
|
USmallInt
|
Uint32
|
UInteger
|
Uint64
|
UBigInt
|
ストリーム オブジェクトでサポートされるデータ型
ADO.NET プロバイダーは、表 9 に挙げられているデータ型に対し、長いデータ パラメーターへの入力としてストリームを使用することをサポートしています。
表 9 サポートされるストリーム オブジェクト
プロバイダー データ型
|
サポートされるストリーム型
|
LONGVARBINARY
|
Stream
|
LONGVARCHAR
|
TextReader
|
ストリームの説明については、長いデータ パラメーターへの入力としてストリームを使用するを参照してください。
 パフォーマンスに関する考慮点 |
 長いデータ パラメーターへの入力としてストリームを使用する |
|