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语句,则隐式提供选择列表的描述作为响应。 此描述在客户端缓存,用于描述,获取和定义类型转换。 因此,最好仅在执行后描述选择列表,详细参阅《查询的描述数据获取》章节