SQLGetInfo - 获取概要信息

用途

规范: DB2 CLI 1.1 ODBC 1.0 ISO CLI

SQLGetInfo() 返回关于应用程序连接至的 DBMS 的概要信息(包括受支持的数据转换)。

语法

SQLRETURN   SQLGetInfo       (
                SQLHDBC           ConnectionHandle,  /* hdbc */
                SQLUSMALLINT          InfoType,           /* fInfoType */
                SQLPOINTER        InfoValuePtr,    /* rgbInfoValue */
                SQLSMALLINT       BufferLength,        /* cbInfoValueMax */                
                SQLSMALLINT     *FAR StringLengthPtr,        /* pcbInfoValue */ 
                

函数自变量

表 69. SQLGetInfo 自变量

数据类型 自变量 用法 描述
SQLHDBC ConnectionHandle 输入 数据库连接句柄
SQLUSMALLINT InfoType 输出 期望的信息的类型。自变量必须是“数据类型”和“数据转换”中的表的第一列中的其中一个值。
SQLPOINTER InfoValuePtr 输出(也是输入) 指向此函数存储必要信息的缓冲区的指针。根据所检索的信息类型的不同,可以返回 5 种类型的信息:

16 位整数值

32 位整数值

32 位二进制值

32 位掩码

以 null 结束的字符串

SQLSMALLINT BufferLength 输入 InfoValuePtr 指向的缓冲区的最大大小。
SQLSMALLINT * StrLen_or_IndPtr 输出 指向一个位置的指针,此函数在该位置中返回足够返回期望信息的总字节数。在字符串输出的情况下,此大小并不包括 null 终止符。

如果 StringLengthPtr 所指向的位置中的值大于 BufferLength 中指定的 InfoValuePtr 缓冲区大小,则字符串输出信息将被截断为 BufferLength - 1 个字节,且该函数将返回 SQL_SUCCESS_WITH_INFO。

用法

参阅 SQLGetInfo 返回的信息以获取 InfoType 的可能值的列表和 SQLGetInfo() 将对该值返回的信息的描述。

DB2 CLI 对此表中的每个 InfoType 返回一个值。如果 InfoType 不适用或不受支持,结果将取决于返回类型:

SQLGetInfo 返回的信息

SQL_DBMS_NAME (string)
正在访问的 DBMS 产品的名称。例如:“DB2 Everyplace”。

SQL_DBMS_VER (string)
DB2 Everyplace DBMS 产品的版本。返回的信息是具有以下格式的字符串:DB2 Everyplace Vm.v.r Build yyyy-mm-dd, 其中 m 是主版本,v 是次版本,r 是发行版,而 yyyy-mm-dd 是 ISO 格式的构建日期。

例如:

'DB2 Everyplace V8.1.2 Build 2003-04-01'
是 DB2 Everyplace V8.1.2,构建于 2003 年 4 月 1 日
注意:
应用程序需要至少可以包含 39 个字符(BUFSIZE)的缓冲区。例如:
rc = SQLGetInfo(hdbc, SQL_DBMS_VER, buf, BUFSIZE, &len); 

SQL_IDENTIFIER_QUOTE_CHAR (string)
指示该字符用于将定界标识括起来。

SQL_MAX_BINARY_LITERAL_LEN (32-bit unsigned integer)
32 位的不带符号的整数值,用于指定 SQL 语句中的十六进制文字的最大长度。

SQL_MAX_CHAR_LITERAL_LEN (32-bit unsigned integer)
SQL 语句中的字符文字的最大长度(以字节计)。

SQL_MAX_COLUMN_NAME_LEN (16-bit integer)
列名的最大长度(以字节计)。

SQL_MAX_COLUMNS_IN_GROUP_BY (16-bit integer)
指示 GROUP BY 子句中服务器支持的最大列数。如果没有限制,则为零。

SQL_MAX_COLUMNS_IN_INDEX (16-bit integer)
指示索引中服务器支持的最大列数。如果没有限制,则为零。

SQL_MAX_COLUMNS_IN_ORDER_BY (16-bit integer)
指示 ORDER BY 子句中服务器支持的最大列数。如果没有限制,则为零。

SQL_MAX_COLUMNS_IN_SELECT (16-bit integer)
指示选择列表中服务器支持的最大列数。如果没有限制,则为零。

SQL_MAX_CONCURRENT_ACTIVITIES (16-bit integer)
DB2 Everyplace CLI 驱动程序可支持的最大活动环境数。如果没有指定限制或限制是未知的,则该值将设置为零。

SQL_MAX_DRIVER_CONNECTIONS (16-bit integer)
每个应用程序支持的最大活动连接数。

SQL_MAX_INDEX_SIZE (32-bit unsigned integer)
指示对于索引中的组合列,服务器支持的最大大小(以字节计)。如果没有限制,则为零。

SQL_MAX_ROW_SIZE (32-bit unsigned integer)
指定基本表的单行中服务器支持的最大长度(以字节计)。如果没有限制,则为零。

SQL_MAX_STATEMENT_LEN (32-bit unsigned integer)
指示 SQL 语句字符串的最大长度(以字节计),包括语句中的空格数。

SQL_MAX_TABLE_NAME_LEN (16-bit integer)
表名的最大长度(以字节计)。

SQL_MAX_TABLES_IN_SELECT (16-bit integer)
指示查询规范中的 FROM 子句中允许的最大表名数。

SQL_MAX_USER_NAME_LEN (16-bit integer)
指示用户标识允许的最大大小(以字节计)。

SQL_SEARCH_PATTERN_ESCAPE (string)
用来指定驱动程序支持作为目录函数(例如,SQLTables() 和 SQLColumns())的转义字符的字符。

SQL_TXN_CAPABLE (16-bit integer)
指示事务是否可包含 DDL 和/或 DML。

SQL_USER_NAME (string)
在特定数据库中使用的用户名。这是在 SQLConnect() 调用上指定的标识。

返回码

限制

无。

相关参考