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读取的数据。