Documentation de Gambas - /doc/db-type-mapping

/doc/db-type-mapping
Le page anglaise est plus récente.

# 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