QBIC カタログに関し、次の情報を取り出すことができます。
ユーザー表と列名、フィーチャーの数、および自動カタログ設定を取り出すには、QbGetCatalogInfo API を使用します。
フィーチャー名を取り出すには、QbListFeatures API を使用します。
また、すべての情報を取り出すには、GET QBIC CATALOG INFO コマンドを使用します。
情報を取り出すには、あらかじめ、その QBIC カタログが更新用にオープンされていなければなりません。
API の使用: QbGetCatalogInfo API を使用するときは、QBIC カタログのハンドルを指定する必要があります。 さらに、イメージ・エクステンダーがカタログ情報を戻す構造体をポイントする必要があります。 カタログ情報の構造体は、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 カタログに関する情報が取り出されます。 QbListFeatures API のバッファー・サイズを計算するのに、QbGetCatalogInfo API によって戻されるフィーチャー数と qbiMaxFeatureName 定数がどのように使用されているかに注目してください。
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