IBM Books

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

查询图象

Image Extender 提供了三个 API 来查询表列中的已编目图象。这些 API 的区别仅在于:是要求将查询字符串作为输入,还是要求将查询对象作为输入:


API 输入
QbQueryStringSearch 查询字符串
QbQuerySearch 查询对象句柄
QbQueryNameSearch 查询对象名

在所有这三个 API 中,还:

还要指向要包含搜索结果的输出结构的数组。作为响应,Image Extender 在这些结构中返回其特性值最类似于查询特性值的目标图象的句柄。它还返回每一图象的得分,该得分指示图象的特性值与查询有多类似。该结构是在 QBIC 的包含(首标)文件 dmbqbapi.h 中定义的,如下所示:

typedef struct{
          char       imageHandle[MMDB_BASE_HANDLE_LEN+1];
          SQLDOUBLE  SCORE
} QbResult;

必须分配大小足以存放指定的最大结果数的数组,并在 API 中指向该数组。还必须指向计数器;Image Extender 将该计数器的值设置为它返回的结果数。

在下例中,使用 QbQueryStringSearch API, 以便按内容查询表列中已编目的图象。注意指向查询作用域的指针被设置为零值。

QbResult       returns[MaxQueryReturns];
SQLINTEGER     maxResults=qbiMaxQueryReturns;
SQLINTEGER     count;
QbQueryHandle  qHandle;
QbResult       results[qbiMaxQueryReturns];
 
rc=QbQueryStringSearch(
          "QbColorFeatureClass color=<255, 0, 0>" /*query string */
                "employee",                     /* user table */
                "picture",                      /* image column */
                maxResults,                     /* maximum number of results */
                0,                              /* query scope pointer * /
                qbiArray,                       /* store results in an array */
                &count,                         /* count of returned images */
                results);                       /* array of returned results */

下面是使用 QbQuerySearch API 的请求。注意查询对象句柄被指定为输入。

QbResult       returns[MaxQueryReturns];
SQLINTEGER     maxResults=qbiMaxQueryReturns;
SQLINTEGER     count;
QbQueryHandle  qHandle;
QbResult       results[qbiMaxQueryReturns];
 
rc=QbQuerySearch(
                 qHandle,                       / query object handle */
                "employee",                     /* user table */
                "picture",                      /* image column */
                maxResults,                     /* maximum number of results */
                0,                              /* query scope pointer * /
                qbiArray,                       /* store results in an array */
                &count,                         /* count of returned images */
                results);                       /* array of returned results */


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