Database Datatype Mapping
Le composant de base de données maintient une cartographie
Entre chaque type de données Gambas et chaque type de données du pilote de la base de données sous jacente.
Bien sur, cette cartographie n’est pas bijective. Parfois un type de données Gambas n’existe pas dans le système de base de données, et, plus souvent, c’est le contraire.
A cause de cette cartographie, vous devez être très attentif quand vous concevez votre base de données. Si vous voulez éviter les problèmes, assurez vous de toujours utiliser le gestionnaire de base de données fourni avec Gambas.
MySQL
La cartographie pour le pilote de base de données MySQL est la suivante :
Type de données Gambas
|
Type de données MySQL
|
Type de données utilisé par défaut
|
Boolean
|
BOOL
TINYINT (longueur = 1)
|
BOOL
|
Integer
|
TINYINT (longueur > 1)
SMALLINT
MEDIUMINT
INT
YEAR
|
INT
|
Long
|
BIGINT
|
BIGINT
|
Serial
|
INT UNSIGNED NOT NULL AUTO_INCREMENT
BIGINT UNSIGNED NOT NULL AUTO_INCREMENT
|
BIGINT UNSIGNED NOT NULL AUTO_INCREMENT
|
Float
|
FLOAT
DOUBLE
DECIMAL
REAL
NUMERIC
|
DOUBLE
|
Date
|
TIMESTAMP
DATE
TIME
DATETIME
|
DATETIME
|
Blob
|
LONGBLOB
LONGTEXT
BLOB (longueur >= 16777216)
TEXT (longueur >= 16777216)
|
TEXT
|
String
|
VARCHAR
BLOB (longueur < 16777216)
TEXT (longueur < 16777216)
Tous les autres.
|
VARCHAR si longueur <= 255.
TEXT autrement.
|
MySQL ne fait pas de différence entre un " blob " et un champ texte. Aussi Gambas se fie à la longueur du champ pour décider si un champ est un texte ou un " blob ".
PostgreSQL
La cartographie pour le pilote de base de données PostgreSQL est la suivante :
Type de données Gambas
|
Type de données PostgreSQL
|
Type de données utilisé by défaut
|
Boolean
|
BOOL
|
BOOL
|
Integer
|
INT2
INT4
INT
|
INT
|
Long
|
INT8
BIGINT
|
BIGINT
|
Serial
|
BIGSERIAL
|
BIGSERIAL
|
Float
|
NUMERIC
FLOAT4
FLOAT8
|
FLOAT8
|
Date
|
ABSTIME
RELTIME
DATE
TIME
TIMESTAMP
DATETIME
TIMESTAMPTZ
|
TIMESTAMP
|
Blob
|
BYTEA
|
BYTEA
|
String
|
CHAR
BPCHAR
VARCHAR
TEXT
NAME
CASH
Tous les autres.
|
VARCHAR
TEXT for unlimited string champs.
|
SQLite
La cartographie pour le pilote de base de données SQLite est la suivante :
Type de données Gambas
|
Type de données SQLite
|
Type de données utilisé by défaut
|
Boolean
|
CHAR
TINYINT
INT1
BOOL
|
BOOL
|
Integer
|
SMALLINT
INT2
MEDIUMINT
INT
INT4
|
INT4
|
Long
|
INT8
BIGINT
|
BIGINT
|
Serial
|
INTEGER
|
INTEGER AUTOINCREMENT
|
Float
|
DECIMAL
NUMERIC
DOUBLE
FLOAT8
REAL
FLOAT
FLOAT4
|
FLOAT8
|
Date
|
DATE
TIME
TIMESTAMP
DATETIME
|
DATETIME
|
Blob
|
BLOB
|
BLOB
|
String
|
CHAR()
CLOB
TEXT
VARCHAR
ENUM
SET
YEAR
Tous les autres.
|
VARCHAR
TEXT pour des chaînes de champs illimitées.
|
Firebird
ODBC