返回首页

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

更新日期:2024年09月11日

提供了关于各字符集的对照信息。
表 5-18 具体信息如下:
COLLATION_NAME
校对集的名称
CHARACTER_SET_NAME
与校对集相关的字符集
ID
校对集id
IS_DEFAULT
校对集是否是字符集的默认校对集
IS_COMPILED
字符集是否编译进服务器
SORTLEN
与用字符集表示的字符串需求的内存大小相关

功能说明
优先级状态显示(与cgroup、优先级队列有关)。
表结构说明
表5- 250 表结构信息说明:




NODE_NAME
节点名称
GROUP
资源组编号
PRIORITY
优先级编号
PRIORITY_WEIGHT
优先级配重
STATUS
控制组状态
DESCRIPTION
控制组参数描述

demo1.ec 程序演示了本节呈现的大多数概念,例如:include 文件、标识符、主机变量以
及嵌入式 SQL 语句。
它演示如何使用头文件、
声明以及使用主机变量和嵌入式 SQL 语句。

重要: 如果使用 UNIX™,可以在 $GBASEDBTDIR/demo/esqlc 目录下找到本版的联机
以及其它演示程序。如果使用 Windows™,可以在 %GBASEDBTDIR%\demo\esqldemo 目
录下找到此程序。
编译 demo1 程序
使用下列命令编译 demo1 程序:esql demo1.ec
在 UNIX™ 中,可执行程序的名称缺省为 a.out。
在 Windows™ 环境中,可执行程序的名称缺省为 demo.exe。
可以使用 -o 选项对可执行程序指定不同的名称。
demo1.ec 文件指南
GBase 8s ESQL/C 程序样本 demo1.ec 使用静态 SELECT 语句。
这意味着在编译时程序可
以获得它需要运行 SELECT 语句的所有信息。
1. #include
2. EXEC SQL define FNAME_LEN 15;
3. EXEC SQL define LNAME_LEN 15;
4. main()

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 40 -
5. {
6. EXEC SQL BEGIN DECLARE SECTION;
7. char fname[ FNAME_LEN + 1 ];
8. char lname[ LNAME_LEN + 1 ];
9. EXEC SQL END DECLARE SECTION;
第 1 行
#include 语句告诉 C 预处理程序包含来自 /usr/include 目录下的 stdio.h 系统头文。
stdio.h 文件使 demo1 使用标准 C 语言 I/O 库。
第 2 - 3 行
GBase 8s ESQL/C 处理预处理阶段 1 中的 define 指令。该指令定义定义 FNAME_LEN
和 LNAME_LEN 常量,程序在主机变量的声明中使用它们。
第 4 - 9 行
第 4 行开始 main() 函数,该程序的入口点。EXEC SQL 块声明 main() 函数本地的主机
变量,它从 customer 表的 fname 和 lname 列接收数据。每个数组的长度大于其接收
数据的字符列的长度的 1 个字符。额外的字节存储空终止符。
10. printf( "DEMO1 Sample ESQL Program running.\n\n");
11. EXEC SQL WHENEVER ERROR STOP;
12. EXEC SQL connect to 'stores7';
13. EXEC SQL DECLARE democursor cursor for
14. select fname, lname
15. into :fname, :lname
16. from customer
17. where lname < 'C';
18. EXEC SQL open democursor;
第 10 - 12 行
printf() 函数显示用于标识的文本,并在程序开始执行时通知用户。WHENEVER 语句实现
最少的错误处理,导致程序显示错误编号,并在数据库服务器处理 SQL 语句后返回错误
时终止。CONNECT 语句发起与缺省数据库服务器的连接,并打开 stores7 演示数据库。
您可以在 GBASEDBTSERVER 环境变量中指定缺省数据库服务器,必须在应用程序连接
任何数据库服务器之前设置。
第 13 - 17 行
DECLARE 语句创建名为 democursor 的游标,
来管理数据库服务器从 customer 表读
取的行。DECLARE 语句中的 SELECT 语句确定数据库服务器从该表读取的数据的类型。
此 SELECT 语句读取姓氏(lname)以小于 'C' 的字母开头的那些客户的第一个和家族
姓名。
第 18 行
OPEN 语句打开 democursor 游标并开始执行 SELECT 语句。
19. for (;;)

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 41 -
20. {
21. EXEC SQL fetch democursor;
22. if (strncmp(SQLSTATE, "00", 2) != 0)
23. break;
24. printf("%s %s\n",fname, lname);
25. }
26. if (strncmp(SQLSTATE, "02", 2) != 0)
27. printf("SQLSTATE after fetch is %s\n", SQLSTATE);
28. EXEC SQL close democursor;
29. EXEC SQL free democursor;
第 19 - 25 行
本节代码在循环中执行 FETCH 语句并重复,
直到 SQLSTATE 不等于 "00"。
该条件表示
数据结束条件或发生运行错误。在此循环中每个迭代中, FETCH 语句使用游标
democursor 检索 SELECT 语句返回的下一行并将选择的行放到主机变量 fname 和
lname中。数据库服务器每次成功获取行后都将 SQLSTATE 的状态变量设置为 "00" 。
如果数据结束的条件发生,则数据库服务器将 SQLSTATE 设置为 "02";如果发生错误,
则将 SQLSTATE 设置为比 "02" 大的值。
第 26 - 27 行
如果 SQLSTATE 中的类代码是除了 "02" 的任何值,则此用户的 SQLSTATE 值通过
printf() 显示。该输出在运行错误的事件中很有用。
第 28 - 29 行
CLOSE 和 FREE 语句释放为数据库服务器此游标分配的资源。该游标将不再使用。
30. EXEC SQL disconnect current;
31. printf("\nDEMO1 Sample Program over.\n\n");
32. }
第 30 - 32 行
DISCONNECT CURRENT 语句关闭数据库并终止当前对数据库服务器的连接。最后的
printf() 告诉用户程序结束。32 行的右括号(})标识程序 main() 函数的结束。
OPEN 语句打开 democursor 游标并开始执行 SELECT 语句。
19. for (;;)
20. {
21. EXEC SQL fetch democursor;
22. if (strncmp(SQLSTATE, "00", 2) != 0)
23. break;
24. printf("%s %s\n",fname, lname);
25. }
26. if (strncmp(SQLSTATE, "02", 2) != 0)
27. printf("SQLSTATE after fetch is %s\n", SQLSTATE);
28. EXEC SQL close democursor;
29. EXEC SQL free democursor;

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 42 -
第 19 - 25 行
本节代码在循环中执行 FETCH 语句并重复,
直到 SQLSTATE 不等于 "00"。
该条件表示
数据结束条件或发生运行错误。在此循环中每个迭代中, FETCH 语句使用游标
democursor 检索 SELECT 语句返回的下一行并将选择的行放到主机变量 fname 和
lname中。数据库服务器每次成功获取行后都将 SQLSTATE 的状态变量设置为 "00" 。
如果数据结束的条件发生,则数据库服务器将 SQLSTATE 设置为 "02";如果发生错误,
则将 SQLSTATE 设置为比 "02" 大的值。
第 26 - 27 行
如果 SQLSTATE 中的类代码是除了 "02" 的任何值,则此用户的 SQLSTATE 值通过
printf() 显示。该输出在运行错误的事件中很有用。
第 28 - 29 行
CLOSE 和 FREE 语句释放为数据库服务器此游标分配的资源。该游标将不再使用。
30. EXEC SQL disconnect current;
31. printf("\nDEMO1 Sample Program over.\n\n");
32. }
第 30 - 32 行
DISCONNECT CURRENT 语句关闭数据库并终止当前对数据库服务器的连接。最后的
printf() 告诉用户程序结束。32 行的右括号(})标识程序 main() 函数的结束。