Mappage des types de données dbExpress pour les bases de données prises en charge
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.
Sommaire
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 |