返回首页

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

更新日期:2024年09月11日

SQLAllocStmt 为使用 hdbc 指定的连接的语句句柄分配内存。
应用程序必须在提交 SQL 语句之前调用 SQLAllocStmt。
下表描述了 SQLAllocStmt 的 SQLSTATE 和错误值。
SQLSTATE
错误值
错误消息
01000
-11001
General warning
08003
-11017
Connection not open
S1000
-11060
General error
S1001
-11061
Memory-allocation failure
S1009
-11066
Invalid argument value
08S01
-11301
A protocol error has been detected. Current connection is
closed.

取值:[0|1]
默认值:1
说明:是否开启读优先。
修改方式:可使用set 语句修改值也可在配置文件中修改值。适用于global 范围。

dtcurrent() 函数将当前的日期和时间赋给 datetime 变量。
语法
void dtcurrent(d)
dtime_t *d;
d
指向初始化的 datetime 主变量的指针。

用法
当将变量限定符设置为零(或任何无效的限定符)时,dtcurrent() 函数以 year to
fraction(3) 限定符来初始化它。

当该变量包含有效的限定符时,dtcurrent() 函数扩展当前的日期和时间来与该限定符
保持一致。

示例调用
下列语句将主变量 timewarp 设置为当前的日期:
EXEC SQL BEGIN DECLARE SECTION;
datetime year to day timewarp;
EXEC SQL END DECLARE SECTION;
dtcurrent(&timewarp);

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

下列语句将变量 now 设置为当前的时间,最接近于毫秒:
now.dt_qual = TU_DTENCODE(TU_HOUR,TU_F3);
dtcurrent(&now);
示例

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

The following program obtains the current date from the system, converts it to ASCII and
prints it.
*/

#include

EXEC SQL include datetime;

main()
{
mint x;
char out_str[20];

EXEC SQL BEGIN DECLARE SECTION;
datetime year to hour dt1;
EXEC SQL END DECLARE SECTION;

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

/* Get today's date */
dtcurrent(&dt1);

/* Convert to ASCII for displaying */

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 675 -
dttoasc(&dt1, out_str);
printf("\tToday's datetime (year to minute) value is %s\n", out_str);

printf("\nDTCURRENT Sample Program over.\n\n");
}


输出

DTCURRENT Sample ESQL Program running.
Today's datetime (year to minute) value is 2007-09-16 14:49
DTCURRENT Sample Program over.