返回首页

gbase数据、南大通用产品文档:GBase8sSQLNumResultCols(仅限核心级别)

更新日期:2024年09月11日

SQLNumResultCols 返回结果集中的列数。
下表描述了 SQLNumResultCols 的 SQLSTATE 和错误值。
SQLSTATE
错误值
错误消息
01000
-11001
General warning
S1000
-11060
General error
S1001
-11061
Memory-allocation failure
S1008
-11065
Operation canceled
S1010
-11067
Function-sequence error
S1T00
-11094
Time-out expired
SQLNumResultCols 可以返回在 SQLPrepare 之后,SQLExecute 之前调用
SQLNumResultCols 时,SQLPrepare 或 SQLExecute 返回的任何 SQLSTATE ,这取决于
数据源何时评估与 hstmt 关联的 SQL 语句。

功能描述

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
299
创建一个数据结构,其中包含取消通过特定数据库连接发出的命令所需的信息。
原型
PGcancel *PQgetCancel(PGconn *conn);
参数
表8-59 PQgetCancel 参数-
关键字
参数说明
conn
指向包含链接信息的对象指针。
返回值
PGcancel:指向包含cancel 信息对象的指针。
注意事项
PQgetCancel创建一个给定PGconn连接对象的PGcancel对象。
如果给定的conn是NULL
或无效连接,它将返回NULL。PGcancel 对象是一个不透明的结构,应用程序不能直接访问
它;它只能传递给PQcancel 或PQfreeCancel。
示例
参见6.4.3 示例。

复杂数据类型可以存储一个或多个其他内置或扩展数据类型的值。
图 1 显示了 GBase 8s 支持的复杂数据类型。
图: GBase 8s 的复杂数据类型


下表总结了复杂数据类型的结构。
表 1. 集合类型是由元素组成的复杂数据类型,每个元素都具有相同的数据类型。
集合类型
描述
LIST
一组有序元素,每个元素在组中不必是唯一的。
MULTISET
一组元素,每个元素不必是唯一的。忽略元素的顺序。
SET
一组元素,每个元素都是唯一的。忽略元素的顺序。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 128 -
表 2. ROW 类型是由字段组成的复杂数据类型。




以嵌套复杂数据类型。例如,可以构造其字段包括一个或多个 set、multiset、ROW
类型和列表的 ROW 类型。同样,集合类型也可以具有数据类型为 ROW 类型或集合类
型的元素。
包括不透明类型的复杂类型继承以下支持函数。

input

output

send

recv

import

export

import_binary

export_binary

assign

destroy

LO_handles

hash

lessthan

equal

lessthan(仅适用于 ROW 类型)
ROW 类型
描述
命名 ROW 类型
用其名称标识的行类型。
未命名 ROW 类型
用其结构标识的行类型。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 129 -
接下来的各个主题对复杂数据类型进行了概述。有关更多信息,请参阅《GBase 8s
数据库设计和实现指南》。
集合数据类型
集合数据类型是由一个或多个元素(所有元素都具有相同的数据类型)组成的复杂类
型。集合元素可以为除 BYTE、TEXT、SERIAL、SERIAL8 或 BIGSERIAL 之外的任何
数据类型(包括其他复杂类型)。
要点: 元素不能具有 NULL 值。必须对集合元素指定 NOT NULL 约束。没有其他约
束对于集合有效。
GBase 8s 支持三种类型的内置集合类型:LIST、SET 和 MULTISET。用来声明这些
集合的关键字是类型构造函数的名称或只是构造函数。有关集合类型的语法,请参阅
GBase 8s SQL 指南:语法。可以将相同表的不超过 97 列声明为集合数据类型。
当为集合指定元素值时,将元素值列示在构造函数后面并用花括号( { } ) 括起来。
例如,假设您具有含以下 MULTISET 数据类型的集合列:
CREATE TABLE table1
(
mset_col MULTISET(INTEGER NOT NULL)
)
下一个 INSERT 语句向此列添加一组元素值。(这两个示例中的单词 MULTISET 是
MULTISET 构造函数。)
INSERT INTO table1 VALUES (MULTISET{5, 9, 7, 5})
可使花括号保留为空来指示空集:
INSERT INTO table1 VALUE (MULTISET{})
空集合不等同于列的 NULL 值。
访问集合数据
要存取集合列的元素,必须将集合访存到集合变量中并修改集合变量的内容。集合变
量可以具有任何下列类型:

SPL 例程中的变量
有关更多信息,请参阅 GBase 8s SQL 指南:教程。

GBase 8s ESQL/C 程序中的主变量
有关更多信息,请参阅 GBase 8s ESQL/C 程序员手册。
还可以使用嵌套点表示法来存取集合数据。有关访问集合元素的更多信息,请参阅
GBase 8s SQL 指南:教程。
重要: 集合数据类型作为用于函数索引的函数的自变量无效。
ROW 数据类型

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 130 -
ROW 数据类型是一个或多个元素(称为字段)的有序集合。每个字段都具有名称和数据类型。行的
字段与表列差不多,但有一些重要的差别:

字段没有缺省子句。

不能对字段定义约束。

只能将字段与行类型一起使用,而不能将其与表一起使用。
存在两种类型的 ROW 数据类型:
 命名 ROW 数据类型是用其名称标识的。
 未命名 ROW 数据类型是用其结构标识的。
未命名 ROW 数据类型的结构是其字段的数目(和数据类型的顺序)。
可以将同一个表的不超过 195 列声明为 ROW 数据类型。有关 ROW 数据类型的更多信息,请参
阅 ROW 数据类型,已命名和 ROW 数据类型,未命名。
您可以在命名与未命名 ROW 数据类型之间进行强制转型;《GBase 8s 数据库设计和实现指南》中
对此进行了描述。