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查找在上一次调用中已成功访存到用户缓冲区中的行数。