CdbrDocument::UpdateContentメソッド
機能
ファイルの更新
形式
// シングルファイル文書の場合
// (マスタレンディションのファイルの更新)
DmaBoolean UpdateContent(
const pDmaString_T pFilePath,
DmaInteger32 lCreateIndexFlg = DBR_CREATE_INDEX)
// シングルファイル文書の場合
// (RenditionTypeを指定したファイルの更新)
DmaBoolean UpdateContent(
const pDmaString_T pFilePath,
pDmaString_T pRenditionType,
DmaInteger32 lCreateIndexFlg)
// マルチファイル文書の場合
DmaBoolean UpdateContent(
SDBR_PATHLIST& PathList,
pDmaString_T pRenditionType)
// File Link文書の場合
DmaBoolean UpdateContent(
SDBR_FILELINK_PATHINFO& FileLinkPath,
pDmaString_T pRenditionType)
// ファイルパス情報構造体
struct SDBR_PATHINFO {
pDmaString_T pFilePath; // ファイルのURL
pDmaString_T pComponentType; // ファイルを識別する文字列
};
// ファイルパス情報リスト構造体
struct SDBR_PATHLIST {
DmaInteger32 lCount; // 登録ファイル数
SDBR_PATHINFO* pItem; // ファイルパス情報構造体のポインタ
};
// File Linkパス情報構造体
struct SDBR_FILELINK_PATHINFO {
pDmaString_T pFilePath; // 登録ファイルまたはディレクトリのURL
pDmaString_T pFamName; // FAM名
pDmaString_T pFamFilePath; // コンテント保管先パス
DmaInteger32 lContentDeleteMode; // コンテント削除モード
DmaInteger32 lFileNamingMode; // コンテント名自動生成モード
};
詳細
登録されているCdbrDocumentオブジェクトの内容を更新するメソッドです。CdbrDocumentクラスに格納したコンテントを,指定したパスのファイルで更新します。
このメソッドは,リファレンスファイルを管理する文書に対しては実行できません。
Windowsの場合,次のことに注意してください。
pDbrDoc->UpdateContent("file:///tmp/sample.doc");
引数
pFilePath(入力)
更新に使用するファイルのパス名を指定します。ファイルのパス名はURL形式で設定します。例えば,UNIXの場合,ファイル"/tmp/sample.doc"を登録するには,"file:///tmp/sample.doc"と指定します。Windowsの場合,ファイル"c:¥temp¥sample.doc"を登録するには,"file:///c:¥temp¥sample.doc"と指定します。有効なプロトコルは"file:"だけです。これ以外のプロトコルを指定した場合はエラーになります。
なお,ここで指定するパスは,GetContentメソッドで取得したファイルである必要はありません。ただし,RenditionTypeが異なるファイルは指定できません。
pRenditionType(入力)
RenditionTypeを指定してレンディションの内容を更新する場合,内容を更新するレンディションのRenditionTypeを表す文字列を指定します。
この引数で指定したRenditionTypeが,対象文書のサブレンディションとして存在しない場合はエラーになります。
マスタレンディションの内容を更新する場合はNULLを指定するか,「マスタレンディションのファイルを更新する場合」の形式を使用することもできます。なお,空文字列("")は指定できません。
マルチファイル文書の場合,NULLまたは「シングルファイル文書の場合(マスタレンディションのファイルの更新)」の形式を指定してください。
lCreateIndexFlg(入力)
全文検索インデクスを作成するかどうかを指定します。
次のどちらかを指定してください。この値を省略した場合は,DBR_CREATE_INDEXが指定されたものとして処理されます。
なお,CdbrDocumentオブジェクトの構成要素が全文検索機能付きクラス以外から作成されたDocVersionオブジェクトである場合,およびファイルのRenditionTypeがテキスト型でない場合は,lCreateIndexFlgの値は無視されます。
また,マルチレンディション文書の場合,lCreateIndexFlgはマスタレンディションの内容を更新する場合だけ有効です。
PathList(入力)
更新に使用するファイルのファイルパス情報が設定されたSDBR_PATHLIST構造体を指定します。SDBR_PATHLIST構造体については,「付録C.1(11) SDBR_PATHLIST構造体(ファイルパス情報リスト構造体)」を参照してください。
FileLinkPath(入力)
File Link文書を更新するために必要な情報を格納した,SDBR_FILELINK_PATHINFO構造体を指定します。
なお,SDBR_FILELINK_PATHINFO構造体のメンバpFilePathとメンバpFamFilePathの両方にNULLを設定した場合にはDMARC_BAD_PARAMETERのエラーになります。
SDBR_FILELINK_PATHINFO構造体に設定する内容については,「付録C.1(5) SDBR_FILELINK_PATHINFO構造体(File Linkパス情報構造体)」を参照してください。
戻り値
DMA_TRUE 正常終了
DMA_FALSE 異常終了
戻り値の詳細
major_code | minor_code | 説明 | 対処 |
---|---|---|---|
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して,ユーザプログラムを終了してください。 |
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて,再度実行してください。 |
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 または,マルチファイル文書で指定したファイルのサイズの合計が,BLOBの定義長を超えました。 | syslogを参照して,障害の原因を取り除いてください。 |
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて,再度実行してください。 |
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。 |
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。 |
ERR_DBR | ERR_BAD_CONTENTSCOUNT | 登録しようとするファイルの数が多過ぎます。 | 登録するファイルの数を見直してください。 |
ERR_DBR | ERR_CONTENTTYPE_MISMATCH | 指定したレンディションタイプのコンテントに対して実行できません。 | 正しい文書オブジェクトを指定してメソッドを実行してください。 |
ERR_DBR | ERR_FAL_NOT_LOADED | HiRDB File Linkのライブラリがロードできません。 | 詳細メッセージを基に対処してください。 |
ERR_DBR | ERR_FILELINK_FAILED | HiRDB File Linkでエラーが発生しました。 | 詳細メッセージを基に対処してください。 |
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては,一度に一つの処理要求しか出さないように見直してください。 |
ERR_DBR | ERR_NONEXISTS_RENDITION | 指定されたRenditionTypeは存在しません。 | RenditionTypeを見直してください。 |
ERR_DBR | ERR_NOT_MULTI_CONTENTS | マルチファイル文書の文書ではありません。 | マルチファイル管理機能を使用しない場合の形式で実行してください。 |
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。 |
ERR_DBR | ERR_RETRIEVALNAME_DUPLICATED | RetrievalNameが重複して指定されています。 | RetrievalNameが重複しないように指定してください。 |
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。 |
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。 |
ERR_DMA | DMARC_BAD_CLASSID | 指定された識別子は,利用できるオブジェクトのクラスではありません。 | 正しいクラス識別子を指定してください。 |
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。 |
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。 |
ERR_DMA | DMARC_BAD_URL | リソースのURLが不正です。 | URLの内容を見直してください。 |
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて,処理を再実行してください。 |
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。 |
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。 |
ERR_DMA | DMARC_RESOURCE_NOT_FOUND | 指示されたリソースが見つかりません。 | 正しいリソースを指定してください。 |
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。 |
ERR_DMA | DMARC_URL_PROTOCOL_NOT_SUPPORTED | サポートしていないURLプロトコルです。 | file:///で始まっているか確認してください。 |
ERR_DMA | EDMRC_FTPSERVICE_LOST_CONNECTION | ファイル転送サービスへのセッションが切断されました。 | ネットワーク環境を確認してください。または,時間を置いて,再度実行してください。 |
ERR_DMA | EDMRC_FTPSERVICE_MAX_SESSION | ファイル転送サービスに同時に接続できるセッション数の上限に達しています。 | 時間を置いて,Connectユーザ数が減ったあと,再度実行してください。または,ファイル転送サービス環境定義ファイルのFtpSessionMaxエントリを見直してください。 |
ERR_DMA | EDMRC_FTPSERVICE_NOT_AVAILABLE | ファイル転送サービスが利用できません。 | サーバのバージョンに対応したクライアントを利用してください。 |
ERR_DMA | EDMRC_NO_FTPSERVICE | 使用できるファイル転送サービスがありません。 |
|