返回首页

gbase数据、南大通用产品文档:GBase8s缓冲区

更新日期:2024年09月11日

应用程序在输入缓冲区中将数据传给驱动程序。驱动程序在输出缓冲区中将数据返回给应
用程序。
应用程序必须同时为输入和输出缓冲区分配内存。如果应用程序使用缓冲区来检索字符串
数据,则该缓冲区必须包含空终止字节的空间。
有些函数接受指向缓冲区的指针,稍后由其他函数来使用。应用程序必须确保这些指针保
持有效,直到所有适用的函数都已使用了它们。例如,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 来检索关于截断或错误的信息。

函数说明
返回P1 和P2 之间的月份数。
P1 和P2 的格式以YYMM 或YYYYMM 指定。
注意
参数P1 和P2 不是日期值。
示例
示例1:返回“2002”和“201903”之间相隔的月份数。
gbase> SELECT PERIOD_DIFF(2002,201903) FROM dual;
+--------------------------+
| PERIOD_DIFF(2002,201903) |
+--------------------------+
|
11 |

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
810
+--------------------------+
1 row in set

用户可以通过SQLDriverConnect 使用连接字符串连接GBase 服务器。
GBase
8a ODBC 8.3 的连接字符串格式如下:
ConnectionString = "DRIVER={GBase 8a ODBC 8.3 Driver}; \
SERVER={ 192.168.111.96}; \
DATABASE=gbase; \
UID=gbase; \
PWD=111111;
如果用户的编程语言将空白后的反斜杠转换成空格,更好的方法是指明连
接字符串为一个单一的长字符串,或者使用多个字符串的连接,那样不会在其
中增加空格。例如:
ConnectionString = "DRIVER={GBase 8a ODBC 8.3 Driver};"
"SERVER={ 192.168.111.96};"

GBase 8a 程序员手册ODBC 篇


- 24 -

南大通用数据技术股份有限公司
"DATABASE=gbase;"
"UID= gbase;"
"PWD=111111;"

GBase 8a 程序员手册ODBC 篇
南大通用数据技术股份有限公司

- 25 -
4 GBase 8a ODBC 高可用功能