SQLGetConnectAttr - 获取连接属性的当前设置

用途

规范: DB2 CLI 5.0 ODBC 3.0 ISO CLI

SQLGetConnectAttr() 返回连接属性的当前设置。

语法

SQLRETURN   SQLGetConnectAttr(SQLHDBC           ConnectionHandle,
                              SQLINTEGER        Attribute,
                              SQLPOINTER        ValuePtr,
                SQLINTEGER           BufferLength,
                SQLINTEGER          *StringLengthPtr);

函数自变量

表 87. SQLGetConnectAttr 自变量

数据类型 自变量 使用 描述
SQLHDBC ConnectionHandle 输入 连接句柄。
SQLINTEGER Attribute 输入 要检索的属性。
SQLPOINTER ValuePtr 输出 指向内存的指针,将在该内存中返回 Attribute 指定的属性的当前值。
SQLINTEGER BufferLength 输入
  • 如果 ValuePtr 指向字符串,则此自变量的长度应为 *ValuePtr
  • 如果 ValuePtr 是一个指针但并未指向字符串,则 BufferLength 应具有值 SQL_IS_POINTER
  • 如果 *ValuePtr 中的值为 Unicode 字符串,则 BufferLength 自变量必须为偶数。
SQLINTEGER * StringLengthPtr 输出 指向缓冲区的指针,将在该缓冲区中返回可在 *ValuePtr 中返回的总字节数(排除 null 终止符)。
  • 如果 ValuePtr 是空指针,则不返回任何长度。
  • 如果属性值是字符串且可返回的字节数大于 BufferLength 减去 null 终止字符的长度,*ValuePtr 中的数据将截断为 BufferLength 减去 null 终止字符的长度且由 DB2 CLI 以 null 结束。

用法

调用 SQLGetConnectAttr() 将在 *ValuePtr 中返回在 Attribute 中指定的连接属性的值。在 DB2 Everyplace 中, 该值是 32 位值,未使用 BufferLengthStringLengthPtr 自变量。

下列连接属性可通过 SQLGetConnectAttr() 检索。有关属性的描述,请参阅 SQLSetConnectAttr - 设置与连接有关的选项

根据属性,应用程序不必在调用 SQLGetConnectAttr() 之前建立连接。

返回码

诊断

表 88. SQLGetConnectAttr SQLSTATE

SQLSTATE 描述 解释
01000 警告。 参考消息。(函数返回 SQL_SUCCESS_WITH_INFO。)
01004 数据被截断。 *ValuePtr 中返回的数据将截断为 BufferLength 减去 null 终止字符的长度。将在 *StringLengthPtr 中返回未截断字符串值的长度。(函数返回 SQL_SUCCESS_WITH_INFO。)
08003 连接已关闭。 Attribute 值被指定为需要打开连接。
HY000 一般错误。 发生了错误,该错误没有特定 SQLSTATE。*MessageText 缓冲区中的 SQLGetDiagRec() 返回的错误消息描述该错误及其原因。
HY001 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。可能进程级别内存已被应用程序进程耗尽。查阅操作系统配置以获取有关进程级别内存限制的信息。
HY090 字符串或缓冲区长度无效。 BufferLength 自变量指定的值小于 0。
HY092 选项类型超出范围。 对自变量 Attribute 指定的值无效。
HYC00 驱动程序不起作用。 对自变量 Attribute 指定的值是对 DB2 CLI 驱动程序的版本有效的连接或语句属性,但数据源不支持它。

限制

无。

相关参考