返回首页

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

更新日期:2024年09月11日

功能描述
设置相关语句的属性。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
269
原型
SQLRETURN SQLSetStmtAttr(SQLHSTMT
StatementHandle,
SQLINTEGER Attribute,
SQLPOINTER ValuePtr, SQLINTEGER StringLength);
参数
表8-32 SQLSetStmtAttr 参数
关键字
参数说明
StatementHandle
语句句柄。
Attribute
需设置的属性。
ValuePtr
指向对应Attribute 的值。依赖于Attribute 的值,ValuePtr 可能

32 位无符号整型值,或指向以空结束的字符串,二进制缓冲
区,或者驱动定义值。注意,如果ValuePtr 参数是驱动程序指
定值。ValuePtr 可能是有符号的整数。
StringLength
如果ValuePtr 指向字符串或二进制缓冲区,这个参数是
*ValuePtr 长度,如果ValuePtr 指向整型,忽略StringLength。
返回值

SQL_SUCCESS:表示调用正确。

SQL_SUCCESS_WITH_INFO:表示会有一些警告信息。

SQL_ERROR:表示比较严重的错误,如:内存分配失败、建立连接失败等。

SQL_INVALID_HANDLE:表示调用无效句柄。其他API 的返回值同理。
注意事项
当SQLSetStmtAttr 的返回值为SQL_ERROR 或SQL_SUCCESS_WITH_INFO 时,通过
借助SQL_HANDLE_STMT 的HandleType 和StatementHandle 的Handle ,调用
SQLGetDiagRec 可得到相关的SQLSTATE 值,通过SQLSTATE 值可以查出调用此函数的具
体信息。
示例
参见8.2.23 示例。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
270

SQLSetStmtOption 设置与 hstmt 相关的选项。
要为所有与特定 hdbc 关联的语句设置选项,应用程序可以调用 SQLSetConnectOption。
下表描述了 SQLSetStmtOption 的 SQLSTATE 和错误值。
SQLSTATE
错误值
错误消息
01000
-11001
General warning
01S02
-11007
Option value changed
08S01
-11020
Communication-link failure
24000
-11031
Invalid cursor state
S1000
-11060
General error
S1001
-11061
Memory-allocation failure
S1009
-11066
Invalid argument value
S1010
-11067
Function-sequence error
S1011
-11068
Operation invalid at this time
S1092
-11073
Option type out of range
S1C00
-11092
Driver not capable


缩容VC 内data 节点:

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
266
1.
重分布数据,转移要删除的数据节点上的数据到其他节点上,清空要删除的数
据节点上数据。
包括步骤:
创建新的distribution
(排除了将要删除的节点)
根
据新的distribution 创建新nodedatamap
(initnodedatamap)
重分布数据到新的
nodedatamap 上删除旧的nodedatamap 和distribution。
2.
从集群中移除该节点。
包括步骤:
从VC 中移除该节点成为集群的freenode从
集群中彻底删除该节点。
3.
卸载该节点上的集群软件。步骤包括:停止被删除节点上的gnode 服务修改
demo.options 使用uninstall 脚本卸载软件。
注:
gnode 节点服务包含有gbase 服务和syncserver 服务,
如果该gnode 节点服
务器上还有gcluster 节点存在,
且需要保留该gcluster 节点,
停止服务不需直接
使用gcluster_services all stop 停止所有服务,
只需使用如下命令单独停止gnode
各项服务:
gcmonit.sh stop
gcluster_services gbase_ip stop 如:gcluster_services gbase_192.168.146.40 stop
gcluster_services syncserver_ip stop 如:gcluster_services
syncserver_192.168.146.40 stop

缩容集群的gcluster 节点:
停止整个集群所有节点的服务修改demo.options 使用uninstall 脚本卸载该节点上
集群软件。

缩容复合节点(gcluster 和gnode 同在一个服务器上):
1.
重分布数据,转移要删除的数据节点上的数据到其他节点上,清空要删除的数
据节点上数据。
2.
从集群中移除该节点。
包括步骤:
从VC 中移除该节点成为集群的freenode从
集群中彻底删除该节点
3.
停止整个集群所有节点的服务
4.
修改demo.options 使用uninstall 脚本卸载该服务器上集群软件(包括gcluster
节点和gnode 节点)

缩容整个VC 步骤:
将需要缩容的VC 中所有库表都删除删除该VC
可参考4.3.1.3.2 删除虚拟集群

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
267
注意

V9.5.3 不支持gcware 节点缩容;

缩容操作必须在已有Coordinator 节点上使用DBA 用户(gbase)执行;

卸载data 节点只需在被卸载节点执行停止集群节点服务的操作;

缩容集群可以卸载掉节点,
也可不必须卸载节点,
而是保留节点在freenode
状态,可转到其它VC 使用

使用卸载命令移除节点时不要使用force 参数,
以免卸载时不检查要卸载的
节点是否正在被集群使用,导致数据损坏。