规范: | DB2 CLI 1.1 | ODBC 1.0 | ISO CLI |
SQLExecute() 将使用 SQLPrepare() 成功准备的语句执行一次或多次。使用 SQLBindParameter() 绑定至参数标记的任何应用程序变量的当前值执行该语句。
语法
SQLRETURN SQLExecute (SQLHSTMT StatementHandle); /* hstmt */
函数自变量
数据类型 | 自变量 | 使用 | 描述 |
---|---|---|---|
SQLHSTMT | StatementHandle | 输入 | 语句句柄。 |
用法
SQL 语句字符串可以包含参数标记。参数标记由 ? 字符表示,用来指示语句中的一个位置,调用 SQLExecute() 时,将会替换应用程序在该位置中提供的值。此值可以从应用程序变量获取。SQLBindParameter() 用来将应用程序存储区与参数标记绑定。
在调用 SQLExecute() 之前,必须绑定所有参数。
在应用程序处理完 SQLExecute() 调用的结果之后,它可以再次执行该语句,并指定新的(或相同的)参数值。
不能通过调用 SQLExecute() 重新执行由 SQLExecDirect() 执行的语句;必须首先调用 SQLPrepare()。
如果生成了结果集,则 SQLFetch() 把下一行数据检索到绑定的变量中。也可以通过对任何未绑定的列调用 SQLGetData() 来检索数据。
返回码
如果 SQL 语句是“搜索型 UPDATE”或“搜索型 DELETE”,且没有任何行满足搜索条件,则返回 SQL_NO_DATA_FOUND。
诊断
SQLExecute() 的 SQLSTATE
包括 SQLExecDirect() 的所有 SQLSTATE(参阅表 45)(HY009 和 HY090 除外),
同时还包括表 47 中的 SQLSTATE。
SQLSTATE | 描述 | 解释 |
---|---|---|
HY010 | 函数顺序错误。 | 指定的 StatementHandle 未处于已准备状态。调用 SQLExecute() 之前 未首先调用 SQLPrepare()。 |
08004 | 应用程序服务器拒绝了连接。 | 用来连接至数据源的用户名或密码不正确。 |
08S01 | 通信链路故障。 | 函数尚未完成,应用程序与数据源间的通信链路就失效了。 |
39001 | 用户定义的函数返回了无效的 SQLSTATE。 | 用户定义的函数返回了无效的 SQLSTATE。 |
59101 | 未定义用户。 | 在“移动设备管理中心”控制数据库中未定义用户。 |
59102 | 密码不正确。 | 用户密码与“移动设备管理中心”中定义的密码不匹配。 |
59103 | 未定义组。 | 在“移动设备管理中心”中未定义组。 |
59104 | 未定义应用程序。 | 在“移动设备管理中心”中未定义应用程序。 |
59105 | 未定义预订。 | 在“移动设备管理中心”中未定义具有 "AgentAdapter" 的预订。 |
59106 | 预订不完整。 | 预订没有调用远程存储过程所需的所有信息。 |
59120 | XML 转换错误。 | AgentAdapter 在将用户输入数据转换为 XML 文档时失败。 |
59121 | 一般 AgentAdapter 错误。 | 一般 AgentAdapter 错误。 |
59122 | 装入库失败。 | 系统上找不到某些必需的库。 |
HY501 | 数据源名称无效。 | 指定的数据源名称无效。 |
限制
无。
相关参考