ACIStmtFetch2()

ACIStmtFetch2()

作用:

从(可滚动)结果集中获取一行。 鼓励您使用此访存调用而不是不建议使用的调用 ACIStmtFetch

语法:

sword ACIStmtFetch2 ( ACIStmt     *stmthp,
                      ACIError    *errhp,
                      ub4          nrows,
                      ub2          orientation,
                      sb4          fetchOffset,
                      ub4          mode );

参数:

  • stmthp (in)

指向返回的语句句柄的指针。

  • errhp (IN)

指向用于诊断的错误句柄的指针。

  • nrows (IN)

从当前位置获取的行数

  • orientation (IN)

可接受的值为:

  • ACI_DEFAULT-具有与ACI_FETCH_NEXT相同的效果
  • ACI_FETCH_CURRENT-获取当前行。
  • ACI_FETCH_NEXT-从当前位置获取下一行。 它是默认值(与ACI_DEFAULT具有相同的效果)。 用于不可滚动的语句句柄。
  • ACI_FETCH_FIRST-获取结果集中的第一行。
  • ACI_FETCH_LAST-获取结果集中的最后一行。
  • ACI_FETCH_PRIOR-将结果集放在结果集中当前行的上一行。 您也可以使用此模式从“上一行”中获取多行。
  • ACI_FETCH_ABSOLUTE-使用绝对定位获取结果集中的行号(由fetchOffset参数指定)。
  • ACI_FETCH_RELATIVE-使用相对定位获取结果集中的行号(由fetchOffset参数指定)。
  • fetchOffset (IN)

与方向参数一起使用的偏移量,用于更改当前行位置。

  • mode (IN)

只支持ACI_DEFAULT.

说明:

fetch调用的工作方式与 ACIStmtFetch 调用类似,但是增加了fetchOffset参数。它可以在任何语句句柄上使用,无论它是否可滚动。对于不可滚动的语句句柄,唯一可接受的方向值为ACI_FETCH_NEXT,而fetchOffset参数将被忽略。

对于新应用程序,建议您使用此调用 ACIStmtFetch2

方向设置为ACI_FETCH_RELATIVE的fetchOffset等效于所有以下各项:

ACI_FETCH_CURRENT的fetchOffset值等于0

ACI_FETCH_NEXT的值fetchOffset等于1

ACI_FETCH_PRIOR的值fetchOffset等于-1

除ACI_FETCH_ABSOLUTE和ACI_FETCH_RELATIVE外,所有其他定向模式都将忽略fetchOffset值。

通过使用ACI_FETCH_LAST,然后在ACI_ATTR_CURRENT_POSITION上调用 ACIAttrGet ,此调用还可用于确定结果集中的行数。但是此调用的响应时间可能会很高。如果在ACI_FETCH_LAST方向上将nrows设置为大于1,则将nrows视为1。

返回代码与 ACIStmtFetch 相同,不同之处在于,每次在可滚动语句句柄(或执行)上执行抓取操作时,都会返回带有返回代码ACI_NO_DATA的OER(1403),并且并非应用程序请求的所有行都拿来。

如果在nrows参数设置为0的情况下调用 ACIStmtFetch2 ,则将关闭游标。

必须显式取消可滚动语句句柄(即,获取0行)或释放可滚动语句句柄,以释放可滚动游标的服务器端资源。收到OER(1403)时,将隐式取消不可滚动的语句句柄。

使用ACI_ATTR_ROWS_FETCHED查找在上一次调用中已成功访存到用户缓冲区中的行数。