返回首页

gbase数据、南大通用产品文档:GBase8c注意事项

更新日期:2024年09月11日


两个mysql 外表间的SELECT JOIN 不支持下推到MariaDB/MySQL Server 执行,会被
分成两条SQL 语句传递到MariaDB/MySQL Server 执行,然后在GBase 8c 处汇总处理
结果。

不支持IMPORT FOREIGN SCHEMA 语法。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1140

不支持对外表进行CREATE TRIGGER 操作。

Invalid port number
端口号必须是有效的四位数字,如下所示:
jdbc:gbasedbt-sqli://mymachine:1234/
mydatabase:user=me:
password=secret
在此示例中,1234 是端口号。

GBASE_FIELD
 结构说明
该结构用来保存字段的信息(字段名、类型、大小)
。通过重复调用



GBase 8a 程序员手册C API 篇
南大通用数据技术股份有限公司

- 5 -
gbase_fetch_field()可以为每个字段获取GBASE_FIELD 结构。
 结构成员
名 称
类 型
描 述
name
char*
字段名称,由NULL 终结的字符串。如
果用AS 子句为该字段指定了别名,名
称的值也是别名。
org_name
char*
字段名称,由NULL 终结的字符串。忽
略别名。
table
char*
包含该字段的表的名称,如果该字段不
是计算出的字段的话。对于计算出的字
段,表值为空的字符串。如果用AS 子
句为该表指定了别名,表的值也是别
名。
org_table
char*
表的名称,由NULL 终结的字符串。忽
略别名。
db
char*
字段源自的数据的名称,由NULL 终结
的字符串。如果该字段是计算出的字
段,db 为空的字符串。
catalog
char*
catalog 名称。该值总是"def"。
def
char*
该字段的默认值,由NULL 终结的字符
串。仅当使用GBASE_list_fields()时
才设置它。
length
unsigned
long
字段的宽度,如表定义中所指定的那
样。
max_length
unsigned
long
用于结果集的字段的最大宽度(对于实
际位于结果集中的行,最长字段值的长
度)
。如果使用gbase_store_result()
或gbase_list_fields(),它将包含字
段的最大长度。如果使用
gbase_use_result(),该变量的值为0。

name_length
unsigned
int 名称的长度。

GBase 8a 程序员手册C API 篇


- 6 -

南大通用数据技术股份有限公司
名 称
类 型
描 述
org_name_length
unsigned
int org_name 的长度。
table_length
unsigned
int 表的长度。
org_table_length unsigned
int org_table 的长度。
db_length
unsigned
int db 的长度。
catalog_length
unsigned
int catalog 的长度。
def_length
unsigned
int def 的长度。
flags
unsigned
int 用于字段的不同“位标志”。
decimals
unsigned
int 用于数值字段的十进制数数目。
charsetnr
unsigned
int 用于字段的字符集编号。
type
enum_field_
types
字段的类型。类型值可以是下标所列的
GBASE_TYPE_符号之一:

flags 字段值集合
标志值
标志描述
NOT_NULL_FLAG
字段不能为NULL
PRI_KEY_FLAG
字段是主键的组成部分
UNIQUE_KEY_FLAG
字段是唯一键的组成部分
MULTIPLE_KEY_FLAG
字段是非唯一键的组成部分
UNSIGNED_FLAG
字段具有UNSIGNED 属性
ZEROFILL_FLAG
字段具有ZEROFILL 属性
BINARY_FLAG
字段具有BINARY 属性
AUTO_INCREMENT_FLAG
字段具有AUTO_INCREMENT 属性
ENUM_FLAG
字段是ENUM(不再重视)
SET_FLAG
字段是 SET(不再重视)
BLOB_FLAG
字段是BLOB 或TEXT(不再重视)
TIMESTAMP_FLAG
字段是TIMESTAMP(不再重视)
标志值的典型用法:
if (field->flags & NOT_NULL_FLAG)
printf("Field can't be null\n");



GBase 8a 程序员手册C API 篇
南大通用数据技术股份有限公司

- 7 -
可以使用下述方面的宏来定义标志值的布尔状态:
标志状态
描 述
IS_NOT_NULL(flags)
如果该字段定义为NOT NULL,为“真”。
IS_PRI_KEY(flags)
如果该字段是主键,为“真”。
IS_BLOB(flags)
如果该字段是BLOB 或TEXT,为“真”(不再重视,
用测试field->type 取而代之)


type 字段值集合
类型值
类型描述
GBASE_TYPE_TINY
TINYINT 字段
GBASE_TYPE_SHORT
SMALLINT 字段
GBASE_TYPE_LONG
INTEGER 字段
GBASE_TYPE_INT24
MEDIUMINT 字段
GBASE_TYPE_LONGLONG
BIGINT 字段
GBASE_TYPE_DECIMAL
DECIMAL 或NUMERIC 字段
GBASE_TYPE_NEWDECIMAL
精度数DECIMAL 或NUMERIC
GBASE_TYPE_FLOAT
FLOAT 字段
GBASE_TYPE_DOUBLE
DOUBLE 或REAL 字段
GBASE_TYPE_BIT
BIT 字段
GBASE_TYPE_TIMESTAMP
TIMESTAMP 字段
GBASE_TYPE_DATE
DATE 字段
GBASE_TYPE_TIME
TIME 字段
GBASE_TYPE_DATETIME
DATETIME 字段
GBASE_TYPE_YEAR
YEAR 字段
GBASE_TYPE_STRING
CHAR 字段
GBASE_TYPE_VAR_STRING
VARCHAR 字段
GBASE_TYPE_BLOB
BLOB 或TEXT 字段(使用max_length 来确
定最大长度)
GBASE_TYPE_SET
SET 字段

GBase 8a 程序员手册C API 篇


- 8 -

南大通用数据技术股份有限公司
类型值
类型描述
GBASE_TYPE_ENUM
ENUM 字段
GBASE_TYPE_GEOMETRY
Spatial 字段
GBASE_TYPE_NULL
NULL-type 字段
GBASE_TYPE_CHAR
不再重视,用GBASE_TYPE_TINY 取代