Mappage des types de données dbExpress pour les bases de données prises en charge

De RAD Studio
Aller à : navigation, rechercher

Remonter à Développement d'applications de bases de données pour la plate-forme Win32 - Index


Les types de données des diverses bases de données supportées sont mappés sur les types de données dbExpress. Quand c'est possible, dbExpress fournit :

  • Un mappage des types de données cohérent entre bases de données.
  • Des types de données logiques mappés sur les types dbExpress.


Utilisation des types de données

dbExpress propose une large gamme de types de données logiques. Il supporte les mappages des types de données logiques pour Adaptive Server Anywhere, DB2, Informix, InterBase, MS SQL, MSDE, MYSQL, Oracle et Sybase.

Les tables de mappage indiquent quel type de données vous pouvez à la fois envoyer vers, et obtenir d'une base de données, sauf dans les cas indiqués. Ces mappages fonctionneront, mais d'autres mappages peuvent être possibles. Une base de données peut mapper ces types sur un type différent par défaut lors de l'interrogation d'une table. Par exemple, le type Geometry renvoie par défaut un champ de type TDBXDataTypes.VarBytesType.

Avec la requête suivante,

 Select * from table

vous obtenez généralement des données du type indiqué dans les tables de mappage.

Dans certains cas, vous voudrez probablement spécifier le type renvoyé. Par exemple, si vous disposez d'une table avec une colonne geometryCol de type geometry, vous pouvez écrire

 Select geometryCol.ToString() from table

pour obtenir les données sous forme d'une chaîne et éviter d'obtenir le type de données mappé pour ces données.

Vous pouvez aussi spécifier les données que vous envoyez vers une base de données à l'aide de paramètres. Par exemple, si une table a une colonne intCol de type int et une colonne geometryCol de type geometry, vous pouvez utiliser l'instruction suivante :

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

puis fournir des valeurs de paramètre, telles que 3, 'Point(1 1)'.


InterBase

dbExpress fournit les mappages des types de données pour InterBase 2020, incluant To-Go. Le tableau suivant présente les mappages des types de données entre dbExpress et InterBase 2020.


Type InterBase Type dbExpress
integer TDBXDataTypes.Int32Type
smallint TDBXDataTypes.Int16Type
blob TDBXDataTypes.BlobType
blob sub_type text TDBXDataTypes.BlobType avec un sous-type de TDBXSubDataTypes.MemoSubType ou TDBXSubDataTypes.WideMemoSubType pour une base de données UTF-8
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 si le serveur utilise UTF-8 ; sinon TDBXDataTypes.AnsiStringType
varchar TDBXDataTypes.WideStringType si le serveur utilise UTF-8 ; sinon TDBXDataTypes.AnsiStringType


MS SQL et MSDE

Sachez que dbExpress supporte tous les types de données MS SQL 2008. Le tableau suivant présente les mappages des types de données pour MS SQL et MSDE.

Type MS SQL Type dbExpress
int TDBXDataTypes.Int32Type
bigint TDBXDataTypes.Int64Type
smallint TDBXDataTypes.Int16Type
tinyint TDBXDataTypes.UInt8Type
char TDBXDataTypes.AnsiStringType
varchar TDBXDataTypes.AnsiStringType
text TDBXDataTypes.BlobType, sous-type TDBXSubDataTypes.MemoSubType
nchar TDBXDataTypes.WideStringType
nvarchar TDBXDataTypes.WideStringType
ntext TDBXDataTypes.BlobType, sous-type TDBXSubDataTypes.WideMemoSubType
geometry TDBXDataTypes.AnsiStringType. Emploie ce type lors de l'utilisation de paramètres. La base de données renvoie TDBXDataTypes.VarBytesType.
geography TDBXDataTypes.AnsiStringType. Emploie ce type lors de l'utilisation de paramètres. La base de données renvoie 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 TDBXDataTypes.BlobType, sous-type TDBXSubDataTypes.BinarySubType
bit TDBXDataTypes.BooleanType
hierarchyid TDBXDataTypes.WideStringType. Utilise le paramètre TDBXDataTypes.WideStringType, mais la base de données renvoie TDBXDataTypes.VarBytesType.
uniqueidentifier TDBXDataTypes.WideStringType
sql_variant TDBXDataTypes.VarBytesType


MYSQL

dbExpress comporte les mappages des types de données MYSQL suivants :


Type MYSQL Type 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 TDBXDataTypes.BlobType, sous-type TDBXSubDataTypes.BinarySubType
blob TDBXDataTypes.BlobType, sous-type TDBXSubDataTypes.BinarySubType
mediumblob TDBXDataTypes.BlobType, sous-type TDBXSubDataTypes.BinarySubType
longblob TDBXDataTypes.BlobType, sous-type TDBXSubDataTypes.BinarySubType
bit TDBXDataTypes.VarBytesType
bool TDBXDataTypes.Int8Type
enum TDBXDataTypes.AnsiStringType
set TDBXDataTypes.AnsiStringType
char TDBXDataTypes.WideStringType si le serveur utilise UTF-8 ; sinon TDBXDataTypes.AnsiStringType
varchar TDBXDataTypes.WideStringType si le serveur utilise UTF-8 ; sinon TDBXDataTypes.AnsiStringType


Firebird

dbExpress fournit maintenant le support de tous les types de données Firebird. Le tableau suivant présente les mappages des types de données entre dbExpress et Firebird.


Type Firebird Type dbExpress
integer TDBXDataTypes.Int32Type
bigint TDBXDataTypes.Int64Type
smallint TDBXDataTypes.Int16Type
char TDBXDataTypes.WideStringType si le serveur utilise UTF-8 ; sinon TDBXDataTypes.AnsiStringType
varchar TDBXDataTypes.WideStringType si le serveur utilise UTF-8 ; sinon 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 fournit maintenant le support de tous les types de données Oracle 11g, notamment les nouveaux types XMLType, Binary_Float et Binary_Double. Le tableau suivant présente les mappages des types de données entre dbExpress et Oracle 11g.


Type Oracle Type 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 avec fuseau horaire local TDBXDataTypes.TimeStampType
timestamp avec fuseau horaire TDBXDataTypes.TimeStampType
varchar2 TDBXDataTypes.AnsiStringType
xmltype TDBXDataTypes.AnsiStringType

Voir aussi