数据库数据类型映射
数据库组件保持一个在每个Gambas数据类型与基础数据库驱动的每个数据类型之间的映射。
当然,这个映射不是双向的。往往一个Gambas数据类型在数据库系统中不存在,而且更经常是矛盾的。
由于映射,当设计你的数据库时必须非常小心。如果你不想出任何问题,确保总是使用Gambas提供数据库管理器。
MySQL
下面是MySQL数据库驱动的映射:
Gambas数据类型
|
MySQL数据类型
|
缺省使用的数据类型
|
Boolean
|
BOOL
TINYINT (长度= 1)
|
BOOL
|
Integer
|
TINYINT (长度> 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 (长度>= 16777216)
TEXT (长度>= 16777216)
|
TEXT
|
String
|
VARCHAR
BLOB (长度< 16777216)
TEXT (长度< 16777216)
其他全部。
|
VARCHAR 如果长度<= 255.
TEXT 其他。
|
MySQL对于blob或text字段没有不同。所以Gambas依赖字段的长度来决定一个字段是text还是blob。
PostgreSQL
下面是PostgreSQL数据库驱动的映射:
Gambas数据类型
|
PostgreSQL数据类型
|
缺省使用的数据类型
|
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
其他全部。
|
VARCHAR
TEXT 无限制字符串字段。
|
SQLite
下面是SQLite数据库驱动的映射:
Gambas数据类型
|
SQLite数据类型
|
缺省使用的数据类型
|
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
其他全部。
|
VARCHAR
TEXT 无限制字符串字段。
|
Firebird
ODBC