ACILobFlushBuffer()¶
-
ACILobFlushBuffer()¶
作用:
将所有缓冲区内容回刷到数据库服务器的LOB中
语法:
sword ACILobFlushBuffer ( ACISvcCtx *svchp,
ACIError *errhp,
ACILobLocator *locp
ub4 flag );
参数:
- svchp (IN)
服务上下文句柄
- errhp (IN/OUT)
错误句柄,该接口调用失败时,错误信息会存在该句柄上 ,调用 ACIErrorGet 获得错误信息。
- locp (IN/OUT)
一个内部定位器,唯一引用LOB。
- flag (IN)
当此标志设置为ACI_LOB_BUFFER_FREE时,刷新后将释放LOB的缓冲区资源
说明:
将与输入定位器引用的LOB关联的对缓冲子系统所做的更改刷新到服务器。该例程实际上将缓冲区中的数据写入数据库中的LOB。必须为输入LOB定位器启用了LOB缓冲。
当将远程定位器传递给 ACILobFlushBuffer 时,将引发错误。
默认情况下,刷新操作不会释放缓冲区资源以重新分配给另一个缓冲的LOB操作。要显式释放缓冲区,可以将标志参数设置为ACI_LOB_BUFFER_FREE; 当flag设置为ACI_LOB_BUFFER_NOFREE时,回刷后buffer不释放。
如果客户端应用程序打算在刷新后读取缓冲区值,并且事先知道缓冲区中的当前值是所需值,则无需从服务器重新读取数据
释放缓冲区的效果对用户几乎是透明的,除了对LOB中相同范围的下一次访问涉及到服务器的往返行程外,获取缓冲区资源和使用缓冲区初始化缓冲区会增加成本。从LOB读取的数据。