手册简介
GBase 8a 程序员手册从程序员进行数据库开发的角度对
GBase 8a 进行详细
介绍。
本手册介绍供客户端连接 GBase 8a 服务器用的 GBase 8a C API 接口驱动
程序。本部分内容通过大量示例为用户演示如何使用 GBase 8a C API 函数及使
用 GBase C API 进行编程的示例。
公约
下面的文本约定用于本文档:
约
定 说 明 加粗字体 表示文档标题 大写英文(SELECT) 表示 GBase 8a 关键字 等宽字体 表示代码示例 … 表示被省略的内容。
1 GBase C API 版本
GBase C API 版本 说 明
8.3.81.53 增加集群 IP 路由,负载均衡功能
8.3.81.51 稳定版
2 安装文件
我们提供的 C API 接口的 bin 文件格式如下:
GBaseCAPI-
例如:GBaseCAPI-8.3.81.53-build53.8-redhat6-x86_64.bin。
3 GBase C API
3.1数据类型
3.1.1GBASE
u 结构说明
该结构代表与数据库连接的句柄。不建议对 GBase 结构进行拷贝,不保证
这样的拷贝会有用。
3.1.2GBASE_RES
u 结构说明
该结构用来保存 SELECT、SHOW、DESCRIBE、EXPLAIN 查询返回的结果集。
3.1.3GBASE_ROW
u 结构说明
该结构用来保存 1 行数据。它是按照计数字节字符串的数组实施的。(如果
字段值可能包含二进制数据,不能将其当作由 NULL 终结的字符串对待,这是因
为这类值可能会包含 NULL 字节)。它是通过 gbase_fetch_row()获取的。
3.1.4GBASE_FIELD
u 结构说明
该结构用来保存字段的信息(字段名、类型、大小)。通过重复调用
gbase_fetch_field()可以为每个字段获取
GBASE_FIELD 结构。
u 结构成员
名 称 类 型 描 述 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 名称的长度。
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_符号之一:




