File Link連携機能に関する操作を実行する場合に使用するメソッドと,そのメソッドの発行順序について説明します。ここでは,次の操作について説明します。なお,操作を実行する前に,まず,文書空間と接続してトランザクションを開始してください。
これらの操作は,CdbrDocumentクラスまたはCdbrVersionableDocumentクラスのメソッドを使用して実行します。これ以外の操作については,File Link連携機能を使用しないバージョンなし文書およびバージョン付き文書と同じように操作できます。詳細は,「3.2.3 文書の操作」および「3.3.3 バージョン管理機能の操作」を参照してください。また,それぞれの操作に使用するメソッドの詳細については,マニュアル「DocumentBroker Version 3 クラスライブラリ C++ リファレンス 基本機能編」を参照してください。
File Link文書を作成してデータベースおよびファイルサーバに格納する場合に使用するメソッドと,その発行順序について説明します。なお,File Link文書を登録する時,登録するコンテントから全文検索インデクスは作成できません。全文検索インデクスを作成する場合は,CdbrDocument::CreateIndexメソッドまたはCdbrVersionableDocument::CreateIndexメソッドを実行して作成してください。
File Link文書を作成するコールシーケンスの例を次に示します。
//あらかじめ登録する構造体DMAClassListとして作成しておく
//
//…
pSession->Begin();
CdbrDocument Doc;
SDBR_FILELINK_PATHINFO FileLinkInfo;
//FileLinkInfoにFile Link連携に必要な情報を設定する
//…
//File Link文書の作成および登録
Doc.CreateObject(pSession,
1, DMAClassList, FileLinkInfo,
"MIME::image/bmp", &pOIID);
Doc.ReleaseObject();
//処理の確定
pSession->Commit();
すでにデータベースに登録されている文書とファイルサーバに登録されているコンテント(ファイル)を参照する場合に使用するメソッドと,そのメソッドの発行順序について説明します。
File Link文書を参照する場合の,コールシーケンスの例を次に示します。
pSession->Begin();
//…
//検索によって参照するFile Link文書のOIIDを取得する
//…
CdbrDocument Doc;
SDBR_FILELINK_PATHINFO FileLinkPath;
//検索で取得したOIIDをオブジェクトに設定する
FileLinkPath.pFilePath="file:///tmp/temp.bmp"
Doc.SetOIID(pSession, pOIID);
//readロックを設定して,File Link文書のパス情報を取得する
//FileLinkPathのメンバpFileNameに指定したファイル
//またはディレクトリ下(この場合はファイル)に,
//取得したコンテントの内容が出力される
Doc.GetContentAndLock(FileLinkPath, NULL,
NULL, DMA_LOCK_READ);
Doc.ReleaseObject();
//処理の確定
pSession->Commit();
すでにデータベースに登録されている文書のコンテントを編集して更新する場合に使用するメソッドと,そのメソッドの発行順序について説明します。なお,(2)と同様に,あらかじめ接続する文書の構成要素であるDMAオブジェクトのOIIDを取得しておきます。
SDBR_FILELINK_PATHINFO構造体に設定する値については「(1) File Link文書の作成」を参照してください。
File Link文書を更新する場合の,コールシーケンスの例を次に示します。
pSession->Begin();
//…
//検索によって更新するFile Link文書のOIIDを取得する
//…
CdbrDocument Doc;
SDBR_FILELINK_PATHINFO FileLinkPath;
//検索で取得したOIIDをオブジェクトに設定する
Doc.SetOIID(pSession, pOIID);
//writeロックを設定して,File Link文書のパス情報を取得する
//取得したコンテントの内容の更新する
//…
//File Link文書を更新する
Doc.UpdateContent(FileLinkPath, NULL);
Doc.ReleaseObject();
//処理の確定
pSession->Commit();
File Link文書のレンディションを追加するには,CdbrDocumentクラスおよびCdbrVersionableDocumentクラスのAddRenditionメソッドを使用します。CreateObjectメソッドと同様に,追加するレンディションのファイルまたはディレクトリ情報をSDBR_FILELINK_PATHINFO構造体に指定します。
すでにデータベースに登録されている文書に対して,File Link連携機能を使用するレンディションを追加する場合に使用するメソッドと,そのメソッドの発行順序について説明します。なお,(2)と同様に,あらかじめ接続する文書の構成要素であるDMAオブジェクトのOIIDを取得しておきます。
File Link連携機能を使用するレンディションを追加するコールシーケンスの例を次に示します。
pSession->Begin();
//…
//レンディションを追加する文書のOIIDを取得する
//レンディションに設定するdbrProp_RetrievalNameプロパティの値を
//構造体PropListに登録する
//…
CdbrDocument Doc;
SDBR_FILELINK_PATHINFO FileLinkInfo;
//FileLinkInfoにFile Link連携に必要な情報を設定する
//…
//レンディションを追加する文書に接続する
Doc.SetOIID(pSession,pOIID);
//レンディションを追加して,プロパティを設定する
Doc.AddRendition(FileLinkInfo,
"MIME::image/bmp",&PropList);
Doc.ReleaseObject();
//処理の確定
pSession->Commit();