ACIArrayDescriptorAlloc()

ACIArrayDescriptorAlloc()

作用:

分配一个大字段、时间日期或时间间隔描述符数组。在通过调用 ACIDefineByPos 函数绑定到此描述符以后,就可以通过该句柄进行读或写操作。

语法:

sword ACIArrayDescriptorAlloc ( const void    *parenth,
                                void         **descpp,
                                const ub4      type,
                                ub4            array_size,
                                const size_t   xtramem_sz,
                                void         **usrmempp);

参数:

  • parenth (IN)

环境句柄。

  • descpp (OUT)

返回一个描述符或者一个loblocator句柄数组

  • type (IN)

指定需要释放的句柄类型,描述符类型请参与《句柄管理》章节。

  • array_size (IN)

指定数组大小。

  • xtramem_sz (IN)

ACI未使用。

  • usrmempp (OUT)

ACI未使用。

说明:

如果成功,则此调用返回ACI_SUCCESS;如果发生内存不足的情况,则返回适当的错误。

示例:

如果用普通方式分配一个数组描述符,需要做一个循环:

ACIDateTime *descpp1[100];
for (i = 0; i!=100; i++){
     /* 分配描述符 */
ACIDescriptorAlloc((void  *)envhp,(void  **)&descpp1[i], ACI_DTYPE_TIMESTAMP_TZ,0,(void  **)0);
}

通过数组接口分配,一句话就可以了:

ACIDateTime *descpp1[100];
ACIArrayDescriptorAlloc((void *)envhp,(void **)&descpp1,
                        ACI_DTYPE_TIMESTAMP_TZ, 100, 0, (void **)0);
//释放
ACIArrayDescriptorFree((dvoid **) descpp1, ACI_DTYPE_TIMESTAMP);