返回首页

gbase数据、南大通用产品文档:GBase8agbase_real_connect

更新日期:2024年09月11日

 摘要:
gbase_real_connect()尝试与运行在主机上的GBase 数据库引擎建立连接。
在你能够执行需要有效GBase 连接句柄结构的任何其他API 函数之前,
gbase_real_connect()必须成功完成。
 语法:
GBASE * gbase_real_connect(GBASE *gbase,
const char *host,





const char *user,





const char *passwd,





const char *db,





unsigned int port,





const char *unix_socket,





unsigned long clientflag);
 参数:





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

- 35 -

gbase

调用gbase_real_connect()之前,
必须调用gbase_init()来



初始化GBASE 结构。
host

必须是主机名或IP 地址。如果“host”是NULL 或字符串



"localhost",连接将被视为与本地主机的连接。如果操作系



统支持套接字(Unix)或命名管道(Windows)
,将使用它们



而不是TCP/IP 连接到服务器。如果使用支持集群IP 路由的



GBase C API 连接GBase 8a 数据库集群时,host 可以是包含



几个集群节点IP 的字符串,IP 之间以“;”进行分割。这样



可以使用GBase C API 的集群IP 路由功能。
user

用户的GBase 登录ID。如果“user”是NULL 或空字符串"",




用户将被视为当前用户。
passwd
用户的密码
db

数据库名称。
如果db 为NULL,
连接会将默认的数据库设为该



值。
port

如果“port”不是0,其值将用作TCP/IP 连接的端口号。注



意,
“host”参数决定了连接的类型。
unix_socket 如果unix_socket 不是NULL,该字符串描述了应使用的套接



字或命名管道。注意,
“host”参数决定了连接的类型。
clientflag 其值通常为0,
但是,
也能将其设置为下述标志的组合,
以允



许特定功能:
标志名称
标志描述
CLIENT_COMPRESS
使用压缩协议。

GBase 8a 程序员手册C API 篇


- 36 -

南大通用数据技术股份有限公司
标志名称
标志描述
CLIENT_FOUND_RO
WS
返回发现的行数(匹配的)
,而不是受影响的行数。

CLIENT_IGNORE_S
PACE
允许在函数名后使用空格。使所有的函数名成为保
留字。
CLIENT_INTERACT
IVE
关闭连接之前,允许interactive_timeout(取代
了wait_timeout)秒的不活动时间。客户端的会话
wait_timeout 变量被设为会话
interactive_timeout 变量的值。
CLIENT_LOCAL_FI
LES
允许LOAD DATA LOCAL 处理功能。
CLIENT_MULTI_ST
ATEMENTS
通知服务器,客户端可能在单个字符串内发送多条
语句(由‘;’隔开)
。如果未设置该标志,将禁止多语
句执行。
CLIENT_MULTI_RE
SULTS
通知服务器,客户端能够处理来自多语句执行或存
储程序的多个结果集。如果设置了
CLIENT_MULTI_STATEMENTS,将自动设置它。
CLIENT_NO_SCHEM
A
禁止db_name.tbl_name.col_name 语法。它用于
ODBC。如果使用了该语法,它会使分析程序生成错
误,在捕获某些ODBC 程序中的缺陷时,它很有用。

CLIENT_ODBC
客户端是ODBC 客户端。它将gbased 变得更为ODBC
友好。
CLIENT_SSL
使用SSL
(加密协议)

该选项不应由应用程序设置,
它是在客户端库内部设置的。

 返回值:
如果连接成功,返回GBASE*连接句柄。如果连接失败,返回NULL。对于成
功的连接,返回值与第1 个参数的值相同。
 错误



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

- 37 -
CR_CONN_HOST_ERROR

无法连接到GBase 服务器。
CR_CONNECTION_ERROR

无法连接到本地GBase 服务器。
CR_IPSOCK_ERROR


无法创建IP 套接字。
CR_OUT_OF_MEMORY


内存溢出。
CR_SOCKET_CREATE_ERROR
无法创建Unix 套接字。
CR_UNKNOWN_HOST


无法找到主机名的IP 地址。
CR_VERSION_ERROR


协议不匹配
CR_NAMEDPIPEOPEN_ERROR
无法在Windows 平台下创建命名管道。
CR_NAMEDPIPEWAIT_ERROR
在Windows 平台下等待命名管道失败。
CR_NAMEDPIPESETSTATE_ERROR 在Windows 平台下获取管道处理程序失败。

CR_SERVER_LOST


如果connect_timeout > 0,而且在连接








服务器时所用时间长于connect_timeout







秒,
或在执行init-command时服务器消失。

要从两个或多个表中选择数据,在 FROM 子句中指定表名。添加 WHERE 子句一章每个
表中的至少一个相关列间创建连接条件。WHERE 子句创建临时组合表。在其中,满足连
接添加的每一对行都被链接以组成单个行。
简单连接根据每个表中某列的关系组合来自两个或多个表的信息。组合连接根据每个表中
两个或多个列之间的关系连接两个或多个表。
要创建连接,必须在每个表中至少一列之间指定称为连接条件的关系。因为要对列进行比
较,所以它们必须具有兼容的数据类型。当连接大型表时,对连接条件中的列进行索引会
提高性能。
数据类型在 GBase 8s SQL 参考指南和 GBase 8s 数据库设计和实现指南中描述。索引
在 GBase 8s 管理员指南中详细所讨论。

GS_SESSION_TIME 视图用于统计会话线程的运行时间信息,
及各执行阶段所消耗时间。
名称
类型
描述
sessid
text
线程标识+线程启动时间。
stat_id
integer
统计编号。
stat_name
text
会话类型名称。
value
bigint
会话值。