ACIStmtExecute()¶
-
ACIStmtExecute()¶
作用:
将语句发送到数据库端去执行,将应用程序请求与服务器关联。
语法:
sword ACIStmtExecute ( ACISvcCtx *svchp,
ACIStmt *stmtp,
ACIError *errhp,
ub4 iters,
ub4 rowoff,
const ACISnapshot *snap_in,
ACISnapshot *snap_out,
ub4 mode );
参数:
- svchp (IN/OUT)
服务上下文句柄
- stmthp (in)
指向返回的语句句柄的指针。
- errhp (IN)
指向用于诊断的错误句柄的指针。
- iters (IN)
对于非SELECT语句,代表语句执行次数,比如insert语句,iters为5,则相同的insert语句插入5条。
对于SELECT语句,如果iters非零。代表隐式fetch的数据条数,则必须为语句句柄完成定义。 执行将迭代行提取到这些预定义的缓冲区中,并根据预取行数预取更多行。
如果非SELECT语句的iters = 0,则此函数返回错误。
如果DDL语句的iters必须1,否则函数返回错误。
备注:对于数组DML操作,请将iters设置为<= 32767,以获得更好的性能。建议1000~5000之间。
- rowoff (IN)
行集偏移。对于查询语句,该参数将被忽略;对于非查询语句,该参数表明向服务器发送多行数据时从bind数组中的偏移,从0开始计算。
- snap_in (IN)
快照相关接口,神通ACI不使用此参数。
- snap_out (OUT)
快照相关接口,神通ACI不使用此参数。
- mode (IN)
这些模式是:
ACI_BATCH_ERRORS-有关此模式的信息,请参阅使用批处理错误模式。
ACI_COMMIT_ON_SUCCESS-以这种方式执行语句时,如果执行成功完成,则当前事务将在执行后提交。
ACI_DEFAULT-在此模式下调用 ACIStmtExecute 将执行该语句。它还隐式返回有关选择列表的描述信息。
ACI_DESCRIBE_ONLY-此模式适用于想要在执行前描述查询的用户。在这种模式下调用 ACIStmtExecute 不会执行该语句,但是会返回选择列表描述。为了最大程度地提高性能,建议应用程序在默认模式下执行该语句,并使用执行时附带的隐式描述。
ACI_EXACT_FETCH-当应用程序事先确切知道要提取多少行时使用。并且要求在执行调用之前完成define定义。使用此模式可在获取所需的行后取消游标,并可能导致服务器端资源使用减少。
ACI_STMT_SCROLLABLE_READONLY-对于结果集可滚动是必需的。结果集无法更新。有关此模式的更多信息,请参见关于获取结果。此模式不能与其他任何模式一起使用。
这些模式不是互斥的。您可以将它们一起使用,除了ACI_STMT_SCROLLABLE_READONLY。
说明:
此函数用于执行准备好的SQL语句。 应用程序通过执行调用将请求与服务器相关联。
如果执行了SELECT语句,则隐式提供选择列表的描述作为响应。 此描述在客户端缓存,用于描述,获取和定义类型转换。 因此,最好仅在执行后描述选择列表,详细参阅《查询的描述数据获取》章节