返回首页

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

更新日期:2024年09月11日

incvasc() 函数将 INTERVAL 值的符合 ANSI SQL 标准的字符串转换为 interval 值。


语法
mint incvasc(inbuf, invvalue)
char *inbuf;
intrvl_t *invvalue;
inbuf
指向包含 ANSI 标准 INTERVAL 字符串的缓冲区的指针。
invvalue
指向初始化了的 interval 变量的指针。

用法

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 824 -

您必须以您想要此变量拥有的限定符来初始化 invvalue 中的 interval 变量。

inbuf 中的字符串可有开头的和结尾的空格。然而,从第一个有效数字到最后一个,
inbuf 仅可包含字符,它们是适合于 interval 变量的限定符字段的数字和定界符。

如果该字符串为空字符串,则 incvasc() 函数将 invvalue 中的值设置为空。如果该字
符串是可接受的,
则该函数设置 interval 变量中的值,
并返回零。
否则,
该函数将 interval
值中的值设置为空。

返回代码
0
转换成功。
-1260
不可能在指定的类型之间转换。
-1261
datetime 或 interval 的第一个字段中的数字太多。
-1262
datetimeinterval 中的非数值字符。
-1263
datetime 或 interval 值中的字段出界或不正确。
-1264
在 datetime 或 interval 值的末尾有额外的字符。
-1265
在 datetime 或 interval 操作上发生溢出。
-1266
datetime 或 interval 值与该操作不兼容。
-1267
datetime 计算的结果出界。
-1268
参数包含无效的 datetime 或 interval 限定符。

示例

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 825 -

demo 目录在文件 incvasc.ec 中包含此样例程序。
/*
* incvasc.ec *

The following program converts ASCII strings into interval (intvl_t) structure. It also
illustrates error conditions involving invalid qualifiers for interval values.
*/

#include

EXEC SQL include datetime;

main()
{
mint x;

EXEC SQL BEGIN DECLARE SECTION;
interval day to second in1;
EXEC SQL END DECLARE SECTION;

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

printf("Interval string #1 = 20 3:10:35\n");
if(x = incvasc("20 3:10:35", &in1))
printf("Result = failed with conversion error:%d\n",x);
else
printf("Result = successful conversion\n");

/*
* Note that the following literal string has a 26 in the hours field
*/
printf("\nInterval string #2 = 20 26:10:35\n");
if(x = incvasc("20 26:10:35", &in1))

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 826 -

printf("Result = failed with conversion error:%d\n",x);
else
printf("Result = successful conversion\n");

/*
* Try to convert using an invalid qualifier (YEAR to SECOND)
*/
printf("\nInterval string #3 = 2007-02-11 3:10:35\n");
in1.in_qual = TU_IENCODE(4, TU_YEAR, TU_SECOND);
if(x = incvasc("2007-02-11 3:10:35", &in1))
printf("Result = failed with conversion error:%d\n",x);
else
printf("Result = successful conversion\n");

printf("\nINCVASC Sample Program over.\n\n");
}
输出
INCVASC Sample ESQL Program running.
Interval string #1 = 20 3:10:35
Result = successful conversion

Interval string #2 = 20 26:10:35
Result = failed with conversion error:-1263

Interval string #3 = 2007-02-11 3:10:35
Result = failed with conversion error:-1268

生成脚本
使用“对象资源管理器”,您可以为所选的用户数据库生成“创建”和
“删除”脚本。
在“对象资源管理器”中展开“用户数据库”,右键单击要创建脚本的数
据库,指向弹出菜单中的“编写数据库脚本为”菜单项,再选择“CREATE”或
“DROP”菜单项,如下图所示:

图 7-10 生成数据库脚本

“已注册的服务器”保留已注册的服务器的名称和连接信息。可以随时从“已注册的服务器”
中删除服务器。

在“已注册的服务器”上,右击某个服务器,再单击“删除”。

在“确认删除”对话框中,单击“是”。