サポート対象データベースの dbExpress データ型マッピング

提供: RAD Studio
移動先: 案内検索

Win32 プラットフォーム向けのデータベース アプリケーションの開発:インデックス への移動


サポートされている各種データベースのデータ型は dbExpress のデータ型にマッピングされます。dbExpress では、該当する場合、以下のものが提供されます。

  • データベースによらない一貫性のあるデータ型マッピング
  • dbExpress の型にマッピングされる論理データ型


データ型の使用法

dbExpress には、さまざまな論理データ型が組み込まれています。dbExpress では、Adaptive Server Anywhere、DB2、Informix、InterBase、MS SQL Server、MSDE、MYSQL、Oracle、Sybase 用の論理データ型マッピングをサポートしています。

マッピング テーブルには、特に明記された場合を除き、データベースとの間でやり取りできるデータ型が示されています。これらのマッピングは機能しますが、他のマッピングが可能な場合もあります。テーブルのクエリを行う際に、データベースがデフォルトでこれらの型を異なる型にマッピングする場合があります。たとえば、Geometry 型はデフォルトで TDBXDataTypes.VarBytesType 型フィールドを返します。

たとえば以下のようなクエリを行ったとすると、

 Select * from table

一般的には、マッピング テーブルに示されている型のデータを取得することになります。

時には、返される型を指定したい場合もあるでしょう。たとえば、geometry 型の列 geometryCol を持つテーブルがあった場合、以下のようなクエリを実行して

 Select geometryCol.ToString() from table

データを文字列として取得し、そのデータのマッピング済みデータ型を取得しないようにすることができます。

また、データベースに送信するデータをパラメータで指定することもできます。たとえば、テーブルに int 型の列 intCol と geometry 型の列 geometryCol がある場合、以下のようなステートメントを使用することができます。

 insert into table (intCol, geometryCol) values (?, ?)

そして、パラメータ値をたとえば 3, 'Point(1 1)' のように指定することができます。


InterBase

dbExpress には、InterBase 2020(ToGo Edition を含む)用のデータ型マッピングが用意されています。dbExpress と InterBase 2020 の間のデータ型マッピングは以下のとおりです。


InterBase の型 dbExpress の型
integer TDBXDataTypes.Int32Type
smallint TDBXDataTypes.Int16Type
blob TDBXDataTypes.BlobType
blob sub_type text TDBXSubDataTypes.MemoSubType または TDBXSubDataTypes.WideMemoSubType(UTF-8 データベースの場合)をサブタイプとする TDBXDataTypes.BlobType
numeric TDBXDataTypes.BcdType
decimal TDBXDataTypes.BcdType
float TDBXDataTypes.DoubleType
double precision TDBXDataTypes.DoubleType
date TDBXDataTypes.DateType
time TDBXDataTypes.TimeType
timestamp TDBXDataTypes.TimeStampType
boolean TDBXDataTypes.BooleanType
char TDBXDataTypes.WideStringType(サーバーが UTF-8 を使用している場合)または TDBXDataTypes.AnsiStringType(それ以外の場合)
varchar TDBXDataTypes.WideStringType(サーバーが UTF-8 を使用している場合)または TDBXDataTypes.AnsiStringType(それ以外の場合)


MS SQL と MSDE

dbExpress は、Microsoft SQL 2008 のすべてのデータ型をサポートしています。Microsoft SQL と MSDE のデータ型マッピングは以下のとおりです。

Microsoft SQL の型 dbExpress の型
int TDBXDataTypes.Int32Type
bigint TDBXDataTypes.Int64Type
smallint TDBXDataTypes.Int16Type
tinyint TDBXDataTypes.UInt8Type
char TDBXDataTypes.AnsiStringType
varchar TDBXDataTypes.AnsiStringType
text TDBXSubDataTypes.MemoSubType をサブタイプとする TDBXDataTypes.BlobType
nchar TDBXDataTypes.WideStringType
nvarchar TDBXDataTypes.WideStringType
ntext TDBXSubDataTypes.WideMemoSubType をサブタイプとする TDBXDataTypes.BlobType
geometry TDBXDataTypes.AnsiStringType。パラメータを使用する場合、この型を採用。データベースは、TDBXDataTypes.VarBytesType を返す。
geography TDBXDataTypes.AnsiStringType。パラメータを使用する場合、この型を採用。データベースは、TDBXDataTypes.VarBytesType を返す。
money TDBXDataTypes.BcdType
smallmoney TDBXDataTypes.BcdType
float TDBXDataTypes.DoubleType
real TDBXDataTypes.DoubleType
decimal TDBXDataTypes.BcdType
numeric TDBXDataTypes.BcdType
xml TDBXDataTypes.WideStringType
sysname TDBXDataTypes.WideStringType
date TDBXDataTypes.DateType
time TDBXDataTypes.TimeType
datetime TDBXDataTypes.TimeStampType
datetime2 TDBXDataTypes.TimeStampType
smalldatetime TDBXDataTypes.TimeStampType
datetimeoffset TDBXDataTypes.TimeStampOffsetType
binary TDBXDataTypes.BytesType
varbinary TDBXDataTypes.VarBytesType
image TDBXSubDataTypes.BinarySubType をサブタイプとする TDBXDataTypes.BlobType
bit TDBXDataTypes.BooleanType
hierarchyid TDBXDataTypes.WideStringType。TDBXDataTypes.WideStringType パラメータを使用するが、データベースは TDBXDataTypes.VarBytesType を返す。
uniqueidentifier TDBXDataTypes.WideStringType
sql_variant TDBXDataTypes.VarBytesType


