返回首页

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

更新日期:2024年09月11日

GBA-02IS-0005
错误码
错误标识
错误信息
GBA-02IS-0005

Query is stopped by user
错误出现原因
Ctrl + C 或网络中断导致此次操作被终止。
分析与建议
用户终止了此次操作,或者由于网络中断导致此次操作被终止。

GBase UP 以
“YYYY-MM-DD HH:MI:SS.ffffff”
格式显示DATETIME 值。
其中ffffff
表示微秒格式。
日期和时间的组合类型。
支持的范围是
“0001-01-01 00:00:00.000000”

“9999-12-31
23:59:59.999999”。

示例1:插入一个合法的DATETIME 值。
gbase> CREATE TABLE products (productDate DATETIME);
Query OK, 0 rows affected

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 353

gbase> INSERT INTO products(productDate) VALUES('2010-09-01 12:09:44');
Query OK, 1 row affected

gbase> SELECT productDate FROM products;
+---------------------+
| productDate |
+---------------------+
| 2010-09-01 12:09:44 |
+---------------------+
1 row in set

示例2:插入系统当前的DATATIME 值。
gbase> INSERT INTO products(productDate) VALUES(NOW());
Query OK, 1 row affected

gbase> SELECT productDate FROM products;
+---------------------+
| productDate |
+---------------------+
| 2013-10-16 17:51:38 |
+---------------------+
1 row in set

示例3:插入一个NULL 值。
gbase> INSERT INTO products(productDate) VALUES(NULL);
Query OK, 1 row affected

gbase> SELECT productDate FROM products;
+-------------+
| productDate |
+-------------+
| NULL |
+-------------+
1 row in set

示例4:插入一个带有微秒的DATETIME 数值。
gbase> INSERT INTO products(productDate) VALUES('2013-09-15 12:09:44.123456');
Query OK, 1 row affected

gbase> SELECT productDate FROM products;
+----------------------------+
| productDate |
+----------------------------+
| 2013-09-15 12:09:44.123456 |
+----------------------------+
1 row in set

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 354

示例5:插入一个非法的DATETIME 值,系统将报告错误信息。
gbase> INSERT INTO products(productDate) VALUES('2010-09-31 12:09:44');
ERROR 1292 (22007): Incorrect datetime value: '2010-09-31 12:09:44' for column
'productDate' at row 1

应用程序在输入缓冲区中将数据传给驱动程序。驱动程序在输出缓冲区中将数据返回给应
用程序。
应用程序必须同时为输入和输出缓冲区分配内存。如果应用程序使用缓冲区来检索字符串
数据,则该缓冲区必须包含空终止字节的空间。
有些函数接受指向缓冲区的指针,稍后由其他函数来使用。应用程序必须确保这些指针保
持有效,直到所有适用的函数都已使用了它们。例如,SQLBindCol中的参数 rgbValue 指
向 SQLFetch 返回列的数据的输出缓冲区。
输入缓冲区
应用程序将输入缓冲区的地址和长度传给驱动程序。
缓冲区的长度必须为下列值之一:

大于或等于零的长度
此值为输入缓冲区中数据的实际长度。对于字符数据,长度零指示该数据为空字符串
(零长度)。零长度不同于空指针。如果应用程序指定字符数据的长度,则字符数据
不需要以空字符结尾。

SQL_NTS
此值指定字符串数据值为空终止的。

SQL_NULL_DATA
此值告诉驱动程序忽略输入缓冲区中的值,
并替代使用 NULL 数据值。
仅当输入缓冲
区提供 SQL 语句中参数的值时,它才是有效的。
对于包含嵌入的空字符的字符数据,
GBase 8s ODBC Driver函数的操作是未定义的;
出于最
大可操作性的考虑,最好不要使用它们。GBase 8s 数据库服务器将空字符处理为字符串结
束标志,或作为不再存在数据的指示符。
除非在函数描述中禁止它,否则,输入缓冲区的地址可为空指针。在此情况下,对应的缓
冲区长度参数的值将被忽略。

输出缓冲区
应用程序将参数传给驱动程序,以便于驱动程序可在输出缓冲区中返回数据。
这些参数为:

输出缓冲区的地址,驱动程序将数据返回这里
除非在函数描述中禁止它,否则,输出缓冲区的地址可为空指针。在此情况下,驱动
程序不在缓冲区中返回任何内容,在没有错误时,返回 SQL_SUCCESS。

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

如有必要,在返回它之前,驱动程序转换数据。在返回它之前,驱动程序始终空终止
字符数据。

缓冲区的长度
如果返回的数据有固定的 C 长度,
比如整数、
实数或日期结构,
则驱动程序忽略此值。

驱动程序返回数据长度的变量地址(长度缓冲区)
如果在结果集中数据为空值,则返回的数据长度为 SQL_NULL_DATA。否则,返回的数
据长度为可用于返回的数据的字节数。如果驱动程序转换该数据,则返回的数据长度
为转换之后保留的字节数;对于字符数据,它不包括驱动程序添加的空终止字节。
如果输出缓冲区太小,则驱动程序尝试截断数据。如果截断未导致有效数据的丢失,则驱
动程序在输出缓冲区中返回截断的数据,在长度缓冲区中返回可用数据的长度(与截断的
数据的长度相反)

并返回 SQL_SUCCESS_WITH_INFO。
如果截断导致有效数据的丢失,
则驱动程序保持输出和长度缓冲区不变,并返回 SQL_ERROR。应用程序调用
SQLGetDiagRec 来检索关于截断或错误的信息。