ACIStmtPrepare()¶
-
ACIStmtPrepare()¶
作用:
准备要执行的SQL或PL / SQL语句。不推荐使用此功能。使用 ACIStmtPrepare2 。
语法:
sword ACIStmtPrepare ( ACIStmt *stmtp,
ACIError *errhp,
const OraText *stmt,
ub4 stmt_len,
ub4 language,
ub4 mode );
参数:
- stmtp (IN)
与要执行的语句关联的语句句柄。 默认情况下,它在派生其的环境句柄中包含编码设置。 只能在UTF-16环境中以UTF-16编码准备语句。
- errhp (IN)
当发生错误时,可以将错误句柄传递给 ACIErrorGet 以获取诊断信息。
- stmt (IN)
要执行的SQL或PL / SQL语句。 必须是以NULL结尾的字符串。 也就是说,根据编码,结束字符为NULL字节数。 该语句必须使用先前对 ACIEnvNlsCreate 的调用的charset参数指定的编码。
始终将参数强制转换为(text * )。 在UTF-16中准备好语句后,绑定和定义缓冲区的字符集默认为UTF-16。
- stmt_len (IN)
语句的长度(以字符或字节数为单位),取决于编码。 不能为零。
- language (IN)
【目前不使用】
- mode (IN)
只能输入ACI_DEFAULT
说明:
ACI应用程序使用此调用来准备要执行的SQL或PL / SQL语句。 ACIStmtPrepare 调用定义了一个应用程序请求。
模式参数确定语句内容是否编码为UTF-16。语句长度以代码点数或字节数为单位,具体取决于编码。
尽管语句句柄从父环境句柄继承了编码设置,但是此调用的模式也可以更改语句句柄本身的编码设置。
在后续绑定调用中初始化的此语句的数据值存储在绑定句柄中,该句柄使用此语句句柄中的设置作为默认值。
该调用不会在此语句句柄与任何特定服务器之间创建关联。
在重新执行DDL语句之前,请再次调用此函数。
此调用不支持应用程序连续性,如果使用此调用,则返回以下错误:错误-ORA-25412:调用 ACIStmtPrepare 禁用了事务重播。使用 ACIStmtPrepare2 调用可支持在HA基础架构中使用应用程序连续性。