MYSQL

dbExpress には、以下の MYSQL データ型マッピングが用意されています。


MYSQL の型 dbExpress の型
int TDBXDataTypes.Int32Type
tinyint TDBXDataTypes.Int8Type
smallint TDBXDataTypes.Int16Type
mediumint TDBXDataTypes.Int32Type
bigint TDBXDataTypes.Int64Type
float TDBXDataTypes.DoubleType
double TDBXDataTypes.DoubleType
decimal TDBXDataTypes.BcdType
numeric TDBXDataTypes.BcdType
timestamp TDBXDataTypes.TimeStampType
datetime TDBXDataTypes.TimeStampType
date TDBXDataTypes.DateType
time TDBXDataTypes.TimeType
year TDBXDataTypes.Int16Type
binary TDBXDataTypes.AnsiStringType
varbinary TDBXDataTypes.AnsiStringType
tinytext TDBXDataTypes.AnsiStringType
text TDBXDataTypes.AnsiStringType
mediumtext TDBXDataTypes.AnsiStringType
longtext TDBXDataTypes.AnsiStringType
tinyblob TDBXSubDataTypes.BinarySubType をサブタイプとする TDBXDataTypes.BlobType
blob TDBXSubDataTypes.BinarySubType をサブタイプとする TDBXDataTypes.BlobType
mediumblob TDBXSubDataTypes.BinarySubType をサブタイプとする TDBXDataTypes.BlobType
longblob TDBXSubDataTypes.BinarySubType をサブタイプとする TDBXDataTypes.BlobType
bit TDBXDataTypes.VarBytesType
bool TDBXDataTypes.Int8Type
enum TDBXDataTypes.AnsiStringType
set TDBXDataTypes.AnsiStringType
char TDBXDataTypes.WideStringType(サーバーが UTF-8 を使用している場合)または TDBXDataTypes.AnsiStringType(それ以外の場合)
varchar TDBXDataTypes.WideStringType(サーバーが UTF-8 を使用している場合)または TDBXDataTypes.AnsiStringType(それ以外の場合)


Firebird

dbExpress は、現在では Firebird のすべてのデータ型をサポートしています。dbExpress と Firebird の間のデータ型マッピングは以下のとおりです。


Firebird の型 dbExpress の型
integer TDBXDataTypes.Int32Type
bigint TDBXDataTypes.Int64Type
smallint TDBXDataTypes.Int16Type
char TDBXDataTypes.WideStringType(サーバーが UTF-8 を使用している場合)または TDBXDataTypes.AnsiStringType(それ以外の場合)
varchar TDBXDataTypes.WideStringType(サーバーが UTF-8 を使用している場合)または TDBXDataTypes.AnsiStringType(それ以外の場合)
float TDBXDataTypes.DoubleType
double TDBXDataTypes.DoubleType
decimal TDBXDataTypes.BcdType
numeric TDBXDataTypes.BcdType
date TDBXDataTypes.DateType
time TDBXDataTypes.TimeType
timestamp TDBXDataTypes.TimeStampType
blob TDBXDataTypes.BlobType


Oracle

dbExpress は、現在では Oracle 11g のすべてのデータ型をサポートしています(新しいデータ型 XMLType、Binary_Float、および Binary_Double を含む)。 dbExpress と Oracle 11g の間のデータ型マッピングは以下のとおりです。


Oracle の型 dbExpress の型
bfile TDBXDataTypes.BlobType
blob TDBXDataTypes.BlobType
char TDBXDataTypes.AnsiStringType
clob TDBXDataTypes.AnsiStringType
date TDBXDataTypes.TimeStampType
float TDBXDataTypes.BcdType
binary_float TDBXDataTypes.SingleType
binary_double TDBXDataTypes.DoubleType
interval day to second TDBXDataTypes.IntervalType
interval year to month TDBXDataTypes.IntervalType
long TDBXDataTypes.AnsiStringType
long raw TDBXDataTypes.BytesType
nchar TDBXDataTypes.WideStringType
nclob TDBXDataTypes.WideStringType
number TDBXDataTypes.BcdType
nvarchar2 TDBXDataTypes.WideStringType
raw TDBXDataTypes.BytesType
timestamp TDBXDataTypes.TimeStampType
timestamp(ローカルのタイム ゾーン付き) TDBXDataTypes.TimeStampType
timestamp(タイム ゾーン付き) TDBXDataTypes.TimeStampType
varchar2 TDBXDataTypes.AnsiStringType
xmltype TDBXDataTypes.AnsiStringType

関連項目