可检索关于 QBIC 目录的下列信息:
使用 QbGetCatalogInfo API 来检索用户表和列名、特性数和自动编目设置。使用 QbListFeatures API 来检索特性名。
或使用 GET QBIC CATALOG INFO 命令来检索 所有信息。
在可检索信息之前,必须打开 QBIC 目录。
使用 API:在使用 QbGetCatalogInfo API 时, 需要指定 QBIC 目录的句柄。还需要指向 Image Extender 返回的目录信息所在的结构。目录信息结构在 QBIC 的包含(首标)文件 dmbqapi.h 中定义,如下所示:
typedef struct{ char tableName[qbiMaxTableName+1] /* user table */ char columnName[qbiMaxColumnName+1] /* image column */ SQLINTEGER featureCount; /* number of features */ SQLINTEGER autoCatalog; /* auto catalog flag */ } QbCatalogInfo;
在发出 QbListFeatures API 调用时,需要分配缓冲区来存放返回的特性名。存储在缓冲区中的特性名由空白字符分隔。还需要指定目录句柄, 以及存放返回的特性名的缓冲区的大小。要估计所需的缓冲区大小, 可使用 QbGetCatalogInfo API 返回的特性计数, 并将该计数乘以最长的特性名的长度。可使用常量 qbiMaxFeatureName 作为最长特性名的大小。
下例中的 API 调用检索关于 QBIC 目录的信息。注意如何使用 QbGetCatalogInfo API 返回的特性数和 qbiMaxFeatureName 常量来计算 QbListFeatures API 的缓冲区大小:
long bufSize; long count; char *featureNames; QbCatalogHandle CatHdl; QbCatalogInfo catInfo; /* Get user table name, image column name, feature count, */ /* and auto catalog setting */ rc=QbGetCatalogInfo( CatHdl, /* catalog handle */ &catInfo); /* catalog info. structure */ /* List feature names */ bufSize=catInfo.featureCount*qbiMaxFeatureName; featureNames=malloc(bufSize); rc=QbListFeatures( CatHdl, /* catalog handle */ bufSize /* size of buffer */ count, /* feature count */ featureNames); /* buffer for feature names */
使用命令行: GET QBIC CATALOG INFO 对当前打开的目录进行操作。在下例中,使用了此命令来检索关于当前打开的 QBIC 目录的信息:
GET QBIC CATALOG INFO