返回首页

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

更新日期:2024年09月11日

详解
如SQL 执行计划概述节中所说,EXPLAIN 会显示执行计划,但并不会实际执行SQL
语句。EXPLAIN ANALYZE 和EXPLAIN PERFORMANCE 两者都会实际执行SQL 语句并
返回执行信息。在这一节将详细解释执行计划及执行信息。

sqldone() 函数确定数据库服务器当前是否正在处理 SQL 请求。

语法
mint sqldone();

用法

请在下列情况下使用 sqldone() 来检测数据库服务器的状态:
在调用 sqlbreak() 函数来确定数据库服务器是否正在处理 SQL 请求之前。
在信号句柄函数中,在调用 longjmp() 系统函数之前。如果 sqldone() 返回零(数据
库服务器空闲),则仅使用信号句柄函数中的 longjmp()。

当 sqldone() 函数确定当前数据库服务器未正在处理 SQL 请求时,您可假定数据库
服务器未开启任何其他处理,直到您的应用程序发出它的下一请求为止。

您可能想要为 -439 值创建定义的常量,来使得您的代码更加可读。例如,下列代码
片段创建 SERVER_BUSY 常量,然后使用它来检测 sqldone() 返回状态:
#define SERVER_BUSY -439
.
.
.
if (sqldone() == SERVER_BUSY)

返回代码
0
数据库服务器当前没有正在处理 SQL 请求:它是空闲的。

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 947 -
-439
数据库服务器当前正在处理 SQL 请求。

GBASE_ROW
 结构说明
该结构用来保存1 行数据。它是按照计数字节字符串的数组实施的。
(如果
字段值可能包含二进制数据,不能将其当作由NULL 终结的字符串对待,这是因
为这类值可能会包含NULL 字节)
。它是通过gbase_fetch_row()获取的。