カタログを変更したりするアクションを行うには、まず QBIC カタログをオープンする必要があります。 たとえば、フィーチャーをカタログに追加する前には、まず QBIC カタログをオープンしなければなりません。
QBIC カタログをオープンするには、QbOpenCatalog API 呼び出しか OPEN QBIC CATALOG コマンドを使用します。
QBIC カタログをオープンする際には、次の指定が必要です。
カタログがすでにオープンされている場合: 別のセッションでカタログがすでに更新用にオープンされている場合には、そのカタログを更新操作用にオープンすることはできません。 QBIC カタログをオープンすると、イメージ・エクステンダーが現行セッションでオープンされている QBIC カタログをすべてクローズします。
API の使用: QbOpenCatalog API を使用する際には、カタログをオープンするモードを明示的に指定します。 その場合、次のように指定します。
QbiRead と QbiUpdate は、QBIC ファイルの組み込み (ヘッダー) ファイルである dmbqbapi.h に定義されている定数です。
さらに、カタログ・ハンドルをポイント指定する必要があります。 カタログ・ハンドルは、QBIC 固有のデータ・タイプである QbCatalogHandle をもちます。 このデータ・タイプも dmbqbapi.h で定義します。 カタログ・ハンドルの値は、API からの出力としてイメージ・エクステンダーによって戻されます。
たとえば、次の API 呼び出しでは、QBIC カタログを読み取り操作用にオープンします。
SQLINTEGER mode; QbCatalogHandle *CatHdl; mode=qbiRead; /* open catalog for */ /* read operations */ rc=QbOpenCatalog( "employee", /* user table */ "picture", /* image column */ mode, /* open catalog mode */ &CatHdl); /* catalog handle */
コマンド行の使用: OPEN QBIC CATALOG コマンドを出すと、イメージ・エクステンダーは、カタログを更新操作用にオープンしようとします。 カタログがすでに別のセッションで更新用にオープンされていると、イメージ・エクステンダーはカタログを読み取り操作用にオープンします。
たとえば、次のコマンドを出せば、QBIC カタログがオープンされます。 イメージ・エクステンダーは、カタログを更新操作用にオープンしようとします。
OPEN QBIC CATALOG employee picture
QBIC 関連の作業が終わったらカタログをクローズします: QBIC カタログをオープンすると、イメージ・エクステンダーは、メモリーなどの資源をそのカタログに割り当てます。 QBIC 関連の作業が終わったらカタログをクローズしてください。 それによって、割り当てられた資源が解放されます。