返回首页

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

更新日期:2024年09月11日

存储过程重命名
在对象资源管理器中右键单击要重命名的存储过程。
在快捷菜单上,
单击
“重命名”。如下图所示:

图 4-36
在重命名窗口中重新输入名称,点击“确定”即可。

GBase 8a 管理工具手册


- 50 -

南大通用数据技术股份有限公司

在对象资源管理器中,依次展开“服务器”、“数据库”、“表”、“触发器”,右键点击需要查看

GBase 8s 企业管理器用户手册
南大通用数据技术股份有限公司

30
属性的触发器,选择“属性”,即弹出触发器属性窗口。

数据库
在该数据库中,含有该触发程序。

名称
触发程序的名称。

事件操作
含有下述值之一:INSERT、DELETE、或UPDATE。

相关表
每个触发程序均与一个表准确相关,此表为准确相关和表。

标识代码
触发程序动作的顺序位置。

旧列标示符
含有旧的列标示符。这意味着它总含有值“OLD”。

新列标示符
含有新的列标示符。这意味着它总含有值“NEW”。

rdefmtdate() 函数使用格式化掩码来将字符串转换为内部的 DATE 格式。

语法
mint rdefmtdate(jdate, fmtstring, inbuf)
int4 *jdate;

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

char *fmtstring;
char *inbuf;
jdate
指向接收 inbuf 字符串的内部 DATE 值的 int4 整数值的指针。
fmtstring
指向包含要使用 inbuf 字符串的的格式化掩码的缓冲区的指针。
inbuf
指向包含要转换的日期字符串的缓冲区的指针。
用法
rdefmtdate() 函数的 fmtstring 参数指向日期格式化掩码,其包含描述
如何解释该日期字符串的格式。

input 字符串和 fmtstring 必须以相同的月份、日期和年份的序列顺序。然而,它们不
需要包含相同的文字,或月份、日期和年份的相同表示。

在 fmtstring 中,您可包括 weekday 格式(ww),但数据库服务器忽略该格式。inbuf
中没有与 weekday 格式对应的内容。

下列 fmtstring 与 input 的组合是有效的。
格式化掩码输入
mmddyy
Dec. 25th, 2007
mmddyyyy
Dec. 25th, 2007
mmm. dd. yyyy
dec 25 2007
mmm. dd. yyyy
DEC-25-2007
mmm. dd. yyyy
122507
mmm. dd. yyyy
12/25/07
yy/mm/dd

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

07/12/25
yy/mm/dd
2007, December 25
yy/mm/dd
In the year 2007, the month of December, it is the 25th day
dd-mm-yy
This 25th day of December 2007

如果存储在 inbuf 中的值是四位年份。则 rdefmtdate() 函数使用那个值。如果存储在
inbuf 中的值是两位年份,
则 rdefmtdate() 函数使用 DBCENTURY 环境变量的值来确定要
使用哪个世纪。如果您未设置 DBCENTURY,则 GBase 8s ESQL/C 使用 20 世纪。

返回代码
如果您使用无效的日期字符串格式,则 rdefmtdate() 返回错误代码,并将该内部的
DATE 设置为当前日期。下列为可能的返回代码。
0
操作成功。
-1204
*input 参数指定无效的年份。
-1205
*input 参数指定无效的月份。
-1206
*input 参数指定无效的日期。
-1209
由于 *input 不包含年份、月份和日期之间的定界符,则 *input 的长度必须恰好为 6
或 8 字节。
-1212
*fmtstring 未指定年份、月份和日期。

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

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


The following program accepts a date entered from the console, converts it into the internal
date format using rdefmtdate(). It checks the conversion by finding the day of the week.
*/

#include

main()
{
mint x;
char date[20];
int4 i_date;
char *day_name;

static char fmtstr[9] = "mmddyyyy";

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

printf("Enter a date as a single string, month.day.year\n");
gets(date);

printf("\nThe date string is %s.\n", date);

if (x = rdefmtdate(&i_date, fmtstr, date))
printf("Error %d on rdefmtdate conversion\n", x);
else
{
/* Figure out what day of the week i_date is */
switch (rdayofweek(i_date))
{
case 0: day_name = "Sunday";
break;
case 1: day_name = "Monday";

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

break;
case 2: day_name = "Tuesday";
break;
case 3: day_name = "Wednesday";
break;
case 4: day_name = "Thursday";
break;
case 5: day_name = "Friday";
break;
case 6: day_name = "Saturday";
break;
}
printf("\nThe day of the week is %s.\n", day_name);
}

printf("\nRDEFMTDATE Sample Program over.\n\n");
}
输出
RDEFMTDATE Sample ESQL Program running.

Enter a date as a single string, month.day.year
080894

The date string is 080894
The day of the week is Monday.
RDEFMTDATE Sample Program over.