SQLFreeStmt - 释放(或复位)语句句柄

用途

规范: DB2 CLI 1.1 ODBC 1.0 ISO CLI

SQLFreeStmt() 结束对语句句柄引用的语句的处理。使用此函数来:

在执行 SQL 语句和处理结果之后,调用 SQLFreeStmt()

语法

SQLRETURN   SQLFreeStmt      (SQLHSTMT          StatementHandle,   /* hstmt */
                              SQLUSMALLINT      Option);           /* fOption */

函数自变量

表 62. SQLFreeStmt 自变量

数据类型 自变量 使用 描述
SQLHSTMT StatementHandle 输入 语句句柄。
SQLUSMALLINT Option 输入 指定释放语句句柄的方式的选项。此选项可以具有下列其中一个值: SQL_DROP 或 SQL_RESET_PARAMS。

用法

调用 SQLFreeStmt() 时,可以指定下列选项:

SQL_DROP
释放与输入语句句柄相关联的 DB2 CLI 资源,使该句柄无效。废弃所有暂挂结果。

此选项已被替换为 SQLFreeHandle() 调用(HandleType 设置为 SQL_HANDLE_STMT)。

建议:虽然此版本的 DB2 CLI 继续支持此选项,但请在 DB2 CLI 程序中使用 SQLFreeHandle,以便符合最新标准。

SQL_RESET_PARAMS
释放 SQLBindParameter()StatementHandle 设置的所有参数缓冲区。

另外,可以删除语句句柄并分配新句柄。

返回码

如果 Option 设置为 SQL_DROP,则不返回 SQL_SUCCESS_WITH_INFO,这是因为调用 SQLError() 时,将没有任何语句句柄可用。

诊断

表 63. SQLFreeStmt SQLSTATE

SQLSTATE 描述 解释
40003 08S01 通信链路故障。 函数尚未完成,应用程序与数据源间的通信链路就失效了。
58004 意外系统故障。 不可恢复的系统错误。
HY001 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。
HY092 选项类型超出范围。 Option 自变量指定的值不是 SQL_DROP 或 SQL_RESET_PARAMS。

限制

无。

相关参考