用途
规范:
| 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
不适用或不受支持,结果将取决于返回类型:
- 如果返回类型为包含“Y”或“N”的字符串,则将返回“N”。
- 如果返回类型为包含仅“Y”或“N”以外的值的字符串,则将返回空字符串。
- 如果返回类型为 16 位整数,则返回 0(零)。
- 如果返回类型为 32 位整数,则返回 0(零)。
- 如果返回类型为 32 位掩码,则返回 0(零)。
- 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_TC_NONE = 不支持事务。
- SQL_TC_DML = 事务只能包含 DML 语句(SELECT、INSERT、UPDATE 和 DELETE 等等)。在事务中遇到的
DDL 语句(CREATE TABLE 和 DROP INDEX 等等)将导致错误。
- SQL_TC_DDL_COMMIT = 事务只能包含 DML 语句。在事务中遇到的 DDL
语句将导致落实该事务。
- SQL_TC_DDL_IGNORE = 事务只能包含 DML 语句。在事务中遇到的 DDL
语句将被忽略。
- SQL_TC_ALL = 事务可以以任何顺序包含 DDL 和 DML 语句。
- SQL_USER_NAME (string)
- 在特定数据库中使用的用户名。这是在 SQLConnect()
调用上指定的标识。
返回码
- SQL_SUCCESS
- SQL_SUCCESS_WITH_INFO
- SQL_ERROR
- SQL_INVALID_HANDLE
限制
无。
相关参考