ACIDescribeAny()¶
-
ACIDescribeAny()¶
作用:
获取数据库对象的描述信息。
语法:
sword ACIDescribeAny ( ACISvcCtx *svchp,
ACIError *errhp,
void *objptr,
ub4 objptr_len,
ub1 objptr_typ,
ub1 info_level,
ub1 objtyp,
ACIDescribe *dschp );
参数:
- svchp (IN)
服务上下文句柄
- errhp (IN/OUT)
错误句柄,该接口调用失败时,错误信息会存在该句柄上 ,调用 ACIErrorGet 获得错误信息。
- objptr (IN)
要被描述的对像指针,目前只支持字符串类型指针。字符串字符集需要与 ACIEnvNlsCreate 中指定的charset 一致。objptr_typ参数不能为NULL。支持神通数据库的dblink,格式为:"hr.employees.employee_id@mydb"
- objnm_len (IN)
objptr 字符串的字节长度。
- objptr_typ (IN)
仅支持:ACI_OTYPE_NAME
- info_level (IN)
保留参数,传入:ACI_DEFAULT.
- objtyp (IN)
被描述的模式对象的类型,支持以下几种:
- ACI_PTYPE_TABLE, for tables
- ACI_PTYPE_VIEW, for views
- ACI_PTYPE_PKG, for packages
不支持的类型,返回值为ACI_INVALID_HANDLE。
- dschp (IN/OUT)
一个描述符句柄,该句柄可以通过使用ACI_HTYPE_DESCRIBE作为参数调用 ACIHandleAlloc 分配得到,不能为NULL。
说明:
describe句柄上的 ACIParamGet 返回指定位置的参数描述符。参数位置以1开头。在参数描述符上调用 ACIAttrGet 返回存储过程或函数参数或表列描述符的特定属性。这些后续调用不需要到服务器的额外往返行程,因为整个架构对象描述由 ACIDescribeAny 缓存在客户端。在describe句柄上调用 ACIAttrGet 也会返回职位总数。
默认情况下,显式describe( ACIDescribeAny )不会列出不可见的列。若要获取用户定义的不可见列的元数据,必须在调用 ACIDescribeAny 之前设置描述句柄属性ACI_ATTR_SHOW_INVISIBLE_COLUMNS。要了解列是否为不可见类型,可以使用 ACIAttrGet 获得列属性ACI_ATTR_INVISIBLE_COL。