IBM Books

Image Extender、Audio Extender 和 Video Extender 管理和程序设计

检索关于 QBIC 目录的信息

可检索关于 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


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]