返回首页

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

更新日期:2024年09月11日

SQLFetch 访存结果集的一行数据。
驱动程序返回使用 SQLBindCol 绑定到存储位置的所有列的数据。
下表描述了 SQLFetch 的 SQLSTATE 和错误值。
SQLSTATE
错误值
错误消息
01000
-11001
General warning
01004
-11003
Data truncated
07006
-11013
Restricted data-type attribute violation
08S01
-11020
Communication-link failure
22002
-11024
Indicator value required but not supplied
22003
-11025
Numeric value out of range

GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 225 -

SQLSTATE
错误值
错误消息
22005
-11026
Error in assignment
22008
-11027
Datetime field overflow
22012
-11028
Division by zero
24000
-11031
Invalid cursor state
40001
-11037
Serialization failure
S1000
-11060
General error
S1001
-11061
Memory-allocation failure
S1002
-11062
Invalid column number
S1008
-11065
Operation canceled
S1010
-11067
Function-sequence error
S1C00
-11092
Driver not capable
S1T00
-11094
Time-out expired

ifx_int8add() 函数将两个 int8 类型值相加。
语法
mint ifx_int8add(n1, n2, sum)
ifx_int8_t *n1;
ifx_int8_t *n2;
ifx_int8_t *sum;
n1
指向包含第一个操作对象的 int8 结构的指针。
n2
指向包含第二个操作对象的 int8 结构的指针。
sum
指向包含 n1 + n2 的和的 int8 结构的指针。

用法
sum 可与 n1 或 n2 相同。


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 714 -
返回代码
0
运算成功。
-1284
运算导致溢出或下溢。

示例
demo 目录中的文件 int8add.ec 包含下列示例程序。
*int8add.ec *

The following program obtains the sum of two INT8 type values.
*/

#include

EXEC SQL include "int8.h";

char string1[] = "6";
char string2[] = "9,223,372,036,854,775";
char string3[] = "999,999,999,999,999,9995";
char result[41];

main()
{
mint x;
ifx_int8_t num1, num2, num3, sum;

printf("INT8 Sample ESQL Program running.\n\n");

if (x = ifx_int8cvasc(string1, strlen(string1), &num1))
{
printf("Error %d in converting string1 to INT8\n", x);

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 715 -
exit(1);
}
if (x = ifx_int8cvasc(string2, strlen(string2), &num2))
{
printf("Error %d in converting string2 to INT8\n", x);
exit(1);
}
if (x = ifx_int8add(&num1, &num2, ∑)) /* adding the first two INT8s */
{
printf("Error %d in adding INT8s\n", x);
exit(1);
}
if (x = ifx_int8soasc(∑, result, sizeof(result)))
{
printf("Error %d in converting INT8 result to string\n", x);
exit(1);
}
result[40] = '\0';
printf("\t%s + %s = %s\n", string1, string2, result); /* display result */

/* attempt to convert to INT8 value that is too large*/

if (x = ifx_int8cvasc(string3, strlen(string3), &num3))
{
printf("Error %d in converting string3 to INT8\n", x);
exit(1);
}
if (x = ifx_int8add(&num2, &num3, ∑))
{
printf("Error %d in adding INT8s\n", x);
exit (1);
}
if (x = ifx_int8soasc(∑, result, sizeof(result)))

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 716 -
{
printf("Error %d in converting INT8 result to string\n", x);
exit(1);
}
result[40] = '\0';
printf("\t%s + %s = %s\n", string2, string3, result); /* display result */

printf("\nINT8 Sample Program over.\n\n");
exit(0);
}
输出
INT8 Sample ESQL Program running.

6 + 9,223,372,036,854,775 = 9223372036854781
Error -1284 in converting string3 to INT8
INT8 Sample Program over.

syssynonyms 系统目录表未在使用。 syssyntable 表描述同义词。syssynonyms 系
统目录表具有以下列。
表 31. SYSSYNONYMS 表列描述

类型
解释
owner
VARCHAR(32)
同义词所有者的名称
synname
VARCHAR(128)
同义词的名称
created
DATE
创建同义词时的日期
tabid
INTEGER
标识表、序列或视图的代


owner 和 synonym 列的组合索引只允许唯一值。建立了 tabid 列的索引并且此索引
允许重复值。