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