更新日期:2024年09月11日
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 取代