SQLExecDirect - 直接执行语句

用途

规范: DB2 CLI 1.1 ODBC 1.0 ISO CLI

SQLExecDirect() 直接执行指定的 SQL 语句。该语句只能执行一次。

语法

SQLRETURN   SQLExecDirect    (SQLHSTMT          StatementHandle,   /* hstmt */
                              SQLCHAR      *FAR StatementText,    /* szSqlStr */
                              SQLINTEGER        TextLength);       /* cbSqlStr */

函数自变量

表 44. SQLExecDirect 自变量

数据类型 自变量 使用 描述
SQLHSTMT StatementHandle 输入 语句句柄。
SQLCHAR * StatementText 输入 SQL 语句字符串。
SQLINTEGER TextLength 输入 StatementText 自变量的内容的长度。此长度必须设置为语句的精确长度,或者,如果语句以 null 结束,则设置为 SQL_NTS。

用法

SQL 语句字符串不能包含参数标记。

返回码

如果 SQL 语句是“搜索型 UPDATE”或“搜索型 DELETE”,且没有任何行满足搜索条件,则返回 SQL_NO_DATA_FOUND。

诊断

表 45. SQLExecDirect SQLSTATE

SQLSTATE 描述 解释
22003 数值超出范围。 对数字类型列指定的数值导致在赋值期间或计算中间结果期间截断该数字的整个部分。
42xxx 语法错误或访问规则违例。 42xxx SQLSTATE 指示与语句相关的各种语法或访问问题。xxx 指的是任何具有该类代码的 SQLSTATE。示例:42xxx 指的是 42 类中的任何 SQLSTATE。
58004 意外系统故障。 不可恢复的系统错误。
HY001 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。
HY009 自变量值无效。 StatementText 是空指针。
HY013 发生意外的内存处理错误。 DB2 CLI 无法访问支持函数的执行或完成所需的内存。
HY014 不再有句柄。 因为内部资源问题,DB2 CLI 无法分配句柄。
HY090 字符串或缓冲区长度无效。 TextLength 自变量小于 1 但不等于 SQL_NTS。

限制

无。

相关参考