ACIDirPathColArrayToStream()

ACIDirPathColArrayToStream()

作用:

从列数组格式转换为直接路径流格式。

语法:

sword ACIDirPathColArrayToStream ( ACIDirPathColArray     *dpca,
                                   ACIDirPathCtx  const   *dpctx,
                                   ACIDirPathStream       *dpstr,
                                   ACIError               *errhp,
                                   ub4                     rowcnt,
                                   ub4                     rowoff );

参数:

  • dpca (IN)

直接路径列数组句柄

  • dpctx (IN)

所加载对象的直接路径上下文句柄。

  • dpstr (IN/OUT)

直接路径流句柄。

  • errhp (IN/OUT)

错误句柄,该接口调用失败时,错误信息会存在该句柄上 ,调用 ACIErrorGet 获得错误信息。

  • rowcnt (IN)

列数组中的行数。

  • rowoff (IN)

列数组中的起始索引。

说明:

此接口用于将外部格式的数据的列数组表示形式转换为直接路径流格式。转换后的格式适合通过 ACIDirPathLoadStream 加载。

直接路径流格式的列数据将转换为其数据库内部表示形式。所有转换都在客户端完成;所有转换错误均与此接口的调用同步发生。有关发生错误的行和列的信息可用作列数组句柄的属性。

在线程环境中,并发 ACIDirPathColArrayToStream 操作可以引用相同的直接路径上下文句柄。但是,此接口未修改直接路径上下文句柄。

该调用的返回码为:

  • ACI_SUCCESS-列数组中的所有数据已成功转换为流格式。列数组属性ACI_ATTR_ROW_COUNT是已处理的行数。
  • ACI_ERROR-转换期间发生错误;错误句柄包含错误信息。列数组属性ACI_ATTR_ROW_COUNT是在上一次调用中成功转换的行数。属性ACI_ATTR_COL_COUNT包含导致错误的列在列数组中的列索引。在将列数组转换为流后返回ACI_ERROR时,必须始终加载流。加载之前无法将其重置或转换为。
  • ACI_CONTINUE-并非列数组中的所有数据都可以转换为流格式。流缓冲区的大小不足以容纳所有列数组数据。调用方应该加载数据,将数据保存到文件中,或者使用另一个流并再次调用 ACIDirPathColArrayToStream 来转换其余的列数组数据。列数组属性ACI_ATTR_ROW_COUNT是在上一次调用中成功转换的行数。行偏移必须为下一次转换而更新;内部状态会跟踪该列以继续进行转换。 ACI_ATTR_ROW_COUNT值必须由调用方添加到上一行偏移中。
  • ACI_NEED_DATA-列数组中的所有数据都已成功转换,但是遇到了部分列。调用方应加载结果流,并在必要时迭代提供其余行。列数组属性ACI_ATTR_ROW_COUNT是在上一次调用中成功转换的行数。属性ACI_ATTR_COL_COUNT包含到标记为“部分”的列的列数组中的列索引。