返回首页

gbase数据、南大通用产品文档:GBase8srgetlmsg() 函数

更新日期:2024年09月11日

对于特定于 GBase 8s 的给定错误编号,rgetlmsg() 函数检索相应的错误消息。
rgetlmsg() 函数允许在 long 整数范围内的错误编号。

语法
mint rgetlmsg(msgnum, msgstr, lenmsgstr, msglen)
int4 msgnum;
char *msgstr;
mint lenmsgstr;
mint *msglen;

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 879 -
msgnum
错误编号。该四字节参数提供特定于 GBase 8s 的错误编号的完整范围。
msgstr
指向接收消息字符串的缓冲区(输出缓冲区)的指针。
lenmsgstr
msgstr 输出缓冲区的大小。使得此值为您期望检索的最大消息的大小。
msglen
指向包含 rgetlmsg() 返回的消息的实际大小的 mint 的指针。

用法
msgnum 错误编号通常是 SQLCODE
(或 sqlca.sqlcode)
的值。
您还可检索 ISAM 错
误的消息文本
(在 sqlca.sqlerrd[1] 中)

对于错误消息文本,
rgetlmsg() 函数使用 GBase
8s 错误消息文件(在 $GBASEDBTDIR/msg 目录中)。

rgetlmsg() 函数在第四个参数 msglen 中返回您请求的消息的实际大小。您可使用此
值来调整消息区域的大小,如果它太小的话。如果返回的消息比您提供的缓冲区还长,则
该函数截断该消息。
您还可使用 msglen 值来仅显示包含错误文本的 msgstr 消息缓冲区的
一部分。

返回代码
0
转换成功。
-1227
未找到消息文件。
-1228
在消息文件中未找到消息编号。
-1231
在消息文件中不可搜寻。
-1232
消息缓冲区太小。

示例

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 880 -
此样例程序在 demo 目录中的 rgetlmsg.ec 文件中。
/*
* rgetlmsg.ec *
*
* The following program demonstrates the usage of rgetlmsg() function.
* It displays an error message after trying to create a table that already exists.
*/
EXEC SQL include sqlca; /* this include is optional */

main()
{
mint msg_len;
char errmsg[400];

printf("\nRGETLMSG Sample ESQL Program running.\n");
EXEC SQL connect to 'stores7';

EXEC SQL create table customer (name char(20));

if(SQLCODE != 0)
{
rgetlmsg(SQLCODE, errmsg, sizeof(errmsg), &msg_len);
printf("\nError %d: ", SQLCODE);
printf(errmsg, sqlca.sqlerrm);
}
printf("\nRGETLMSG Sample Program over.\n\n");
}

此示例使用 sqlca.sqlerrm 中的错误消息参数来显示表的名称。sqlca.sqlerrm 的此种
用法是有效的,因为该错误消息包含 printf() 认识的格式参数。如果错误消息不包含该格
式参数,则不会导致错误。

输出

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 881 -
RGETLMSG Sample ESQL Program running.
Error -310: Table (gbasedbt.customer) already exists in database.
RGETLMSG Sample Program over.

您可以监视存储空间状态,并配置当存储空间变满时如何给予通知。
当存储空间或分区变满时,会通过联机消息日志文件显示消息。
您可以通过 STORAGE_FULL_ALARM 配置参数配置当存储空间变满时要触发的警报。
您可以指定发送警报的频率和要发送警报的最低严重性级别。 缺省情况下,警报时间间
隔是 600 秒,警报严重性级别为 3。有关 STORAGE_FULL_ALARM 配置参数和事件警
报的更多信息,请参阅《GBase 8s 管理员参考》。
如果高可用性集群中的主服务器遇到了空间不足的情况,并且启用了
STORAGE_FULL_ALARM 配置参数,那么将触发事件警报,并在主服务器上返回错误状
态,但是不会在任何辅助服务器上返回错误状态。这是预期的行为,因为主服务器遇到空
间不足情况时,不会再将日志记录从主服务器发送到辅助服务器。在这种情况下,辅助服
务器永远不会超过其存储限制,因此不会触发事件警报或返回错误状态。
您可以使用 GBase 8s 调度程序设置自动监视存储空间状态这一任务。 任务的属性定义
调度程序收集的信息,并指定任务运行的频率。例如,可以将任务定义为一周五天、每隔
一小时监视存储空间。有关更多信息,请参阅调度程序和创建任务。

PG_DEFAULT_ACL 系统表存储为新建对象设置的初始权限。
名称
类型
描述
oid
oid
行标识符(隐含属性,必须明确选择)。
defaclrole
oid
与此权限相关的角色ID。
defaclnamespace
oid
与此权限相关的名称空间,如果没有,则为0。
defaclobjtype
“char”
此权限的对象类型。
r 表示表或视图。
S 表示序列。
f 表示函数。
T 表示类型。
K 表示客户端主密钥。
k 表示列加密密钥。
defaclacl
aclitem[]
创建该类型时所拥有的访问权限。

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