uCosminexus DocumentBroker Version 3　クラスライブラリ　C++　リファレンス　基本機能編

文法書

3000-3-F14-20

目　　次

前書き

変更内容

はじめに

1.　クラスライブラリのクラス，メソッドおよび関数

1.1　クラス一覧

1.2　メソッド一覧

1.3　関数一覧

2.　クラスライブラリで使用するデータ型とクラスおよびメソッドの記述形式

2.1　クラスライブラリで使用するデータ型

2.2　クラスおよびメソッドの記述形式

3.　CdbrCompoundクラス（複合データを扱うクラス）

CdbrCompoundクラスの詳細

CdbrCompound::~CdbrCompoundメソッド

CdbrCompound::CdbrCompoundメソッド

CdbrCompound::GetCountメソッド

CdbrCompound::GetDataTypeメソッド

CdbrCompound::GetIdメソッド

CdbrCompound::GetValueメソッド

CdbrCompound::SetValueメソッド

4.　CdbrConfiguratedReferentialContainerクラス（バージョン付き構成管理コンテナを扱うクラス）

CdbrConfiguratedReferentialContainerクラスの詳細

CdbrConfiguratedReferentialContainer::~CdbrConfiguratedReferentialContainerメソッド

CdbrConfiguratedReferentialContainer::CdbrConfiguratedReferentialContainerメソッド

CdbrConfiguratedReferentialContainer::CreateObjectメソッド

CdbrConfiguratedReferentialContainer::GetContainableListメソッド

CdbrConfiguratedReferentialContainer::GetContainableListAndLockメソッド

CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesメソッド

CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesAndLockメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListAndLockメソッド

CdbrConfiguratedReferentialContainer::Linkメソッド

CdbrConfiguratedReferentialContainer::LinkAndLockメソッド

CdbrConfiguratedReferentialContainer::LinkVTFixメソッド

CdbrConfiguratedReferentialContainer::LinkVTFixAndLockメソッド

CdbrConfiguratedReferentialContainer::LinkVTFloatメソッド

CdbrConfiguratedReferentialContainer::LinkVTFloatAndLockメソッド

CdbrConfiguratedReferentialContainer::PutLinkPropertyValuesメソッド

CdbrConfiguratedReferentialContainer::SetVTFixメソッド

CdbrConfiguratedReferentialContainer::SetVTFloatメソッド

CdbrConfiguratedReferentialContainer::Unlinkメソッド

CdbrConfiguratedReferentialContainer::UnlinkAndLockメソッド

CdbrConfiguratedReferentialContainer::UnlinkVTメソッド

CdbrConfiguratedReferentialContainer::UnlinkVTAndLockメソッド

5.　CdbrContainableクラス（包含要素を扱うクラス）

CdbrContainableクラスの詳細

CdbrContainable::~CdbrContainableメソッド

CdbrContainable::BindPublicACLメソッド

CdbrContainable::CdbrContainableメソッド

CdbrContainable::GetContainerListメソッド

CdbrContainable::GetContainerListAndLockメソッド

CdbrContainable::GetPublicACLListメソッド

CdbrContainable::GetPublicACLListAndLockメソッド

CdbrContainable::UnbindPublicACLメソッド

6.　CdbrCoreクラス（エラー情報を取得するクラス）

CdbrCoreクラスの詳細

CdbrCore::~CdbrCoreメソッド

CdbrCore::CdbrCoreメソッド

CdbrCore::GetDBErrorメソッド

CdbrCore::GetLastErrorメソッド

7.　CdbrDMAクラス（OIIDの設定やプロパティを扱うクラス）

CdbrDMAクラスの詳細

CdbrDMA::~CdbrDMAメソッド

CdbrDMA::CdbrDMAメソッド

CdbrDMA::ConnectObjectメソッド

CdbrDMA::GetOIIDメソッド

CdbrDMA::GetPropertyValuesメソッド

CdbrDMA::GetPropertyValuesAndLockメソッド

CdbrDMA::GetTypeメソッド

CdbrDMA::PutPropertyValuesメソッド

CdbrDMA::ReleaseObjectメソッド

CdbrDMA::RemoveObjectメソッド

CdbrDMA::SetOIIDメソッド

8.　CdbrDocumentクラス（バージョンなし文書を扱うクラス）

CdbrDocumentクラスの詳細

CdbrDocument::~CdbrDocumentメソッド

CdbrDocument::AddRenditionメソッド

CdbrDocument::CdbrDocumentメソッド

CdbrDocument::ChangeMasterRenditionメソッド

CdbrDocument::ConvertContentTypeメソッド

CdbrDocument::CreateIndexメソッド

CdbrDocument::CreateObjectメソッド

CdbrDocument::CreateRelationメソッド

CdbrDocument::DeleteRenditionメソッド

CdbrDocument::GetContentメソッド

CdbrDocument::GetContentAndLockメソッド

CdbrDocument::GetContentInfoメソッド

CdbrDocument::GetRelationListメソッド

CdbrDocument::GetRelationListAndLockメソッド

CdbrDocument::GetRenditionListメソッド

CdbrDocument::GetRenditionListAndLockメソッド

CdbrDocument::GetVersionableListメソッド

CdbrDocument::GetVersionableListAndLockメソッド

CdbrDocument::PutRelationPropertyValuesメソッド

CdbrDocument::PutRenditionPropertyValuesメソッド

CdbrDocument::RemoveIndexメソッド

CdbrDocument::RemoveRelationメソッド

CdbrDocument::UpdateContentメソッド

CdbrDocument::UpdateContentAndRenditionTypeメソッド

9.　CdbrEqlStatementクラス（edmSQL文を操作，実行するクラス）

CdbrEqlStatementクラスの詳細

CdbrEqlStatement::~CdbrEqlStatementメソッド

CdbrEqlStatement::CdbrEqlStatementメソッド

CdbrEqlStatement::ChangeACLModeメソッド

CdbrEqlStatement::ChangeGetObjCountメソッド

CdbrEqlStatement::ChangeLockTypeメソッド

CdbrEqlStatement::DeleteResultメソッド

CdbrEqlStatement::Executeメソッド

CdbrEqlStatement::GetACLModeメソッド

CdbrEqlStatement::GetResultメソッド

CdbrEqlStatement::Initializeメソッド

CdbrEqlStatement::Setメソッド

CdbrEqlStatement::SetObjParamメソッド

CdbrEqlStatement::SetOIIDParamメソッド

CdbrEqlStatement::SetParamメソッド

CdbrEqlStatement::Terminateメソッド

10.　CdbrIndependentPersistenceクラス（独立データを扱うクラス）

CdbrIndependentPersistenceクラスの詳細

CdbrIndependentPersistence::~CdbrIndependentPersistenceメソッド

CdbrIndependentPersistence::BindPublicACLメソッド

CdbrIndependentPersistence::CdbrIndependentPersistenceメソッド

CdbrIndependentPersistence::CreateObjectメソッド

CdbrIndependentPersistence::GetPublicACLListメソッド

CdbrIndependentPersistence::GetPublicACLListAndLockメソッド

CdbrIndependentPersistence::UnbindPublicACLメソッド

11.　CdbrPublicACLクラス（パブリックACLを扱うクラス）

CdbrPublicACLクラスの詳細

CdbrPublicACL::~CdbrPublicACLメソッド

CdbrPublicACL::CdbrPublicACLメソッド

CdbrPublicACL::CreateObjectメソッド

CdbrPublicACL::GetBindObjectListメソッド

CdbrPublicACL::GetBindObjectListAndLockメソッド

12.　CdbrReferentialContainerクラス（バージョンなしコンテナを扱うクラス）

CdbrReferentialContainerクラスの詳細

CdbrReferentialContainer::~CdbrReferentialContainerメソッド

CdbrReferentialContainer::CdbrReferentialContainerメソッド

CdbrReferentialContainer::CreateObjectメソッド

CdbrReferentialContainer::GetContainableListメソッド

CdbrReferentialContainer::GetContainableListAndLockメソッド

CdbrReferentialContainer::GetLinkPropertyValuesメソッド

CdbrReferentialContainer::GetLinkPropertyValuesAndLockメソッド

CdbrReferentialContainer::Linkメソッド

CdbrReferentialContainer::LinkAndLockメソッド

CdbrReferentialContainer::PutLinkPropertyValuesメソッド

CdbrReferentialContainer::Unlinkメソッド

CdbrReferentialContainer::UnlinkAndLockメソッド

13.　CdbrSessionクラス（セッションを確立するクラス）

CdbrSessionクラスの詳細

CdbrSession::~CdbrSessionメソッド

CdbrSession::Beginメソッド

CdbrSession::CdbrSessionメソッド

CdbrSession::Commitメソッド

CdbrSession::Connectメソッド

CdbrSession::Disconnectメソッド

CdbrSession::GetClassTypeメソッド

CdbrSession::GetDocSpaceCharacterSetメソッド

CdbrSession::GetLastDetailErrorメソッド

CdbrSession::GetReferencePathメソッド

CdbrSession::GetUserInfoメソッド

CdbrSession::OrbComponentShutdownメソッド

CdbrSession::OrbComponentStartメソッド

CdbrSession::Rollbackメソッド

CdbrSession::SetReferencePathメソッド

14.　CdbrVariableArrayクラス（可変長配列を扱うクラス）

CdbrVariableArrayクラスの詳細

CdbrVariableArray::~CdbrVariableArrayメソッド

CdbrVariableArray::Addメソッド

CdbrVariableArray::CdbrVariableArrayメソッド

CdbrVariableArray::Deleteメソッド

CdbrVariableArray::GetCountメソッド

CdbrVariableArray::GetDataTypeメソッド

CdbrVariableArray::GetValueメソッド

CdbrVariableArray::Resizeメソッド

CdbrVariableArray::SetValueメソッド

15.　CdbrVersionableクラス（バージョン管理機能を提供するクラス）

CdbrVersionableクラスの詳細

CdbrVersionable::~CdbrVersionableメソッド

CdbrVersionable::BindPublicACLメソッド

CdbrVersionable::CdbrVersionableメソッド

CdbrVersionable::DeleteVersionメソッド

CdbrVersionable::GetPropertyValuesメソッド

CdbrVersionable::GetPropertyValuesAndLockメソッド

CdbrVersionable::GetPublicACLListメソッド

CdbrVersionable::GetPublicACLListAndLockメソッド

CdbrVersionable::GetReservationStatusメソッド

CdbrVersionable::GetReservationStatusAndLockメソッド

CdbrVersionable::GetVersionListメソッド

CdbrVersionable::GetVersionListAndLockメソッド

CdbrVersionable::PutPropertyValuesメソッド

CdbrVersionable::UnbindPublicACLメソッド

CdbrVersionable::VersionCheckInメソッド

CdbrVersionable::VersionCheckOutメソッド

CdbrVersionable::VersionRevokeメソッド

16.　CdbrVersionableDocumentクラス（バージョン付き文書を扱うクラス）

CdbrVersionableDocumentクラスの詳細

CdbrVersionableDocument::~CdbrVersionableDocumentメソッド

CdbrVersionableDocument::AddRenditionメソッド

CdbrVersionableDocument::CdbrVersionableDocumentメソッド

CdbrVersionableDocument::ChangeMasterRenditionメソッド

CdbrVersionableDocument::ConvertContentTypeメソッド

CdbrVersionableDocument::CreateIndexメソッド

CdbrVersionableDocument::CreateObjectメソッド

CdbrVersionableDocument::CreateRelationメソッド

CdbrVersionableDocument::DeleteRenditionメソッド

CdbrVersionableDocument::GetContentメソッド

CdbrVersionableDocument::GetContentAndLockメソッド

CdbrVersionableDocument::GetContentInfoメソッド

CdbrVersionableDocument::GetRelationListメソッド

CdbrVersionableDocument::GetRelationListAndLockメソッド

CdbrVersionableDocument::GetRenditionListメソッド

CdbrVersionableDocument::GetRenditionListAndLockメソッド

CdbrVersionableDocument::PutRelationPropertyValuesメソッド

CdbrVersionableDocument::PutRenditionPropertyValuesメソッド

CdbrVersionableDocument::RemoveIndexメソッド

CdbrVersionableDocument::RemoveRelationメソッド

CdbrVersionableDocument::UpdateContentメソッド

CdbrVersionableDocument::UpdateContentAndRenditionTypeメソッド

17.　CdbrVersionTraceableContainerクラス（バージョンなし構成管理コンテナを扱うクラス）

CdbrVersionTraceableContainerクラスの詳細

CdbrVersionTraceableContainer::~CdbrVersionTraceableContainerメソッド

CdbrVersionTraceableContainer::CdbrVersionTraceableContainerメソッド

CdbrVersionTraceableContainer::CreateObjectメソッド

CdbrVersionTraceableContainer::GetVersionableListメソッド

CdbrVersionTraceableContainer::GetVersionableListAndLockメソッド

CdbrVersionTraceableContainer::GetVTContaineeListメソッド

CdbrVersionTraceableContainer::GetVTContaineeListAndLockメソッド

CdbrVersionTraceableContainer::LinkVTFixメソッド

CdbrVersionTraceableContainer::LinkVTFixAndLockメソッド

CdbrVersionTraceableContainer::LinkVTFloatメソッド

CdbrVersionTraceableContainer::LinkVTFloatAndLockメソッド

CdbrVersionTraceableContainer::SetVTFixメソッド

CdbrVersionTraceableContainer::SetVTFixAndLockメソッド

CdbrVersionTraceableContainer::SetVTFloatメソッド

CdbrVersionTraceableContainer::SetVTFloatAndLockメソッド

CdbrVersionTraceableContainer::UnlinkVTメソッド

CdbrVersionTraceableContainer::UnlinkVTAndLockメソッド

18.　CdbrXmlTranslatorクラス（XML変換を扱うクラス）

CdbrXmlTranslatorクラスの詳細

CdbrXmlTranslator::~CdbrXmlTranslatorメソッド

CdbrXmlTranslator::CdbrXmlTranslatorメソッド

CdbrXmlTranslator::GetDmaInfoListメソッド

CdbrXmlTranslator::GetIndexDataメソッド

19.　CdbrXmlTranslatorFactoryクラス（XMLの操作環境を管理するクラス）

CdbrXmlTranslatorFactoryクラスの詳細

CdbrXmlTranslatorFactory::~CdbrXmlTranslatorFactoryメソッド

CdbrXmlTranslatorFactory::CdbrXmlTranslatorFactoryメソッド

CdbrXmlTranslatorFactory::CreateTranslatorメソッド

CdbrXmlTranslatorFactory::Initializeメソッド

20.　関数

関数

dbrDelete関数

dbrDmaIdFromString関数

付録

付録A　コーディング例

付録A.1　作成するコーディング例

付録A.2　コーディング例

付録B　DMAオブジェクトのプロパティ

付録B.1　DMAのクラスのプロパティ一覧

付録B.2　プロパティの説明

付録C　クラスライブラリのメソッドで使用する構造体

付録C.1　オブジェクトの情報を設定，参照する構造体

付録C.2　検索に使用する構造体

付録C.3　構造体で指定する定数

付録D　メソッドの実行に必要なパーミッション（アクセス制御機能を使用する場合）

付録D.1　パーミッション一覧で使用する記号

付録D.2　メソッドの実行に必要なパーミッション一覧

付録E　メソッド実行時の排他制御（ロック）

付録E.1　メソッド実行時の明示的なロックと暗黙のロック

付録E.2　メソッド実行時のロック一覧

付録F　OIID指定時のURLの文法

付録G　文書空間で使用する文字コード種別がUTF-8の場合に使用できるメソッドと関数

付録G.1　文字コード種別がUTF-8の場合に使用できるメソッド

付録G.2　文字コード種別がUTF-8の場合に使用できる関数

付録H　戻り値一覧

付録H.1　クラスライブラリの戻り値

付録H.2　DMAの戻り値

付録H.3　クラスライブラリ独自の戻り値（ERR_DBRの場合）

付録H.4　データベースエラーが発生した場合の戻り値（ERR_DBの場合）

付録H.5　詳細メッセージの出力について

付録I　障害が発生した時にDocumentBrokerが出力する情報

付録J　用語解説

索引

[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2006, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2006, 2013, Hitachi Solutions, Ltd.

前書き

■ 対象製品

R-1M95D-43※　 uCosminexus DocumentBroker Development Kit Version 3　 03-60（適用OS：AIX 5L V5.1，AIX 5L V5.2，AIX 5L V5.3）
R-1595D-43　 uCosminexus DocumentBroker Development Kit Version 3　 03-70（適用OS：Windows Server 2003，Windows Server 2003 R2，Windows Server 2003 R2 x64 Edition，Windows Server 2008 x86，Windows Server 2008 R2，Windows Server 2012，Windows XP，Windows Vista，Windows 7，Windows 8）

これらのプログラムプロダクトのほかにもこのマニュアルをご利用になれる場合があります。詳細は「リリースノート」でご確認ください。
※印の製品については，サポート時期をご確認ください。

■ 輸出時の注意

本製品を輸出される場合には、外国為替及び外国貿易法の規制並びに米国輸出管理規則など外国の輸出関連法規をご確認の上、必要な手続きをお取りください。
なお、不明な場合は、弊社担当営業にお問い合わせください。

■ 商標類

Acrobat Distillerは，Adobe Systems Incorporated（アドビシステムズ社）の商標です。
AIXは，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
Borlandのブランド名および製品名はすべて，米国Borland Software Corporationの米国およびその他の国における商標または登録商標です。
CORBAは，Object Management Groupが提唱する分散処理環境アーキテクチャの名称です。
GIFは，米国CompuServe Inc.が開発したフォーマットの名称です。
Microsoftは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Microsoft Office Wordは，米国Microsoft Corporationの商品名称です。
Microsoftは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。Microsoft Wordは，米国Microsoft Corporationの商品名称です。
OLEは，米国Microsoft Corporationが開発したソフトウェア名称です。
TIFFは，米国Aldus Corp.が開発したフォーマットの名称です。
UNIXは，The Open Groupの米国ならびに他の国における登録商標です。
Windowsは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Vistaは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
活文，PDFstaffは，株式会社日立ソリューションズの登録商標です。
その他記載の会社名，製品名は，それぞれの会社の商標もしくは登録商標です。

■ 発行

2013年9月 3000-3-F14-20

■ 著作権

All Rights Reserved. Copyright (C) 2006, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2006, 2013, Hitachi Solutions, Ltd.

変更内容

変更内容（3000-3-F14-20）DocumentBroker Development Kit Version 3　03-70（適用OS：Windows Server 2003，Windows Server 2003 R2，Windows Server 2003 R2 x64 Edition，Windows Server 2008 x86，Windows Server 2008 R2，Windows Server 2012，Windows XP，Windows Vista，Windows 7，Windows 8）

追加・変更内容
変更個所

次の前提OSをサポートしました。

Windows Server 2012

Windows 8

－

単なる誤字・脱字などはお断りなく訂正しました。

はじめに

このマニュアルは，次に示すプログラムプロダクトで提供するクラスライブラリのクラスの詳細とメソッドの文法について説明したものです。

R-1M95D-43　uCosminexus DocumentBroker Development Kit Version 3

R-1595D-43　uCosminexus DocumentBroker Development Kit Version 3

対象読者

このマニュアルは，クラスライブラリを利用してクライアントアプリケーションを開発する方を対象にしています。なお，次の内容を理解されていることを前提としています。

UNIXまたはWindowsに関する知識

C++言語に関する知識

XMLに関する知識

SQL言語に関する知識

分散オブジェクト技術に関する知識

マニュアルの構成

このマニュアルは，次に示す章と付録から構成されています。

第1章　クラスライブラリのクラス，メソッドおよび関数

クラスライブラリで提供するクラス，メソッドおよび関数を簡単な機能概略付きの一覧表形式で説明しています。

第2章　クラスライブラリで使用するデータ型とクラスおよびメソッドの記述形式

クラスライブラリのリファレンスマニュアルで使用するデータ型の定義，およびクラス，メソッドの記述形式（ページレイアウト）について説明しています。

第3章　CdbrCompoundクラス（複合データを扱うクラス）

CdbrCompoundクラスの詳細とメソッドの文法について説明しています。

第4章　CdbrConfiguratedReferentialContainerクラス（バージョン付き構成管理コンテナを扱うクラス）

CdbrConfiguratedReferentialContainerクラスの詳細とメソッドの文法について説明しています。

第5章　CdbrContainableクラス（包含要素を扱うクラス）

CdbrContainableクラスの詳細とメソッドの文法について説明しています。

第6章　CdbrCoreクラス（エラー情報を取得するクラス）

CdbrCoreクラスの詳細とメソッドの文法について説明しています。

第7章　CdbrDMAクラス（OIIDの設定やプロパティを扱うクラス）

CdbrDMAクラスの詳細とメソッドの文法について説明しています。

第8章　CdbrDocumentクラス（バージョンなし文書を扱うクラス）

CdbrDocumentクラスの詳細とメソッドの文法について説明しています。

第9章　CdbrEqlStatementクラス（edmSQL文を操作，実行するクラス）

CdbrEqlStatementクラスの詳細とメソッドの文法について説明しています。

第10章　CdbrIndependentPersistenceクラス（独立データを扱うクラス）

CdbrIndependentPersistenceクラスの詳細とメソッドの文法について説明しています。

第11章　CdbrPublicACLクラス（パブリックACLを扱うクラス）

CdbrPublicACLクラスの詳細とメソッドの文法について説明しています。

第12章　CdbrReferentialContainerクラス（バージョンなしコンテナを扱うクラス）

CdbrReferentialContainerクラスの詳細とメソッドの文法について説明しています。

第13章　CdbrSessionクラス（セッションを確立するクラス）

CdbrSessionクラスの詳細とメソッドの文法について説明しています。

第14章　CdbrVariableArrayクラス（可変長配列を扱うクラス）

CdbrVariableArrayクラスの詳細とメソッドの文法について説明しています。

第15章　CdbrVersionableクラス（バージョン管理機能を提供するクラス）

CdbrVersionableクラスの詳細とメソッドの文法について説明しています。

第16章　CdbrVersionableDocumentクラス（バージョン付き文書を扱うクラス）

CdbrVersionableDocumentクラスの詳細とメソッドの文法について説明しています。

第17章　CdbrVersionTraceableContainerクラス（バージョンなし構成管理コンテナを扱うクラス）

CdbrVersionTraceableContainerクラスの詳細とメソッドの文法について説明しています。

第18章　CdbrXmlTranslatorクラス（XML変換を扱うクラス）

CdbrXmlTranslatorクラスの詳細とメソッドの文法について説明しています。

第19章　CdbrXmlTranslatorFactoryクラス（XMLの操作環境を管理するクラス）

CdbrXmlTranslatorFactoryクラスの詳細とメソッドの文法について説明しています。

第20章　関数

クラスライブラリが提供する関数について説明しています。

付録A　コーディング例

クラスライブラリの機能を使用してクライアントアプリケーションを作成する場合のコーディング例について説明しています。

付録B　DMAオブジェクトのプロパティ

DMAオブジェクトが保持しているプロパティのうち，クラスライブラリによって操作できるプロパティについて説明しています。

付録C　クラスライブラリのメソッドで使用する構造体

クラスライブラリのメソッドを使用するときに，オブジェクトに設定する情報を指定したり既存のオブジェクトの情報を取得したりするために使用する構造体について説明しています。

付録D　メソッドの実行に必要なパーミッション（アクセス制御機能を使用する場合）

アクセス制御機能を使用する場合に，それぞれのメソッドをコールするときに必要なパーミッションについて説明しています。

付録E　メソッド実行時の排他制御（ロック）

クラスライブラリのメソッドの実行時に明示的に設定できるロックと暗黙で設定されるロックについて説明しています。

付録F　OIID指定時のURLの文法

OIIDの形式およびOIIDを指定するときのURLの文法について説明しています。

付録G　文書空間で使用する文字コード種別がUTF-8の場合に使用できるメソッドと関数

クラスライブラリのメソッドおよび関数で文字コード種別「UTF-8」をサポートしている範囲について説明しています。

付録H　戻り値一覧

クラスライブラリのメソッドを発行したときに返される戻り値について，一覧形式で説明しています。

付録I　障害が発生した時にDocumentBrokerが出力する情報

障害が発生した時にuCosminexus DocumentBrokerが出力する情報の出力先などについて説明しています。

付録J　用語解説

uCosminexus DocumentBroker Version 3で使用する用語について説明しています。

関連マニュアル

このマニュアルは次のマニュアルと関連がありますので，必要に応じてお読みください。なお，本文に記載のマニュアル名称は，「uCosminexus DocumentBroker」を「DocumentBroker」と表記しています。

uCosuminexus DocumentBrokerのマニュアル

DocumentBroker Version 3　システム導入・運用ガイド（3000-3-D01）

uCosminexus DocumentBroker Version 3　システム導入・運用ガイド（3020-3-U71）

uCosminexus DocumentBrokerを使用する環境を定義，管理および運用する場合に参照してください。

UNIXの場合は，資料番号が3000-3-D01のマニュアルを参照してください。

Windowsの場合は，資料番号が3020-3-U71のマニュアルを参照してください。

uCosminexus DocumentBroker Version 3　クラスライブラリ　C++　解説（3000-3-F13）

クラスライブラリの機能と，クラスライブラリを使用するために必要なオブジェクトモデルについて知りたい場合に参照してください。

uCosminexus DocumentBroker Version 3　メッセージ（3000-3-F12）

uCosminexus DocumentBrokerが出力するメッセージについて知りたい場合に参照してください。

DocumentBroker Rendering Option Version 3（3020-3-N47）

Adobe Acrobat Distillerと連携したDocumentBroker Rendering Optionの機能，環境設定，およびコマンドの文法について知りたい場合に参照してください。

DocumentBroker Rendering Option Version 3　（活文PDFstaff編）（3020-3-N49）

PDFstaff RuntimeおよびPDFstaff SDKと連携したDocumentBroker Rendering Optionの機能，環境設定，およびコマンドの文法について知りたい場合に参照してください。

uCosminexus DocumentBroker Text Search Index Loader Version 3（3020-3-U72）

uCosminexus DocumentBrokerに格納されている文書からテキスト情報を抽出して，全文検索用のインデクスファイルを作成し，これを全文検索インデクスに登録するユティリティについて知りたい場合に参照してください。

関連製品のマニュアル（HiRDB）

スケーラブルデータベースサーバ　HiRDB Version 6　SQLリファレンス（UNIX(R)/Windows(R)用）（3000-6-237）※¹

スケーラブルデータベースサーバ　HiRDB Version 6　SQLリファレンス（Windows(R)用）（3020-6-127）※¹

スケーラブルデータベースサーバ　HiRDB Version 7　SQLリファレンス（UNIX(R)/Windows(R)用）（3000-6-277）※¹

スケーラブルデータベースサーバ　HiRDB Version 7　SQLリファレンス（Windows(R)用）（3020-6-277）※¹

スケーラブルデータベースサーバ　HiRDB Version 8　SQLリファレンス（3020-6-357）※¹

HiRDBデジタルコンテンツアクセスプラグイン　HiRDB File Link（UNIX(R)用）（3000-6-253）※²

HiRDBデジタルコンテンツアクセスプラグイン　HiRDB File Link（Windows(R)用）（3020-6-141）※²

関連製品のマニュアル（その他）

VisiBroker Version 3 VisiBroker for C++　プログラマーズガイド（3000-3-651）※³

VisiBroker Version 3 VisiBroker for C++　プログラマーズガイド（Windows(R)用）（3000-3-678）※³

注※1

このマニュアルでは，これらのマニュアルを「HiRDB　SQLリファレンス」と表記しています。

注※2

このマニュアルでは，これらのマニュアルを「HiRDB File Link」と表記しています。

注※3

このマニュアルでは，これらのマニュアルを「VisiBroker for C++　プログラマーズガイド」と表記しています。

読書手順

このマニュアルは，利用目的に合わせて章を選択してお読みいただけます。次に示す表を参考にして，お読みになる章を選択してください。

このマニュアルを読む目的 | 記述個所
どんなクラスやメソッド，関数があるのかを知りたい。 | クラスライブラリのクラス，メソッドおよび関数 | 1章
クラス一覧 | 1.1節
メソッド一覧 | 1.2節
関数一覧 | 1.3節
クラスライブラリで使用するデータ型やリファレンスマニュアルの記述形式を知りたい。 | クラスライブラリで使用するデータ型とクラスおよびメソッドの記述形式 | 2章
クラスライブラリで使用するデータ型 | 2.1節
クラスおよびメソッドの記述形式 | 2.2節
各クラスの詳細とメソッドの文法について知りたい。 | CdbrCompoundクラス（複合データを扱うクラス） | 3章
CdbrConfiguratedReferentialContainerクラス（バージョン付き構成管理コンテナを扱うクラス） | 4章
CdbrContainableクラス（包含要素を扱うクラス） | 5章
CdbrCoreクラス（エラー情報を取得するクラス） | 6章
CdbrDMAクラス（OIIDの設定やプロパティを扱うクラス） | 7章
CdbrDocumentクラス（バージョンなし文書を扱うクラス） | 8章
CdbrEqlStatementクラス（edmSQL文を操作，実行するクラス） | 9章
CdbrIndependentPersistenceクラス（独立データを扱うクラス） | 10章
CdbrPublicACLクラス（パブリックACLを扱うクラス） | 11章
CdbrReferentialContainerクラス（バージョンなしコンテナを扱うクラス） | 12章
CdbrSessionクラス（セッションを確立するクラス） | 13章
CdbrVariableArrayクラス（可変長配列を扱うクラス） | 14章
CdbrVersionableクラス（バージョン管理機能を提供するクラス） | 15章
CdbrVersionableDocumentクラス（バージョン付き文書を扱うクラス） | 16章
CdbrVersionTraceableContainerクラス（バージョンなし構成管理コンテナを扱うクラス） | 17章
CdbrXmlTranslatorクラス（XML変換を扱うクラス） | 18章
CdbrXmlTranslatorFactoryクラス（XMLの操作環境を管理するクラス） | 19章
関数の詳細を知りたい。 | 関数 | 20章
コーディング例を見たい。 | コーディング例 | 付録A
作成するコーディング例 | A.1
コーディング例 | A.2
DMAオブジェクトのプロパティについて知りたい。 | DMAオブジェクトのプロパティ | 付録B
DMAのクラスのプロパティ一覧 | B.1
プロパティの説明 | B.2
メソッドで使用する構造体について知りたい。 | クラスライブラリのメソッドで使用する構造体 | 付録C
オブジェクトの情報を設定，参照する構造体 | C.1
検索に使用する構造体 | C.2
構造体で指定する定数 | C.3
メソッドの実行に必要なパーミッションについて知りたい。 | メソッドの実行に必要なパーミッション（アクセス制御機能を使用する場合） | 付録D
パーミッション一覧で使用する記号 | D.1
メソッドの実行に必要なパーミッション一覧 | D.2
メソッド実行時の排他制御（ロック）について知りたい。 | メソッド実行時の排他制御（ロック） | 付録E
メソッド実行時の明示的なロックと暗黙のロック | E.1
メソッド実行時のロック一覧 | E.2
OIID指定時のURLの文法について知りたい。 | OIID指定時のURLの文法 | 付録F
文書空間で使用する文字コード種別がUTF-8の場合に使用できるメソッドおよび関数について知りたい。 | 文書空間で使用する文字コード種別がUTF-8の場合に使用できるメソッドと関数 | 付録G
クラスライブラリの戻り値について知りたい。 | 戻り値一覧 | 付録H
クラスライブラリの戻り値 | H.1
DMAの戻り値 | H.2
クラスライブラリ独自の戻り値（ERR_DBRの場合） | H.3
データベースエラーが発生した場合の戻り値（ERR_DBの場合） | H.4
詳細メッセージの出力について | H.5
障害が発生した時にuCosminexus DocumentBrokerが出力する情報について知りたい。 | 障害が発生した時にuCosminexus DocumentBrokerが出力する情報 | 付録I
uCosminexus DocumentBrokerの用語を知りたい。 | 用語解説 | 付録J

このマニュアルでの表記

このマニュアルでは，製品名称を次に示す略称で表記しています。

製品名称
略称

AIX 5L V5.1
AIX

AIX 5L V5.2

AIX 5L V5.3

uCosminexus DocumentBroker Development Kit Version 3
DocumentBroker

uCosminexus DocumentBroker Runtime Version 3

uCosminexus DocumentBroker Server Version 3

uCosminexus DocumentBroker Development Kit Version 3
DocumentBroker Development Kit

uCosminexus DocumentBroker Runtime Version 3
DocumentBroker Runtime

uCosminexus DocumentBroker Server Version 3
DocumentBrokerサーバ

HiRDB/Single Server Version 6
HiRDB

HiRDB/Single Server Version 7

HiRDB/Single Server Version 8

HiRDB/Parallel Server Version 6

HiRDB/Parallel Server Version 7

HiRDB/Parallel Server Version 8

HiRDB Adapter for XML - Enterprise Edition
HiRDB Adapter for XML

HiRDB Adapter for XML - Standard Edition

TPBroker Developer for C++
TPBroker

TPBroker for C++

TPBroker

Microsoft(R) Windows Server(R) 2003, Enterprise Edition 日本語版
Windows Server 2003

Microsoft(R) Windows Server(R) 2003, Standard Edition 日本語版

Microsoft(R) Windows Server(R) 2003 R2, Enterprise Edition 日本語版
Windows Server 2003 R2

Microsoft(R) Windows Server(R) 2003 R2, Standard Edition 日本語版

Microsoft(R) Windows Server(R) 2003 R2, Enterprise x64 Edition 日本語版
Windows Server 2003 R2またはWindows Server 2003 R2 Edition

Microsoft(R) Windows Server(R) 2003 R2, Standard x64 Edition 日本語版

Microsoft(R) Windows Server(R) 2008 Enterprise 32-bit 日本語版
Windows Server 2008 またはWindows Server 2008 x86

Microsoft(R) Windows Server(R) 2008 Standard 32-bit 日本語版

Microsoft(R) Windows Server(R) 2008 R2 Enterprise 日本語版
Windows Server 2008 R2

Microsoft(R) Windows Server(R) 2008 R2 Standard 日本語版

Microsoft(R) Windows Server(R) 2012 Standard 日本語版
Windows Server 2012

Microsoft(R) Windows Server(R) 2012 Datacenter 日本語版

Microsoft(R) Windows(R) XP Professional Operating System
Windows XP

Microsoft(R) Windows Vista(R) Ultimate 日本語版
Windows Vista

Microsoft(R) Windows Vista(R) Business 日本語版

Microsoft(R) Windows Vista(R) Enterprise 日本語版

Microsoft(R) Windows(R) 7 Professional 日本語版 (32ビット版)
Windows 7

Microsoft(R) Windows(R) 7 Enterprise 日本語版 (32ビット版)

Microsoft(R) Windows(R) 7 Ultimate 日本語版 (32ビット版)

Microsoft(R) Windows(R) 7 Professional 日本語版 (64ビット版)

Microsoft(R) Windows(R) 7 Enterprise 日本語版 (64ビット版)

Microsoft(R) Windows(R) 7 Ultimate 日本語版 (64ビット版)

Windows(R) 8 Pro 日本語版（32ビット版）
Windows 8

Windows(R) 8 Pro 日本語版（64ビット版）

Windows(R) 8 Enterprise 日本語版（32ビット版）

Windows(R) 8 Enterprise 日本語版（64ビット版）

Microsoft(R) Office Word
Word

Microsoft(R) Word

活文 PDFstaff Runtime
PDFstaff Runtime

活文 PDFstaff SDK
PDFstaff SDK

このほか，このマニュアルでは，次に示す表記方法を使用しています。

DocumentBroker Development Kitの01-21以前のバージョンについては，Version 1と表記します。

AIXをUNIXと表記することがあります。

Windows Server 2003，Windows Server 2003 R2，Windows Server 2003 R2 x64 Edition，Windows Server 2008 x86，Windows Server 2008 R2，Windows Server 2012，Windows XP，Windows Vista，Windows 7，およびWindows 8を合わせてWindowsと表記することがあります。

uCosminexus DocumentBrokerのマニュアルで使用する略語

uCosminexus DocumentBrokerのマニュアルで使用する英略語を次に示します。

英略語 | 英字での表記
ACE | Access Control Element
ACFlag | Access Control Flag
ACL | Access Control List
AIIM | Association for Information and Image Management International
API | Application Programming Interface
ASCII | American Standard Code for Information Interchange
BES | Back End Server
BLOB | Binary Large Object
BMP | Bit Map
BNF | Backus Normal Form
BOA | Basic Object Adapter
CD-ROM | Compact Disc Read Only Memory
CGI | Common Gateway Interface
CORBA | Common Object Request Broker Architecture
CPU | Central Processing Unit
CR | Carriage Return
CSV | Comma Separated Value
DAP | Directory Access Protocol
DAT | Digital Audio Tape
DB | Database
DBMS | Database Management System
DCD | Document Content Description
DDE | Dynamic Data Exchange
DIT | Directory Information Tree
DLL | Dynamic Linking Library
DMA | Document Management Alliance
DN | Distinguished Name
EOF | End of File
ESIS-B | Element Structure Information Set-Binary Format
EUC | Extended UNIX Code
FAM | File Access Module
GIF | Graphics Interchange Format
GUI | Graphical User Interface
GUID | Globally Unique Identifier
HTML | Hypertext Markup Language
HTTP | Hypertext Transfer Protocol
IANA | Internet Assigned Numbers Authority
ID | Identifier
IPF | Itanium(R) Processor Family
ISO | International Organization for Standardization
JIS | Japanese Industrial Standards
JPEG | Joint Photographic Expert Group
LAN | Local Area Network
LDAP | Lightweight Directory Access Protocol
LF | Line Feed
MFC | Microsoft Foundation Class
MIME | Multipurpose Internet Mail Extensions
OCR | Optical Character Reader
OIID | Object Instance Identifier
OLE | Object Linking and Embedding
OMG | Object Management Group
ORB | Object Request Broker
ORDB | Object Relational Database
OS | Operating System
OTS | Object Transaction Service
PC | Personal Computer
PDF | Portable Document Format
RDB | Relational Database
RDN | Relative Distinguished Name
RFC | Request for Comment
RTF | Rich Text Format
SGML | Standard Generalized Markup Language
SQL | Structured Query Language
TCP/IP | Transmission Control Protocol/Internet Protocol
TIFF | Tag Image File Format
UNC | Universal Naming Convention
UOC | User Own Coding
URL | Uniform Resource Locator
UTC | Universal Time Coordinated
UTF-8 | 8-bit UCS Transformation Format
W3C | World Wide Web Consortium
WWW | World Wide Web
XML | Extensible Markup Language

このマニュアルで使用する記号

このマニュアルで使用する記号を次に示します。

記号
意味

　｜
横に並べられた複数の項目に対する項目間の区切りを示し，「または」を意味します。
（例）　A｜B
　AまたはBを指定することを示します。

　＿
括弧で囲まれた複数項目のうち1項目に対し使用され，括弧内のすべてを省略したときシステムが取る標準値を示します。
（例）　〔A｜B〕
　「何も指定しない」か「AまたはBを指定する」ことを示します。何も指定しない場合はAが仮定されます。

｛　｝
この記号で囲まれている複数の項目のうちから一つを選択することを示します。項目が横に並べられ，記号｜で区切られている場合は，そのうちの一つを選択します。
（例）　｛A｜B｜C｝
　A，BまたはCのどれかを指定することを示します。

〔　〕
この記号で囲まれている項目は省略してもよいことを示します。複数の項目が横に並べて記述されている場合には，すべてを省略するか，記号｛ ｝と同じくどれか一つを選択します。
（例１）　〔A〕
　「何も指定しない」か「Aを指定する」ことを示します。
（例２）　〔B｜C〕
　「何も指定しない」か「BまたはCを指定する」ことを示します。

：：＝
この記号の左にあるものを右にあるもので定義することを示します。
（例）　A：：＝B
　「AとはBである」と定義することを示します。

　…
記述が省略されていることを示します。
（例）ABC…
　ABCの後ろに記述があり，その記述が省略されていることを示します。

<　>
この記号で囲まれている項目は，該当する要素を指定することを示します。
（例）　<プロパティ>
　プロパティを記述します。

(　)
この記号で囲まれている項目を省略しないで記述することを示します。
（例）　(<プロパティ>)
　項目<プロパティ>は省略しないで記述します。

　...
この記号の直前に示す記号を繰り返し，複数個指定できることを示します。
（例）　(<プロパティ>)...
　プロパティは一つ以上で複数個，繰り返して指定できます。

このマニュアルで使用する構文要素

このマニュアルで使用する構文要素の種類を次に示します。

種類 | 定義
英字 | A～Z　a～z
英小文字 | a～z
英大文字 | A～Z
数字 | 0～9
英数字 | A～Z　a～z　0～9
記号 | !　"　#　$　%　&　'　(　)　+　,　_　・　.　/　:　;　<　=　>　@　[　]　^　－　｛　｝　￣　タブ　空白

注　すべて半角文字を使用してください。

このマニュアルの図中で使用する記号

このマニュアルの図中で使用する記号を，次のように定義します。

常用漢字以外の漢字の使用について

このマニュアルでは，常用漢字を使用することを基本としていますが，次に示す用語については，常用漢字以外の漢字を使用しています。

個所（かしょ），必須（ひっす）

KB（キロバイト）などの単位表記について

1KB（キロバイト），1MB（メガバイト），1GB（ギガバイト），1TB（テラバイト）はそれぞれ1,024バイト，1,024²バイト，1,024³バイト，1,024⁴バイトです。

DocumentBroker Version 2とuCosminexus DocumentBroker Version 3の製品体系の違い

uCosminexus DocumentBroker Version 3では次のように製品の統合を行いました。

DocumentBroker RepositoryをuCosminexus DocumentBroker Serverに統合しました。

DocumentBroker Web ComponentをuCosminexus DocumentBroker Development KitおよびuCosminexus DocumentBroker Runtimeに統合しました。

DocumentBroker Version 2とuCosminexus DocumentBroker Version 3の製品体系の違いを次に示します。

DocumentBroker Version 2とuCosminexus DocumentBroker Version 3のマニュアルの対応

バージョンアップおよび製品体系の変更に伴い，uCosminexus DocumentBroker Version 3では次に示すようにマニュアル名称を変更しました。

Version 2のマニュアル名称 | Version 3のマニュアル名称
DocumentBroker Version 2　システム導入・運用ガイド | uCosminexus DocumentBroker Version 3　システム導入・運用ガイド
DocumentBroker Version 2　クラスライブラリ　解説 | uCosminexus DocumentBroker Version 3　クラスライブラリ　C++　解説
DocumentBroker Version 2　クラスライブラリ　リファレンス　基本機能編 | uCosminexus DocumentBroker Version 3　クラスライブラリ　C++　リファレンス　基本機能編
DocumentBroker Version 2　クラスライブラリ　リファレンス　概念SGML文書管理機能編 | 廃版
DocumentBroker Version 2　オブジェクト操作ツール | uCosminexus DocumentBroker Version 3　オブジェクト操作ツール
DocumentBroker Version 2　統計解析ツール | uCosminexus DocumentBroker Version 3　統計解析ツール
DocumentBroker Version 2　メッセージ | uCosminexus DocumentBroker Version 3　メッセージ
DocumentBroker Web Component Version 2　解説 | uCosminexus DocumentBroker Version 3　クラスライブラリ　Java　解説
DocumentBroker Web Component Version 2　リファレンス | uCosminexus DocumentBroker Version 3　クラスライブラリ　Java　リファレンス
DocumentBroker Web Component Version 2　サンプルWebアプリケーション | uCosminexus DocumentBroker Version 3　クラスライブラリ　Java　サンプルWebアプリケーション
DocumentBroker Text Search Index Loader Version 2 | uCosminexus DocumentBroker Text Search Index Loader Version 3
DocumentBroker Rendering Option　システム導入・運用ガイド | uCosminexus DocumentBroker Rendering Option Version 3
DocumentBroker Object Loader Version 2 | uCosminexus DocumentBroker Object Loader Version 3

1.　クラスライブラリのクラス，メソッドおよび関数

クラスライブラリのクラス，メソッドおよび関数を一覧形式で示します。

＜この章の構成＞

1.1　クラス一覧

1.2　メソッド一覧

1.3　関数一覧

1.1　クラス一覧

クラスライブラリで提供するクラスの一覧を次の表に示します。なお，それぞれのクラスの使用方法については，参照先欄に示す個所（マニュアル「DocumentBroker Version 3　クラスライブラリ　C++　解説」の章・節・項番号と標題）で説明しています。

表1-1　クラスライブラリで提供するクラス一覧

クラス名
説明
「DocumentBroker Version 3　クラスライブラリ　C++　解説」の
参照先

文書空間と接続するためのクラス

CdbrSessionクラス
クライアント実行環境と文書空間との接続を管理する機能を提供するクラスです。また，ログイン管理もします。
2.3　文書空間との接続（セッションの確立）

文書を作成，管理するためのクラス

CdbrVersionableDocumentクラス
DocumentBrokerで扱う文書のうち，バージョン管理をする文書を作成および管理する機能を提供するクラスです。
3.2　クラスライブラリで扱う文書

CdbrDocumentクラス
DocumentBrokerで扱う文書のうち，バージョン管理をしない文書や，バージョン管理をしている文書の個々のバージョンに当たる文書を作成および管理する機能を提供するクラスです。

複数の文書をまとめて管理するためのクラス

CdbrReferentialContainerクラス
文書をコンテナによって包含して管理する機能を提供するクラスです。
3.9　コンテナを使用した文書管理

文書の構成管理をするためのクラス

CdbrConfiguratedReferentialContainerクラス
コンテナを使用して文書やコンテナのバージョン構成を管理したり，コンテナ自身のバージョンを管理したりする機能を提供するクラスです。
3.10　構成管理コンテナを使用した文書の構成管理

CdbrVersionTraceableContainerクラス
コンテナを使用して文書やコンテナのバージョン構成を管理する機能を提供するクラスです。また，バージョン管理しているコンテナの，個々のバージョンに当たるコンテナを操作する機能を提供します。

XML文書を管理するためのクラス

CdbrXmlTranslatorクラス
XMLプロパティマッピングに使用する定義ファイル類を解析して，XML文書管理機能を実行するための環境を管理する機能を提供するクラスです。
3.11　XML文書の管理

CdbrXmlTranslatorFactoryクラス
XML文書管理を実行する機能を提供するクラスです。

独立データを管理するためのクラス

CdbrIndependentPersistenceクラス
独立したデータを扱う機能を提供するクラスです。
3.13　独立データの管理

文書やコンテナを検索するためのクラス

CdbrEqlStatementクラス
edmSQLを基にした検索を実行する機能や，検索結果を取得する機能を提供するクラスです。
4.　オブジェクトの検索

可変長な一次元配列を扱うためのクラス

CdbrCompoundクラス
異なる型の複数のデータから構成される複合データを扱う機能を提供するクラスです。
2.6.7　VariableArray型プロパティの操作

CdbrVariableArrayクラス
同じ型の複数の要素から構成される可変長の配列を扱う機能を提供するクラスです。なお，このクラスで扱うことができる同じ型の要素とは，CdbrCompoundクラスを基に作成されたCdbrCompoundオブジェクトだけです。

アクセス制御リストを管理するためのクラス

CdbrPublicACLクラス
アクセス制御リストを管理して，これを複数の文書やコンテナで共有して使用する機能を提供するクラスです。
3.15　アクセス制御

サブクラスに共通な機能を継承させるためのクラス（抽象クラス）

CdbrContainableクラス
コンテナの包含要素になる機能を提供するクラスです。
2.5.4　抽象クラス

CdbrCoreクラス
クラスライブラリのクラスのうち，CdbrVariableArrayクラスおよびCdbrCompoundクラス以外のすべてのクラスのスーパークラスです。エラー管理機能を持ちます。

CdbrDMAクラス
DMAのオブジェクトモデルのdmaClass_DMAクラスに対応するクラスです。OIIDの取得およびプロパティの参照や設定をするメソッドを定義します。

CdbrVersionableクラス
バージョン管理機能を提供するクラスです。

クラスライブラリで提供しているこれらのクラスには継承関係があり，上位にあるクラスで定義したプロパティやメソッドは下位のクラスに継承されます。クラスの継承関係を，次の図に示します。

図1-1　クラスの継承関係

1.2　メソッド一覧

この節では，クラスライブラリの各クラスで提供するメソッドの一覧を示します。

メソッドは，上位のクラスで定義されたものがサブクラスに継承されます。例えば，CdbrDocumentクラスでは，CdbrDocumentクラスで定義されているメソッドのほか，スーパークラスであるCdbrCoreクラス，CdbrDMAクラスおよびCdbrContainableクラスで定義されているメソッドも使用できます。

なお，クラスおよびメソッドは，アルファベット順に説明します。

＜この節の構成＞

(1)　CdbrCompoundクラス

(2)　CdbrConfiguratedReferentialContainerクラス

(3)　CdbrContainableクラス

(4)　CdbrCoreクラス

(5)　CdbrDMAクラス

(6)　CdbrDocumentクラス

(7)　CdbrEqlStatementクラス

(8)　CdbrIndependentPersistenceクラス

(9)　CdbrPublicACLクラス

(10)　CdbrReferentialContainerクラス

(11)　CdbrSessionクラス

(12)　CdbrVariableArrayクラス

(13)　CdbrVersionableクラス

(14)　CdbrVersionableDocumentクラス

(15)　CdbrVersionTraceableContainerクラス

(16)　CdbrXmlTranslatorクラス

(17)　CdbrXmlTranslatorFactoryクラス

(1)　CdbrCompoundクラス

CdbrCompoundクラスのメソッド一覧を次の表に示します。

表1-2　CdbrCompoundクラスのメソッド一覧

メソッド | 機能
~CdbrCompound | デストラクタ
CdbrCompound | コンストラクタ
GetCount | 要素数の取得
GetDataType | 要素の型の取得
GetId | 要素IDの取得
GetValue | 値の取得
SetValue | 値の設定

(2)　CdbrConfiguratedReferentialContainerクラス

CdbrConfiguratedReferentialContainerクラスのメソッド一覧を次の表に示します。

表1-3　CdbrConfiguratedReferentialContainerクラスのメソッド一覧

メソッド | 機能
~CdbrConfiguratedReferentialContainer | デストラクタ
CdbrConfiguratedReferentialContainer | コンストラクタ
CreateObject | オブジェクトの新規作成
GetContainableList | 包含しているContainableオブジェクトの一覧取得
GetContainableListAndLock | 包含しているContainableオブジェクトの一覧取得と同時に指定したロックの設定
GetLinkPropertyValues | リンクのプロパティの取得
GetLinkPropertyValuesAndLock | リンクのプロパティの取得と同時に指定したロックの設定
GetVTContaineeList | 構成管理しているオブジェクトの一覧取得
GetVTContaineeListAndLock | 構成管理しているオブジェクトの一覧取得と同時に指定したロックの設定
Link | Containableオブジェクトとの関連づけ
LinkAndLock | Containableオブジェクトとの関連づけと同時に指定したロックの設定
LinkVTFix | 構成管理するオブジェクトのFIXモードでの関連づけ
LinkVTFixAndLock | 構成管理するオブジェクトのFIXモードでの関連づけと同時に指定したロックの設定
LinkVTFloat | 構成管理するオブジェクトのFLOATINGモードでの関連づけ
LinkVTFloatAndLock | 構成管理するオブジェクトのFLOATINGモードでの関連づけと同時に指定したロックの設定
PutLinkPropertyValues | リンクのプロパティの設定
SetVTFix | 構成要素のバージョンの固定
SetVTFloat | 構成要素のバージョン固定の解除
Unlink | Containableオブジェクトとの関連づけの解除
UnlinkAndLock | Containableオブジェクトとの関連づけの解除と同時に指定したロックの設定
UnlinkVT | 構成管理しているオブジェクトとの関連づけの解除
UnlinkVTAndLock | 構成管理しているオブジェクトとの関連づけの解除と同時に指定したロックの設定

(3)　CdbrContainableクラス

CdbrContainableクラスのメソッド一覧を次の表に示します。

表1-4　CdbrContainableクラスのメソッド一覧

メソッド | 機能
~CdbrContainable | デストラクタ
BindPublicACL | パブリックACLのバインド
CdbrContainable | コンストラクタ
GetContainerList | コンテナの一覧取得
GetContainerListAndLock | コンテナの一覧取得と同時に指定したロックの設定
GetPublicACLList | バインドしているパブリックACL一覧情報の取得
GetPublicACLListAndLock | バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定
UnbindPublicACL | パブリックACLのアンバインド

(4)　CdbrCoreクラス

CdbrCoreクラスのメソッド一覧を次の表に示します。

表1-5　CdbrCoreクラスのメソッド一覧

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

(5)　CdbrDMAクラス

CdbrDMAクラスのメソッド一覧を次の表に示します。

表1-6　CdbrDMAクラスのメソッド一覧

メソッド | 機能
~CdbrDMA | デストラクタ
CdbrDMA | コンストラクタ
ConnectObject | オブジェクトを指定したモードでロックして接続
GetOIID | OIIDの取得
GetPropertyValues | プロパティの取得
GetPropertyValuesAndLock | プロパティの取得と同時に指定したロックの設定
GetType | オブジェクトの種別の取得
PutPropertyValues | プロパティの設定
ReleaseObject | オブジェクトとの接続の解除
RemoveObject | オブジェクトの削除
SetOIID | OIIDの設定

(6)　CdbrDocumentクラス

CdbrDocumentクラスのメソッド一覧を次の表に示します。

表1-7　CdbrDocumentクラスのメソッド一覧

メソッド | 機能
~CdbrDocument | デストラクタ
AddRendition | レンディションの追加
CdbrDocument | コンストラクタ
ChangeMasterRendition | マスタレンディションへの変更
ConvertContentType | コンテント種別の変換
CreateIndex | 全文検索インデクスの作成
CreateObject | オブジェクトの新規作成
CreateRelation | 文書間リレーションの設定
DeleteRendition | レンディションの削除
GetContent | ファイルの取得
GetContentAndLock | ファイルの取得と同時に指定したロックの設定
GetContentInfo | マルチファイル文書の情報の取得
GetRelationList | 文書のリレーション情報の一覧取得
GetRelationListAndLock | 文書のリレーション情報の一覧取得と同時に指定したロックの設定
GetRenditionList | レンディション一覧の取得
GetRenditionListAndLock | レンディション一覧の取得と同時に指定したロックの設定
GetVersionableList | バージョン管理情報一覧の取得
GetVersionableListAndLock | バージョン管理情報一覧の取得と同時に指定したロックの設定
PutRelationPropertyValues | 文書間リレーションのプロパティの設定
PutRenditionPropertyValues | レンディションのプロパティの設定
RemoveIndex | 全文検索インデクスの削除
RemoveRelation | 文書間リレーションの解除
UpdateContent | ファイルの更新
UpdateContentAndRenditionType | ファイルの更新およびRenditionTypeの変更

(7)　CdbrEqlStatementクラス

CdbrEqlStatementクラスのメソッド一覧を次の表に示します。

表1-8　CdbrEqlStatementクラスのメソッド一覧

メソッド | 機能
~CdbrEqlStatement | デストラクタ
CdbrEqlStatement | コンストラクタ
ChangeACLMode | アクセス制御モードの変更
ChangeGetObjCount | 検索結果の取得件数の変更
ChangeLockType | ロック種別の変更
DeleteResult | 検索結果の削除
Execute | 設定済みedmSQL文の実行
GetACLMode | アクセス制御モードの取得
GetResult | 検索結果の取得
Initialize | オブジェクトの初期化とセッションオブジェクトへの登録
Set | edmSQL文の設定
SetObjParam | edmSQL文の?パラメタ（DMAオブジェクト）の設定
SetOIIDParam | edmSQL文の?パラメタ（OIID）の設定
SetParam | edmSQL文の?パラメタの設定
Terminate | セッションオブジェクトへの登録抹消

(8)　CdbrIndependentPersistenceクラス

CdbrIndependentPersistenceクラスのメソッド一覧を次の表に示します。

表1-9　CdbrIndependentPersistenceクラスのメソッド一覧

メソッド | 機能
~CdbrIndependentPersistence | デストラクタ
BindPublicACL | パブリックACLのバインド
CdbrIndependentPersistence | コンストラクタ
CreateObject | オブジェクトの新規作成
GetPublicACLList | バインドしているパブリックACL一覧情報の取得
GetPublicACLListAndLock | バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定
UnbindPublicACL | パブリックACLのアンバインド

(9)　CdbrPublicACLクラス

CdbrPublicACLクラスのメソッド一覧を次の表に示します。

表1-10　CdbrPublicACLクラスのメソッド一覧

メソッド | 機能
~CdbrPublicACL | デストラクタ
CdbrPublicACL | コンストラクタ
CreateObject | パブリックACLの新規作成
GetBindObjectList | バインドしているオブジェクトの一覧情報の取得
GetBindObjectListAndLock | バインドしているオブジェクトの一覧情報の取得と同時に指定したロックの設定

(10)　CdbrReferentialContainerクラス

CdbrReferentialContainerクラスのメソッド一覧を次の表に示します。

表1-11　CdbrReferentialContainerクラスのメソッド一覧

メソッド | 機能
~CdbrReferentialContainer | デストラクタ
CdbrReferentialContainer | コンストラクタ
CreateObject | オブジェクトの新規作成
GetContainableList | 包含要素の一覧取得
GetContainableListAndLock | 包含要素の一覧取得と同時に指定したロックの設定
GetLinkPropertyValues | リンクのプロパティの取得
GetLinkPropertyValuesAndLock | リンクのプロパティの取得と同時に指定したロックの設定
Link | 関連づけの設定
LinkAndLock | 関連づけの設定と同時に指定したロックの設定
PutLinkPropertyValues | リンクのプロパティの設定
Unlink | 関連づけの解除
UnlinkAndLock | 関連づけの解除と同時に指定したロックの設定

(11)　CdbrSessionクラス

CdbrSessionクラスのメソッド一覧を次の表に示します。

表1-12　CdbrSessionクラスのメソッド一覧

メソッド | 機能
~CdbrSession | デストラクタ
Begin | トランザクションの開始
CdbrSession | コンストラクタ
Commit | 永続オブジェクトの確定
Connect | DocSpaceとの接続
Disconnect | セッションの切断
GetClassType | 指定したOIIDのクラスの判定
GetDocSpaceCharacterSet | 接続する文書空間の文字コード種別の取得
GetLastDetailError | 詳細エラー情報の取得
GetReferencePath | コンテント格納先ベースパスの取得
GetUserInfo | ユーザ情報の取得
OrbComponentShutdown | TPBrokerのORBコンポーネントの終了
OrbComponentStart | TPBrokerのORBコンポーネントの開始
Rollback | 最後にCdbrSession::Commitメソッドがコールされた状態まで戻す
SetReferencePath | コンテント格納先ベースパスの設定

(12)　CdbrVariableArrayクラス

CdbrVariableArrayクラスのメソッド一覧を次の表に示します。

表1-13　CdbrVariableArrayクラスのメソッド一覧

メソッド | 機能
~CdbrVariableArray | デストラクタ
Add | 要素の追加
CdbrVariableArray | コンストラクタ
Delete | 要素の削除
GetCount | 要素数の取得
GetDataType | 要素の型の取得
GetValue | 値の取得
Resize | 要素数の変更
SetValue | 値の設定

(13)　CdbrVersionableクラス

CdbrVersionableクラスのメソッド一覧を次の表に示します。

表1-14　CdbrVersionableクラスのメソッド一覧

メソッド | 機能
~CdbrVersionable | デストラクタ
BindPublicACL | パブリックACLのバインド（バージョン指定あり）
CdbrVersionable | コンストラクタ
DeleteVersion | バージョンの削除
GetPropertyValues | プロパティの取得（バージョン指定あり）
GetPropertyValuesAndLock | プロパティの取得と同時に指定したロックの設定（バージョン指定あり）
GetPublicACLList | バインドしているパブリックACL一覧情報の取得（バージョン指定あり）
GetPublicACLListAndLock | バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定（バージョン指定あり）
GetReservationStatus | チェックアウト状態の取得
GetReservationStatusAndLock | チェックアウト状態の取得と同時に指定したロックの設定
GetVersionList | バージョン情報一覧の取得
GetVersionListAndLock | バージョン情報一覧の取得と同時に指定したロックの設定
PutPropertyValues | プロパティの設定（バージョン指定あり）
UnbindPublicACL | パブリックACLのアンバインド（バージョン指定あり）
VersionCheckIn | バージョンのチェックイン
VersionCheckOut | バージョンのチェックアウト
VersionRevoke | チェックアウトの取り消し

(14)　CdbrVersionableDocumentクラス

CdbrVersionableDocumentクラスのメソッド一覧を次の表に示します。

表1-15　CdbrVersionableDocumentクラスのメソッド一覧

メソッド | 機能
~CdbrVersionableDocument | デストラクタ
AddRendition | レンディションの追加
CdbrVersionableDocument | コンストラクタ
ChangeMasterRendition | マスタレンディションへの変更
ConvertContentType | コンテント種別の変換
CreateIndex | 全文検索インデクスの作成
CreateObject | オブジェクトの新規作成
CreateRelation | 文書間リレーションの設定
DeleteRendition | レンディションの削除
GetContent | ファイルの取得
GetContentAndLock | ファイルの取得と同時に指定したロックの設定
GetContentInfo | マルチファイル文書の情報の取得
GetRelationList | 文書のリレーション情報の一覧取得
GetRelationListAndLock | 文書のリレーション情報の一覧取得と同時に指定したロックの設定
GetRenditionList | レンディション一覧の取得
GetRenditionListAndLock | レンディション一覧の取得と同時に指定したロックの設定
PutRelationPropertyValues | 文書間リレーションのプロパティの設定
PutRenditionPropertyValues | レンディションのプロパティの設定
RemoveIndex | 全文検索インデクスの削除
RemoveRelation | 文書間リレーションの解除
UpdateContent | ファイルの更新
UpdateContentAndRenditionType | ファイルの更新およびRenditionTypeの変更

(15)　CdbrVersionTraceableContainerクラス

CdbrVersionTraceableContainerクラスのメソッド一覧を次の表に示します。

表1-16　CdbrVersionTraceableContainerクラスのメソッド一覧

メソッド | 機能
~CdbrVersionTraceableContainer | デストラクタ
CdbrVersionTraceableContainer | コンストラクタ
CreateObject | オブジェクトの新規作成
GetVersionableList | バージョン管理情報一覧の取得
GetVersionableListAndLock | バージョン管理情報一覧の取得と同時に指定したロックの設定
GetVTContaineeList | 構成管理しているオブジェクトの一覧取得
GetVTContaineeListAndLock | 構成管理しているオブジェクトの一覧取得と同時に指定したロックの設定
LinkVTFix | 構成管理するオブジェクトのFIXモードでの関連づけ
LinkVTFixAndLock | 構成管理するオブジェクトのFIXモードでの関連づけと同時に指定したロックの設定
LinkVTFloat | 構成管理するオブジェクトのFLOATINGモードでの関連づけ
LinkVTFloatAndLock | 構成管理するオブジェクトのFLOATINGモードでの関連づけと同時に指定したロックの設定
SetVTFix | 構成要素のバージョンの固定
SetVTFixAndLock | 構成要素のバージョンの固定と同時に指定したロックの設定
SetVTFloat | 構成要素のバージョン固定の解除
SetVTFloatAndLock | 構成要素のバージョン固定の解除と同時に指定したロックの設定
UnlinkVT | 構成管理しているオブジェクトとの関連づけの解除
UnlinkVTAndLock | 構成管理しているオブジェクトとの関連づけの解除と同時に指定したロックの設定

(16)　CdbrXmlTranslatorクラス

CdbrXmlTranslatorクラスのメソッド一覧を次の表に示します。

表1-17　CdbrXmlTranslatorクラスのメソッド一覧

メソッド | 機能
~CdbrXmlTranslator | デストラクタ
CdbrXmlTranslator | コンストラクタ
GetDmaInfoList | DMA情報の取得
GetIndexData | 検索インデクス作成用データの取得

(17)　CdbrXmlTranslatorFactoryクラス

CdbrXmlTranslatorFactoryクラスのメソッド一覧を次の表に示します。

表1-18　CdbrXmlTranslatorFactoryクラスのメソッド一覧

メソッド | 機能
~CdbrXmlTranslatorFactory | デストラクタ
CdbrXmlTranslatorFactory | コンストラクタ
CreateTranslator | CdbrXmlTranslatorオブジェクトの生成
Initialize | オブジェクトの初期化

1.3　関数一覧

クラスライブラリで提供する関数の一覧を次の表に示します。

表1-19　クラスライブラリで提供する関数の一覧

関数名 | 説明
dbrDelete | メモリの解放
dbrDmaIdFromString | 文字列からDmaId型への変換

2.　クラスライブラリで使用するデータ型とクラスおよびメソッドの記述形式

クラスライブラリで使用するデータ型と，このマニュアルでのクラスおよびメソッドの記述形式について説明します。

＜この章の構成＞

2.1　クラスライブラリで使用するデータ型

2.2　クラスおよびメソッドの記述形式

2.1　クラスライブラリで使用するデータ型

データ型はDMA1.0の定義に従います。このマニュアルで使用する型の定義を次の表に示します。

表2-1　使用するデータ型

名前
定義
備考

DmaBoolean
unsigned short
－

DmaId
struct DmaId {
DmaUInteger32 Data1;
DmaUInteger16 Data2;
DmaUInteger16 Data3;
DmaUInteger8 Data4[8];
};
GUID
(Globally Unique Identifiers)

DmaInteger8
signed char
－

DmaInteger16
short
－

DmaInteger32
long
－

Dmapv
void *
－

DmaTChar
char
－

DmaUInteger8
unsigned char
－

DmaUInteger16
unsigned short
－

DmaUInteger32
unsigned long
－

pDmaBinary
pDmaUInteger8
DmaBinaryはない

pDmaBoolean
DmaBoolean *
－

pDmaId
DmaId *
－

pDmaInteger8
DmaInteger8 *
－

pDmaInteger16
DmaInteger16 *
－

pDmaInteger32
DmaInteger32 *
－

pDmapv
Dmapv *
－

pDmaString_T
DmaTChar*
DmaString_Tはない

pDmaUInteger8
DmaUInteger8 *
－

pDmaUInteger16
DmaUInteger16 *
－

pDmaUInteger32
DmaUInteger32 *
－

ppDmaBinary
pDmaBinary *
－

ppDmaBoolean
pDmaBoolean *
－

ppDmaId
pDmaId *
－

ppDmaInteger8
pDmaInteger8 *
－

ppDmaInteger16
pDmaInteger16 *
－

ppDmaInteger32
pDmaInteger32 *
－

ppDmaString_T
pDmaString_T*
－

ppDmaUInteger8
pDmaUInteger8 *
－

ppDmaUInteger16
pDmaUInteger16 *
－

ppDmaUInteger32
pDmaUInteger32 *
－

（凡例）

－：なし

注　pはポインタ，ppはポインタへのポインタを意味します。

2.2　クラスおよびメソッドの記述形式

この節では，それぞれのクラスおよびメソッドで説明する項目の記述形式について示します。

各クラスの説明では，そのクラスで定義されるメソッドについてだけ説明しています。上位のクラスで定義されているメソッドについては，定義元のクラスを参照してください。

クラスで説明する項目
クラスの説明では，次の項目について説明しています。

スーパークラス

最上位からそのクラスまでの継承関係とともにスーパークラスを概念図で示しています。

プロパティ一覧

クラスライブラリで定義されているプロパティ一覧を記述しています。

プロパティ一覧の例を次の表に示します。

表2-2　プロパティ一覧の例

プロパティ名 | プロパティ識別子 | データ型 | 読み取り専用
X | dbrProp_X | Integer32 | ○

プロパティ名

プロパティの名称を記述しています。

プロパティ識別子

プロパティのシステムIDを記述しています。

データ型

プロパティのデータ型について記述しています。

読み取り専用

読み取り専用のプロパティか編集できるプロパティかを記述しています。

○：読み取り専用のプロパティであることを示します。

－：編集できるプロパティであることを示します。

プロパティ詳細

各プロパティ値の詳細について説明しています。上位のクラスから継承されたプロパティについては，プロパティ名だけを記述しています。上位のクラスから継承されたプロパティの値の詳細については，継承元のプロパティ詳細を参照してください。

なお，DMAで規定されているプロパティについては，「付録B　DMAオブジェクトのプロパティ」を参照してください。

メソッド一覧

上位のクラスから継承されるメソッドおよびそのクラスで導入されるメソッドを，クラス別に表形式で示しています。

クラスの説明に続けて，そのクラスで導入されるメソッドをメソッド名のアルファベット順に説明しています。上位のクラスから継承されるメソッドの詳細については，継承元クラスのメソッドの説明を参照してください。

メソッドで説明する項目
メソッドの説明では，次の項目について説明しています。

機能

メソッドの概要を説明しています。

形式

メソッドの形式を説明しています。

詳細

メソッドの機能の詳細について説明しています。

引数

引数について次のように説明しています。

引数（入力）

指定する値について説明しています。

引数（出力）

指定した領域に設定される値について説明しています。

引数は「形式」で記述した文字列です。

省略可能であることを明記していない引数（構造体）は，すべて指定する必要があります。

（入力）は，クライアントが値を指定することを示しています。

（出力）は，DocumentBrokerによって設定される値を格納する領域をクライアントが指定することを示しています。

戻り値

メソッドをコールした結果として返されるコードについて説明しています。

戻り値の詳細

戻り値が「DMA_FALSE」の場合に設定される，詳細な内容を示すコードについて説明しています。なお，戻り値の詳細には，major_codeとminor_codeが設定されます。コードの体系については，「付録H　戻り値一覧」を参照してください。

3.　CdbrCompoundクラス（複合データを扱うクラス）

異なる型の複数のデータから構成される複合データを扱う機能を提供するクラスです。

主に，VariableArray型のプロパティのObject型要素に対して値を参照・設定するために使用します。

＜この章の構成＞

CdbrCompoundクラスの詳細

CdbrCompound::~CdbrCompoundメソッド

CdbrCompound::CdbrCompoundメソッド

CdbrCompound::GetCountメソッド

CdbrCompound::GetDataTypeメソッド

CdbrCompound::GetIdメソッド

CdbrCompound::GetValueメソッド

CdbrCompound::SetValueメソッド

CdbrCompoundクラスの詳細

スーパークラス

なし

プロパティ一覧

なし

ただし，アクセス制御情報を表すプロパティの要素として使用する場合，次に示すプロパティをCdbrCompoundクラスのプロパティとして使用します。

表3-1　CdbrCompoundクラスで使用するプロパティ

プロパティ名 | プロパティ識別子 | データ型 | 読み取り専用
Subject | dbrProp_Subject | String型 | ○
SubjectType | dbrProp_SubjectType | Integer32型 | ○
Permission | dbrProp_Permission | Integer32型 | ○
ACLIdElem | dbrProp_ACLIdElem | String型 | ○

プロパティ詳細

dbrProp_ACLプロパティ，dbrProp_SACLプロパティの要素として使用する場合

Subject
ACLのサブジェクトを指定します。

SubjectType
ACLのサブジェクト種別を指定します。

Permission
ACLのパーミッションを指定します。

dbrProp_PublicACLIdsプロパティの要素として使用する場合

ACLIdElem
パブリックACLのOIIDを指定します。

メソッド一覧

CdbrCompoundクラスで導入されるメソッド

メソッド | 機能
~CdbrCompound | デストラクタ
CdbrCompound | コンストラクタ
GetCount | 要素数の取得
GetDataType | 要素の型の取得
GetId | 要素IDの取得
GetValue | 値の取得
SetValue | 値の設定

以降，CdbrCompoundクラスで導入されるメソッドについて説明します。

CdbrCompound::~CdbrCompoundメソッド

機能

デストラクタ

形式

~CdbrCompound ()

詳細

CdbrCompoundオブジェクトのデストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrCompound::CdbrCompoundメソッド

機能

コンストラクタ

形式

CdbrCompound ()

詳細

CdbrCompoundオブジェクトのコンストラクタです。

なお，生成直後，データの要素数は0です。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrCompound::GetCountメソッド

機能

要素数の取得

形式

DmaInteger32 GetCount()

詳細

複合データを構成する要素の個数を取得するメソッドです。要素がまったくない場合または要素の個数が算出できない場合は，戻り値に0が返ります。

引数

なし

戻り値

複合データの要素数（0以上）

戻り値の詳細

なし

CdbrCompound::GetDataTypeメソッド

機能

要素の型の取得

形式

DmaInteger32 GetDataType(
 pDmaId pId)

詳細

複合データを構成する要素のうち，pIdで指定した要素の型を取得するメソッドです。

引数

pId（入力）

型を取得する要素のIDを指定します。IDに該当する要素がない場合またはIDに該当する要素が取得できない場合は，戻り値に0が返ります。

戻り値

返却される値は次のとおりです。

DMA_DATATYPE_BOOLEAN：Boolean型

DMA_DATATYPE_ID：ID型

DMA_DATATYPE_INTEGER32：Integer32型

DMA_DATATYPE_STRING：String型

0：該当要素なし

戻り値の詳細

なし

CdbrCompound::GetIdメソッド

機能

要素IDの取得

形式

pDmaId GetId(
 DmaIndex32 iIndex)

詳細

iIndexに指定した位置の要素のIDを取得するメソッドです。エラーの場合，戻り値にNULLが返ります。

引数

iIndex（入力）

IDを取得する要素の位置を指定します。0～（要素数－１）の値を指定してください。範囲外の値を指定するとエラーになります。なお，要素の位置は要素数の増減によって変化する場合があります。

戻り値

IDのポインタ　正常終了

NULL 　異常終了

戻り値の詳細

なし

CdbrCompound::GetValueメソッド

機能

値の取得

形式

// Boolean型の場合
DmaBoolean GetValue(pDmaId pId, pDmaBoolean    pbRetValue)
// ID型の場合
DmaBoolean GetValue(pDmaId pId, pDmaId         pRetValue)
// Integer32型の場合
DmaBoolean GetValue(pDmaId pId, pDmaInteger32  plRetValue)
// String型の場合
DmaBoolean GetValue(pDmaId pId, ppDmaString_T  ppRetValue)

詳細

pIdに指定した要素の値を取得するメソッドです。

引数

pId（入力）

取得する構成要素のIDを指定します。該当する要素がない場合はエラーになります。

pbRetValue, pRetValue, plRetValue, ppRetValue（出力）

取得した値が設定されます。値を格納する領域のアドレスを指定してください。

指定した領域の型と要素の型が異なる場合はエラーになります。取得するString型プロパティに初期値としてNULLが設定されている場合，戻り値にDMA_TRUEが返り，*ppRetValueにはNULLが返ります。

String型の場合，使用後にdbrDelete関数によって解放してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE 　異常終了

戻り値の詳細

なし

CdbrCompound::SetValueメソッド

機能

値の設定

形式

// Boolean型の場合
DmaBoolean SetValue(pDmaId pId, DmaBoolean   bNewValue)
// ID型の場合
DmaBoolean SetValue(pDmaId pId, DmaId&       rNewValue)
// Integer32型の場合
DmaBoolean SetValue(pDmaId pId, DmaInteger32 lNewValue)
// String型の場合
DmaBoolean SetValue(pDmaId pId, pDmaString_T pNewValue)

詳細

pIdで指定した要素に値を設定するメソッドです。

引数

pId（入力）

設定する要素のIDを指定します。IDに該当する要素がない場合，要素が新たに追加されます。要素がある場合，既存の値が上書きされます。

pIdにNULLを指定した場合およびString型のpNewValueにNULLを指定した場合はエラーになります。

bNewValue，rNewValue，lNewValue，pNewValue（入力）

設定する値を指定します。指定する引数の型によって要素の型が決定します。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

なし

4.　CdbrConfiguratedReferentialContainerクラス（バージョン付き構成管理コンテナを扱うクラス）

コンテナを使用して文書やコンテナのバージョン構成を管理したり，コンテナ自身のバージョンを管理したりする機能を提供するクラスです。

バージョン付き構成管理コンテナは，複数の構成要素をバージョン管理かつ構成管理できるコンテナです。また，バージョン付き構成管理コンテナ自身もバージョン管理および構成管理の対象になります。

＜この章の構成＞

CdbrConfiguratedReferentialContainerクラスの詳細

CdbrConfiguratedReferentialContainer::~CdbrConfiguratedReferentialContainerメソッド

CdbrConfiguratedReferentialContainer::CdbrConfiguratedReferentialContainerメソッド

CdbrConfiguratedReferentialContainer::CreateObjectメソッド

CdbrConfiguratedReferentialContainer::GetContainableListメソッド

CdbrConfiguratedReferentialContainer::GetContainableListAndLockメソッド

CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesメソッド

CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesAndLockメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListAndLockメソッド

CdbrConfiguratedReferentialContainer::Linkメソッド

CdbrConfiguratedReferentialContainer::LinkAndLockメソッド

CdbrConfiguratedReferentialContainer::LinkVTFixメソッド

CdbrConfiguratedReferentialContainer::LinkVTFixAndLockメソッド

CdbrConfiguratedReferentialContainer::LinkVTFloatメソッド

CdbrConfiguratedReferentialContainer::LinkVTFloatAndLockメソッド

CdbrConfiguratedReferentialContainer::PutLinkPropertyValuesメソッド

CdbrConfiguratedReferentialContainer::SetVTFixメソッド

CdbrConfiguratedReferentialContainer::SetVTFloatメソッド

CdbrConfiguratedReferentialContainer::Unlinkメソッド

CdbrConfiguratedReferentialContainer::UnlinkAndLockメソッド

CdbrConfiguratedReferentialContainer::UnlinkVTメソッド

CdbrConfiguratedReferentialContainer::UnlinkVTAndLockメソッド

CdbrConfiguratedReferentialContainerクラスの詳細

スーパークラス

プロパティ一覧

プロパティの一覧を次に示します。

表4-1　CdbrConfiguratedReferentialContainerクラスのプロパティ

プロパティ名 | プロパティ識別子 | データ型 | 読み取り専用
OIID | dmaProp_OIID | String型 | ○
ChildrenCount | dbrProp_ChildrenCount | Integer32型 | ○
ContaineesCount | dbrProp_ContaineesCount | Integer32型 | ○
ContaineesCountVT | dbrProp_ContaineesCountVT | Integer32型 | ○
ContainersCount | dbrProp_ContainersCount | Integer32型 | ○
ContainersCountVT | dbrProp_ContainersCountVT | Integer32型 | ○
CurrentVersion | dbrProp_CurrentVersion | String型 | ○
ParentCount | dbrProp_ParentCount | Integer32型 | ○
VersionsCount | dbrProp_VersionsCount | Integer32型 | ○

アクセス制御機能を使用している場合は，次のクラスライブラリの固有のプロパティが追加されます。

表4-2　CdbrConfiguratedReferentialContainerクラスのプロパティ（アクセス制御機能を使用する場合に追加されるクラスライブラリ固有のプロパティ）

プロパティ名
プロパティ識別子
データ型※¹
読み取り専用

OwnerId
dbrProp_OwnerId
String型
－※²

UserPermission
dbrProp_UserPermission
Integer32型
○

PrimaryGroupId
dbrProp_PrimaryGroupId
String型
－※³

ACL
dbrProp_ACL
Object型
（VariableArray型）
－※³

SACL
dbrProp_SACL
Object型
（VariableArray型）
－※²

OwnerPermission
dbrProp_OwnerPermission
Integer32型
－※³

PrimaryGroupPermission
dbrProp_PrimaryGroupPermission
Integer32型
－※³

EveryonePermission
dbrProp_EveryonePermission
Integer32型
－※³

PublicACLCount
dbrProp_PublicACLCount
Integer32型
○

PublicACLIds
dbrProp_PublicACLIds
Object型
（VariableArray型）
－※³

注※1

基本単位がScalar型以外の場合は，（　）に基本単位を示します。

注※2

変更は，そのオブジェクトの所有者およびセキュリティ管理者だけが実行できます。

注※3

変更は，そのオブジェクトの所有者，セキュリティACLでアクセス制御情報変更権を与えられたユーザ，およびセキュリティ管理者だけが実行できます。

プロパティ詳細

DMAで規定されているプロパティ

OIID
オブジェクトを識別するGUID文字列です。実体はDMAオブジェクトのOIIDです。

CdbrDMAクラスから継承されるプロパティ（アクセス制御機能を使用している場合）

OwnerId

UserPermission

これらのプロパティの詳細については，「CdbrDMAクラスの詳細」のプロパティ詳細を参照してください。

CdbrContainableクラスから継承されるプロパティ

ParentCount

ContainersCount

これらのプロパティの詳細については，「CdbrContainableクラスの詳細」のプロパティ詳細を参照してください。

CdbrContainableクラスから継承されるプロパティ（アクセス制御機能を使用している場合）

ACL

EveryonePermission

OwnerPermission

PrimaryGroupId

PrimaryGroupPermission

PublicACLCount

PublicACLIds

SACL

これらのプロパティの詳細については，「CdbrContainableクラスの詳細」のプロパティ詳細を参照してください。

CdbrVersionableクラスから継承されるプロパティ

VersionsCount

CurrentVersion

ContainersCountVT

これらのプロパティの詳細については，「CdbrVersionableクラスの詳細」のプロパティ詳細を参照してください。

CdbrConfiguratedReferentialContainerクラスで導入されるプロパティ

ChildrenCount
カレントバージョンに対応するオブジェクトが，直接型のコンテインメントで包含しているContainableオブジェクト（CdbrContainableクラスのサブクラスのオブジェクト）の個数を表します。直接型のコンテインメントとは，DMAオブジェクトのDirectContainmentRelationshipオブジェクトによって設定された関連づけです。

ContaineesCount
カレントバージョンに対応するオブジェクトが，参照型のコンテインメントで包含しているContainableオブジェクト（CdbrContainableクラスのサブクラスのオブジェクト）の個数を表します。参照型のコンテインメントとは，DMAオブジェクトのReferentialContainmentRelationshipオブジェクトによって設定された関連づけです。

ContaineesCountVT
カレントバージョンに対応するオブジェクトが，構成管理型のコンテインメントで包含している構成管理の対象となるオブジェクト（CdbrVersionableDocumentオブジェクトおよびCdbrConfiguratedReferentialContainerオブジェクト）の個数を表します。

なおこのほかに，CdbrConfiguratedReferentialContainerクラスでは，構成要素であるDMAオブジェクトを作成する基になるDMAのクラスのdmaClass_ConfigurationHistoryクラスとedmClass_ContainerVersionクラス，およびこれらのサブクラスのプロパティを参照，設定できます。DMAのクラスのプロパティについては，「付録B　DMAオブジェクトのプロパティ」を参照してください。

メソッド一覧

CdbrCoreクラスから継承されるメソッド

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

これらのメソッドの詳細については，「6.　CdbrCoreクラス（エラー情報を取得するクラス）」を参照してください。

CdbrDMAクラスから継承されるメソッド

メソッド | 機能
~CdbrDMA | デストラクタ
CdbrDMA | コンストラクタ
ConnectObject | オブジェクトを指定したモードでロックして接続
GetOIID | OIIDの取得
GetPropertyValues | プロパティの取得
GetPropertyValuesAndLock | プロパティの取得と同時に指定したロックの設定
GetType | オブジェクトの種別の取得
PutPropertyValues | プロパティの設定
ReleaseObject | オブジェクトとの接続の解除
RemoveObject | オブジェクトの削除
SetOIID | OIIDの設定

これらのメソッドの詳細については，「7.　CdbrDMAクラス（OIIDの設定やプロパティを扱うクラス）」を参照してください。

CdbrContainableクラスから継承されるメソッド

メソッド | 機能
~CdbrContainable | デストラクタ
BindPublicACL | パブリックACLのバインド
CdbrContainable | コンストラクタ
GetContainerList | コンテナの一覧取得
GetContainerListAndLock | コンテナの一覧取得と同時に指定したロックの設定
GetPublicACLList | バインドしているパブリックACL一覧情報の取得
GetPublicACLListAndLock | バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定
UnbindPublicACL | パブリックACLのアンバインド

これらのメソッドの詳細については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」を参照してください。

CdbrVersionableクラスから継承されるメソッド

メソッド | 機能
~CdbrVersionable | デストラクタ
BindPublicACL | パブリックACLのバインド（バージョン指定あり）
CdbrVersionable | コンストラクタ
DeleteVersion | バージョンの削除
GetPropertyValues | プロパティの取得（バージョン指定あり）
GetPropertyValuesAndLock | プロパティの取得と同時に指定したロックの設定（バージョン指定あり）
GetPublicACLList | バインドしているパブリックACL一覧情報の取得（バージョン指定あり）
GetPublicACLListAndLock | バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定（バージョン指定あり）
GetReservationStatus | チェックアウト状態の取得
GetReservationStatusAndLock | チェックアウト状態の取得と同時に指定したロックの設定
GetVersionList | バージョン情報一覧の取得
GetVersionListAndLock | バージョン情報一覧の取得と同時に指定したロックの設定
PutPropertyValues | プロパティの設定（バージョン指定あり）
UnbindPublicACL | パブリックACLのアンバインド（バージョン指定あり）
VersionCheckIn | バージョンのチェックイン
VersionCheckOut | バージョンのチェックアウト
VersionRevoke | チェックアウトの取り消し

これらのメソッドの詳細については，「15.　CdbrVersionableクラス（バージョン管理機能を提供するクラス）」を参照してください。

CdbrConfiguratedReferentialContainerクラスで導入されるメソッド

メソッド | 機能
~CdbrConfiguratedReferentialContainer | デストラクタ
CdbrConfiguratedReferentialContainer | コンストラクタ
CreateObject | オブジェクトの新規作成
GetContainableList | 包含しているContainableオブジェクトの一覧取得
GetContainableListAndLock | 包含しているContainableオブジェクトの一覧取得と同時に指定したロックの設定
GetLinkPropertyValues | リンクのプロパティの取得
GetLinkPropertyValuesAndLock | リンクのプロパティの取得と同時に指定したロックの設定
GetVTContaineeList | 構成管理しているオブジェクトの一覧取得
GetVTContaineeListAndLock | 構成管理しているオブジェクトの一覧取得と同時に指定したロックの設定
Link | Containableオブジェクトとの関連づけ
LinkAndLock | Containableオブジェクトとの関連づけと同時に指定したロックの設定
LinkVTFix | 構成管理するオブジェクトのFIXモードでの関連づけ
LinkVTFixAndLock | 構成管理するオブジェクトのFIXモードでの関連づけと同時に指定したロックの設定
LinkVTFloat | 構成管理するオブジェクトのFLOATINGモードでの関連づけ
LinkVTFloatAndLock | 構成管理するオブジェクトのFLOATINGモードでの関連づけと同時に指定したロックの設定
PutLinkPropertyValues | リンクのプロパティの設定
SetVTFix | 構成要素のバージョンの固定
SetVTFloat | 構成要素のバージョン固定の解除
Unlink | Containableオブジェクトとの関連づけの解除
UnlinkAndLock | Containableオブジェクトとの関連づけの解除と同時に指定したロックの設定
UnlinkVT | 構成管理しているオブジェクトとの関連づけの解除
UnlinkVTAndLock | 構成管理しているオブジェクトとの関連づけの解除と同時に指定したロックの設定

以降，CdbrConfiguratedReferentialContainerクラスで導入されるメソッドについて説明します。

CdbrConfiguratedReferentialContainer::~CdbrConfiguratedReferentialContainerメソッド

機能

デストラクタ

形式

virtual ~CdbrConfiguratedReferentialContainer()

詳細

CdbrConfiguratedReferentialContainerオブジェクトのデストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrConfiguratedReferentialContainer::CdbrConfiguratedReferentialContainerメソッド

機能

コンストラクタ

形式

CdbrConfiguratedReferentialContainer()

詳細

CdbrConfiguratedReferentialContainerオブジェクトのコンストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrConfiguratedReferentialContainer::CreateObjectメソッド

機能

オブジェクトの新規作成

形式

CdbrConfiguratedReferentialContainer::CreateObject(
   CdbrSession*       pDbrSession,
   DmaInteger32       lDMAInfoListCount,
   SDBR_DMAINFO*      pDMAInfoList,
   ppDmaString_T      ppOIID)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32       lCount;
   SDBR_PROP*         pItem;
};

// DMAオブジェクト生成用の構造体
struct SDBR_DMAINFO {
 DmaId                ClassId;
 SDBR_PROPLIST        PropList;
};

詳細

オブジェクトを新規に作成するメソッドです。

SetOIIDメソッドもしくはConnectObjectメソッドによってすでにオブジェクトと接続されている場合，またはこのメソッドがすでにコールされている場合は，既存の接続は変更されずに，このメソッドのコールがエラーになります。接続を終了するには，ReleaseObjectメソッドを実行してください。

引数

pDbrSession（入力）

CdbrSessionオブジェクトを指定します。

lDMAInfoListCount（入力）

pDMAInfoListで指定した配列の個数を指定します。負の値を指定した場合は，エラーになります。

pDMAInfoList（入力）

オブジェクトの構成要素として新規に作成するDMAオブジェクトの情報を格納した構造体である，SDBR_DMAINFO構造体を指定します。DMAオブジェクトの情報としてSDBR_DMAINFO構造体には，1番目の要素としてdmaClass_ConfigurationHistoryクラスまたはそのサブクラスの情報，2番目の要素としてedmClass_ContainerVersionクラスまたはそのサブクラスの情報を指定してください。

lDMAInfoListCountが正の整数のときにpDMAInfoListにNULLを指定すると，エラーになります。

SDBR_DMAINFO構造体については，「付録C.1(3)　SDBR_DMAINFO構造体（DMAオブジェクト生成用の構造体）」を参照してください。

プロパティ情報を指定するSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

なお，VariableArray型プロパティを設定するとき，次の場合はエラーになります。このとき，major_codeとしてERR_DMA，minor_codeとしてDMARC_BAD_VALUEが返却されます。

DocumentBrokerサーバのメタ情報ファイル（edms.ini）のdmaProp_MaximumElementsエントリの値に2以上の値を設定しているときに，このエントリの値を超えてVariableArray型プロパティの要素を指定した場合

DocumentSpace構成定義ファイルdocspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義があるときに，VariableArray型プロパティの要素の値として，範囲外の値や最大値を超えた値を指定した場合

それぞれのデータ型に対応する値の範囲については，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

ppOIID（出力）

作成したCdbrConfiguratedReferentialContainerオブジェクトのOIIDへのポインタが設定されます。なお，*ppOIIDがポイントするメモリは，ユーザプログラムでは解放しないでください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_ACLIB_OBJECT_INVALID
クラスライブラリのオブジェクトは無効です。
有効なクラスライブラリのオブジェクトを指定してください。

ERR_DBR
ERR_BAD_PERMISSION
不正なパーミッションが指定されました。
正しいパーミッションを指定してください。

ERR_DBR
ERR_BAD_SUBJECT_TYPE
不正なサブジェクト種別が指定されました。
正しいサブジェクト種別を指定してください。

ERR_DBR
ERR_INVALID_ACE
不正なアクセス制御エレメント（ACE）が指定されました。
ACEとして正しいCdbrCompoundオブジェクトを指定してください。

ERR_DBR
ERR_INVALID_ACE_COUNT
設定するアクセス制御エレメント（ACE）の個数が制限値を超えています。
ACEは64個以内で指定してください。

ERR_DBR
ERR_INVALID_PUBLICACL_COUNT
バインドするパブリックACLの個数が制限値を超えています。
パブリックACLは10個以内で指定してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_INVALID_SUBJECT_LENGTH
サブジェクトの長さが不正です。
次に示す範囲内でサブジェクトを指定してください。

サブジェクトの種別がユーザ識別子の場合，1文字以上，ユーザ識別子の最大長以下の文字列を指定してください。
ユーザ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がグループ識別子の場合，1文字以上，グループ識別子の最大長以下の文字列を指定してください。
グループ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がシステムサブジェクトの場合，1文字以上，254文字以下の文字列を指定してください。

ユーザ識別子とグループ識別子の最大長を拡張する方法の詳細は，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

ERR_DBR
ERR_NONEXISTS_PUBLICACL
指定されたパブリックACLは存在しません。
存在しないパブリックACLを指定しないで処理を再実行してください。

ERR_DBR
ERR_OBJECT_ALREADY_CONNECTED
オブジェクトはすでに接続されています。
この操作は実行できません。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DMA
DMARC_ACCESS_DENIED
要求された操作に対してアクセス権がありません。
正しいアクセス権を設定してください。

ERR_DMA
DMARC_BAD_CLASSID
指定された識別子は，利用できるオブジェクトのクラスではありません。
正しいクラス識別子を指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_BAD_PROPID
プロパティの識別子が不正です。
正しいプロパティ識別子を指定してください。

ERR_DMA
DMARC_BAD_VALUE
次のどれかの要因が考えられます。

プロパティやリストの値が，許容範囲外の値であるか，または最大値を超えました。

VariableArray型プロパティに設定する可変長配列の要素数が最大値を超えました。

docspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義がある場合に，VariableArray型プロパティの要素の値が，許容範囲外の値であるか，または最大値を超えました。

次のどれかの方法で対処してください。

プロパティやリストの値の範囲を見直してください。

VariableArray型プロパティに設定する可変長配列の要素数を見直してください。

VariableArray型プロパティの要素の値の範囲を見直してください。

ERR_DMA
DMARC_FAILED
操作が失敗しました。
時間を置いて再度実行するか，処理を見直してください。

ERR_DMA
DMARC_LOST_CONNECTION
現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。
文書空間に再接続してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NOT_FOUND
要求された要素が見つかりません。
正しいオブジェクトを設定してください。

ERR_DMA
DMARC_NOT_SUPPORTED
このセッションまたはオブジェクトではサポートされていないメソッドです。
この操作は実行できません。

ERR_DMA
DMARC_READ_ONLY
読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。
このプロパティの値は更新できません。

ERR_DMA
DMARC_TIMEOUT
制限時間を超過しました。
タイムアウトしました。

ERR_DMA
DMARC_UNEXPECTED
予期しないエラーが発生しました。
処理を終了してください。

ERR_DMA
EDMRC_NOT_INTRANSACTION
トランザクション外でメソッドが呼ばれました。
Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::GetContainableListメソッド

機能

包含しているContainableオブジェクトの一覧取得

形式

// 包含要素の一覧を取得する場合
DmaBoolean CdbrConfiguratedReferentialContainer::GetContainableList(
 pDmaBoolean          pbContinue,
 pDmaString_T         pVersionId,
 DmaInteger32         lContainmentType,
 DmaInteger32         lPropDefListCount,
 SDBR_PROPDEF*        pPropDefList,
 DmaInteger32         lObjListCount,
 SDBR_OBJLIST**       ppObjList )

// 種類別の包含要素の一覧とリンク情報を取得する場合
DmaBoolean CdbrConfiguratedReferentialContainer::GetContainableList(
 pDmaBoolean           pbContinue,
 pDmaString_T          pVersionId,
 DmaInteger32          lContainmentType,
 DmaInteger32          lClassType,
 DmaInteger32          lPropDefListCount,
 SDBR_PROPDEF*         pPropDefList,
 DmaInteger32          lLinkPropDefListCount,
 SDBR_PROPDEF*         pLinkPropDefList,
 DmaInteger32          lObjListCount,
 SDBR_LINKEDOBJLIST**  ppLinkedObjList )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

 // オブジェクト情報構造体
 struct SDBR_OBJINFO {
   pDmaString_T       pOIID;         // オブジェクトのOIID
   DmaInteger32       lType;         // オブジェクトの種別
   SDBR_PROPLIST      PropList;      // プロパティリスト構造体
 };

 // オブジェクトリスト構造体
 struct SDBR_OBJLIST {
    DmaInteger32      lCount;
    SDBR_OBJINFO*     pItem;
 };

// リンク付きオブジェクト情報構造体
struct SDBR_LINKEDOBJINFO{
 pDmaString_T   pOIID;         // オブジェクトのOIID
 pDmaString_T   lType;         // オブジェクトの種別
 pDmaString_T   pLinkId;       // リンク識別子
 SDBR_PROPLIST  PropList;      // オブジェクトのプロパティリスト
 SDBR_PROPLIST  LinkPropList;  // リンクのプロパティリスト
};

// リンク付きオブジェクトリスト構造体
struct SDBR_LINKEDOBJLIST{
 DmaInteger32        lCount; // リンク付きオブジェクト情報の個数
 SDBR_LINKEDOBJINFO* pItem;  // リンク付きオブジェクト情報
};

詳細

pVersionIdで指定したCdbrConfiguratedReferentialContainerオブジェクトが包含している，CdbrContainableクラスのサブクラスのオブジェクトの一覧を取得するメソッドです。その際，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティの値も取得します。また，pLinkPropDefListで指定したユーザ定義のプロパティを持つリンクについては，そのプロパティの値も取得します。

初回のメソッドのコールですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて初回にメソッドをコールした時点での状態が反映されます。したがって，１回目のコール以降に変更した要素数やプロパティ値は，２回目以降のコールに反映されません。

要素の個数に変更がなく，同じオブジェクトに対してメソッドをコールしても，取得される情報の順序は常に異なる可能性があります。

このメソッドの使用方法については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」のCdbrContainable::GetContainerListメソッドを参照してください。

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得したものの次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得した値の残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてメソッドをコールした場合，または前回の読み出しですべて取得した場合，およびpVersionIdの値が前回取得時と異なる場合は，すべてDMA_FALSEを指定したものとして処理されます。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合は，DMA_TRUEが設定されます。

2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について，次に示します。

表4-3　ほかの引数の扱われ方（SDBR_OBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
pVersionId | ○※ | ○
lContainmentType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppObjList | ○ | ○

（凡例）

○：有効

×：無効

注※

前回と異なる値を指定した場合は，DMA_TRUEの指定が無効になり，DMA_FALSEを指定したものとして処理されます。

表4-4　ほかの引数の扱われ方（SDBR_LINKEDOBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
pVersionId | ○※ | ○
lContainmentType | × | ○
lClassType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lLinkPropDefListCount | × | ○
pLinkPropDefList | × | ○
lObjListCount | ○ | ○
ppLinkedObjList | ○ | ○

（凡例）

○：有効

×：無効

注※

前回と異なる値を指定した場合は，DMA_TRUEの指定が無効になり，DMA_FALSEを指定したものとして処理されます。

pVersionId（入力）

対象となるCdbrConfiguratedReferentialContainerオブジェクトのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得します。チェックアウト中のオブジェクトに対しては，仮のバージョン識別子を指定します。

NULLを指定した場合は，カレントバージョンが対象になります。

lContainmentType（入力）

対象となるコンテインメントの種類を指定します。次のどちらかの値を指定します。

DBR_CONTAINMENT_DIRECT：
直接型のコンテインメントを設定します。DMAオブジェクトのDirectContainmentRelationshipオブジェクトを使用した関連づけです。

DBR_CONTAINMENT_REFERENTIAL：
参照型のコンテインメントを設定します。DMAオブジェクトのReferentialContainmentRelationshipオブジェクトを使用した関連づけです。

lPropDefListCount（入力）

pPropDefListの要素数を指定します。0を指定した場合は，プロパティを取得しません。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppObjList（出力）

取得した情報を格納するオブジェクトリスト構造体である，SDBR_OBJLIST構造体へのポインタが設定されます。*ppObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppObjListを指定したメモリの解放によって，構造体のメンバ(*ppObjList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがって，メソッドをコールした側はこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体の使用方法については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lClassType(入力)

取得する要素のクラス識別子を指定します。これによって，指定されたクラス識別子の要素だけを取得できます。指定できる識別子を次に示します。

表4-5　クラス識別子の一覧

クラス識別子 | クラスの種別
DBR_CLASS_CONFIGURATEDREFERENTIALCONTAINER | CdbrConfiguratedReferentialContainerクラス
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_REFERENTIALCONTAINER | CdbrReferentialContainerクラス
DBR_CLASS_VERSIONABLEDOCUMENT | CdbrVersionableDocumentクラス
DBR_CLASS_VERSIONTRACEABLECONTAINER | CdbrVersionTraceableContainerクラス
DBR_CLASS_RFCT_OR_VTCT | CdbrReferentialContainerクラスとCdbrVersionTraceableContainerクラスのOR条件
DBR_CLASS_ALL | すべてのクラス

それぞれのクラスの識別子をOR条件を指定した取得もできます。例えば，CdbrReferentialContainerクラスの要素とCdbrDocumentクラスの要素を取得したい場合は，次のように指定します。

DBR_CLASS_REFERENTIALCONTAINER | DBR_CLASS_DOCUMENT

ただし，CdbrReferentialContainerクラスとCdbrVersionTraceableContainerクラスの要素を取得したい場合は，DBR_CLASS_RFCT_OR_VTCTを指定してください。DBR_CLASS_RFCT_OR_VTCTとほかのクラスのクラス識別子をORで指定することもできます。

すべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。

lLinkPropDefListCount（入力）

pLinkPropDefListの要素数を指定します。0を指定した場合は，リンクのプロパティを取得しません。負の値を指定した場合は，エラーになります。

pLinkPropDefList（入力）

同時に取得するリンクのプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。指定できるリンクのプロパティ識別子は，ユーザが定義したプロパティの識別子だけです。

プロパティを取得しない場合はNULLを指定します。なお，lLinkPropDefListCountが正の整数のときにpLinkPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体の使用方法については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppLinkedObjList（出力）

取得した情報を格納するリンク付きオブジェクトリスト構造体である，SDBR_LINKEDOBJLIST構造体へのポインタが設定されます。**ppLinkedObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_LINKEDOBJLIST構造体およびSDBR_LINKEDOBJINFO構造体に設定される内容については，「付録C.1(7)　SDBR_LINKEDOBJLIST構造体（リンク付きオブジェクトリスト構造体）」および「付録C.1(6)　SDBR_LINKEDOBJINFO構造体（リンク付きオブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::GetContainableListAndLockメソッド

機能

包含しているContainableオブジェクトの一覧取得と同時に指定したロックの設定

形式

// 包含要素の一覧を取得する場合
DmaBoolean CdbrConfiguratedReferentialContainer::GetContainableListAndLock(
 pDmaBoolean          pbContinue,
 pDmaString_T         pVersionId,
 DmaInteger32         lContainmentType,
 DmaInteger32         lPropDefListCount,
 SDBR_PROPDEF*        pPropDefList,
 DmaInteger32         lObjListCount,
 SDBR_OBJLIST**       ppObjList,
 DmaInteger32         lLockType = DMA_LOCK_WRITE )

// 種類別の包含要素の一覧とリンク情報を取得する場合
DmaBoolean CdbrConfiguratedReferentialContainer::GetContainableListAndLock(
 pDmaBoolean           pbContinue,
 pDmaString_T          pVersionId,
 DmaInteger32          lContainmentType,
 DmaInteger32          lClassType,
 DmaInteger32          lPropDefListCount,
 SDBR_PROPDEF*         pPropDefList,
 DmaInteger32          lLinkPropDefListCount,
 SDBR_PROPDEF*         pLinkPropDefList,
 DmaInteger32          lObjListCount,
 SDBR_LINKEDOBJLIST**  ppLinkedObjList,
 DmaInteger32          lLockType = DMA_LOCK_WRITE )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

 // オブジェクト情報構造体
 struct SDBR_OBJINFO {
   pDmaString_T       pOIID;         // オブジェクトのOIID
   DmaInteger32       lType;         // オブジェクトの種別
   SDBR_PROPLIST      PropList;      // プロパティリスト構造体
 };

 // オブジェクトリスト構造体
 struct SDBR_OBJLIST {
    DmaInteger32      lCount;
    SDBR_OBJINFO*     pItem;
 };

// リンク付きオブジェクト情報構造体
struct SDBR_LINKEDOBJINFO{
 pDmaString_T   pOIID;         // オブジェクトのOIID
 pDmaString_T   lType;         // オブジェクトの種別
 pDmaString_T   pLinkId;       // リンク識別子
 SDBR_PROPLIST  PropList;      // オブジェクトのプロパティリスト
 SDBR_PROPLIST  LinkPropList;  // リンクのプロパティリスト
};

// リンク付きオブジェクトリスト構造体
struct SDBR_LINKEDOBJLIST{
 DmaInteger32        lCount; // リンク付きオブジェクト情報の個数
 SDBR_LINKEDOBJINFO* pItem;  // リンク付きオブジェクト情報
};

詳細

ロックタイプを明示的に指定して，pVersionIdで指定したオブジェクトが包含している，CdbrContainableクラスのサブクラスのオブジェクトの一覧を取得するメソッドです。

その際，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティの値も取得します。また，pLinkPropDefListで指定したユーザ定義プロパティを持つリンクについては，そのプロパティの値も取得します。

初回のメソッドのコールですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて初回にコールした時点での状態が反映されます。したがって，１回目のメソッドのコール以降に変更した要素数やプロパティ値は，２回目以降のコールに反映されません。

要素の個数に変更がなく，同じオブジェクトに対してメソッドをコールしても，取得される情報の順序は常に異なる可能性があります。

使用方法については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」のCdbrContainable::GetContainerListメソッドを参照してください。

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得したものの次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得した値の残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてメソッドをコールした場合，または前回の読み出しですべて取得した場合，およびpVersionIdの値が前回取得時と異なる場合は，すべてDMA_FALSEを指定したものとして処理されます。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合は，DMA_TRUEが設定されます。

2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について，次に示します。

表4-6　ほかの引数の扱われ方（SDBR_OBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
pVersionId | ○※ | ○
lContainmentType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppObjList | ○ | ○
lLockType | × | ○

（凡例）

○：有効

×：無効

注※

前回と異なる値を指定した場合は，DMA_TRUEの指定が無効になり，DMA_FALSEを指定したものとして処理されます。

表4-7　ほかの引数の扱われ方（SDBR_LINKEDOBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
pVersionId | ○※ | ○
lContainmentType | × | ○
lClassType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lLinkPropDefListCount | × | ○
pLinkPropDefList | × | ○
lObjListCount | ○ | ○
ppLinkedObjList | ○ | ○
lLockType | × | ○

（凡例）

○：有効

×：無効

注※

前回と異なる値を指定した場合は，DMA_TRUEの指定が無効になり，DMA_FALSEを指定したものとして処理されます。

pVersionId（入力）

対象となるCdbrConfiguratedReferentialContainerオブジェクトのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得します。チェックアウト中のオブジェクトに対しては，仮のバージョン識別子を指定します。

NULLを指定した場合は，カレントバージョンが対象になります。

lContainmentType（入力）

対象となるコンテインメントの種類を指定します。次のどちらかの値を指定します。

DBR_CONTAINMENT_DIRECT：
直接型のコンテインメントを設定します。DMAオブジェクトのDirectContainmentRelationshipオブジェクトを使用した関連づけです。

DBR_CONTAINMENT_REFERENTIAL：
参照型のコンテインメントを設定します。DMAオブジェクトのReferentialContainmentRelationshipオブジェクトを使用した関連づけです。

lPropDefListCount（入力）

pPropDefListの要素数を指定します。0を指定した場合は，プロパティを取得しません。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppObjList（出力）

取得した情報を格納するオブジェクトリスト構造体である，SDBR_OBJLIST構造体へのポインタが設定されます。*ppObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリはメソッドをコールした側が，dbrDelete関数によって解放してください。なお，*ppObjListを指定したメモリの解放によって，構造体のメンバ(*ppObjList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがって，メソッドをコールした側はこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体の使用方法については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lClassType(入力)

指定されたクラス識別子の要素だけを取得します。指定できる識別子を次に示します。

表4-8　クラス識別子の一覧

クラス識別子 | クラスの種別
DBR_CLASS_CONFIGURATEDREFERENTIALCONTAINER | CdbrConfiguratedReferentialContainerクラス
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_REFERENTIALCONTAINER | CdbrReferentialContainerクラス
DBR_CLASS_VERSIONABLEDOCUMENT | CdbrVersionableDocumentクラス
DBR_CLASS_VERSIONTRACEABLECONTAINER | CdbrVersionTraceableContainerクラス
DBR_CLASS_RFCT_OR_VTCT | CdbrReferentialContainerクラスとCdbrVersionTraceableContainerクラスのOR条件
DBR_CLASS_ALL | すべてのクラス

それぞれのクラスの識別子をOR条件を指定した取得もできます。例えば，CdbrReferentialContainerクラスの要素とCdbrDocumentクラスの要素を取得したい場合は，次のように指定します。

DBR_CLASS_REFERENTIALCONTAINER | DBR_CLASS_DOCUMENT

すべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。ただし，CdbrReferentialContainerクラスとCdbrVersionTraceableContainerクラスの要素を取得したい場合は，DBR_CLASS_RFCT_OR_VTCTを指定してください。DBR_CLASS_RFCT_OR_VTCTとほかのクラスのクラス識別子をORで指定することもできます。

lLinkPropDefListCount（入力）

pLinkPropDefListの要素数を指定します。0を指定した場合は，リンクのプロパティを取得しません。負の値を指定した場合は，エラーになります。

pLinkPropDefList（入力）

同時に取得するリンクのプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。リンクのプロパティとして指定できる識別子は，ユーザが定義したプロパティの識別子だけです。

プロパティを取得しない場合はNULLを指定します。なお，lLinkPropDefListCountが正の整数のときにpLinkPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppLinkedObjList（出力）

取得した情報を格納するリンク付きオブジェクトリスト構造体である，SDBR_LINKEDOBJLIST構造体へのポインタが設定されます。**ppLinkedObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリはメソッドをコールした側が，dbrDelete関数によって解放してください。

SDBR_LINKEDOBJLIST構造体およびSDBR_LINKEDOBJINFO構造体に設定される内容については，「付録C.1(7)　SDBR_LINKEDOBJLIST構造体（リンク付きオブジェクトリスト構造体）」および「付録C.1(6)　SDBR_LINKEDOBJINFO構造体（リンク付きオブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次の値のどれかを設定します。

DMA_LOCK_READ
readロックを設定します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_READ | DBR_RLT_FOR_UPDATE
readロックを設定し，更新・削除用の一覧を取得します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

DMA_LOCK_WRITE | DBR_RLT_FOR_UPDATE
排他的なwriteロックを設定し，更新・削除用の一覧を取得します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesメソッド

機能

リンクのプロパティの取得

形式

DmaBoolean CdbrConfiguratedReferentialContainer::GetLinkPropertyValues(
 pDmaString_T       pLinkId,
 DmaInteger32       lLinkPropDefListCount,
 SDBR_PROPDEF*      pLinkPropDefList,
 SDBR_PROPLIST**    ppLinkPropList)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

リンク識別子を指定して，リンクのプロパティを取得するメソッドです。

引数

pLinkId（入力）

リンク識別子を指定します。

lLinkPropDefListCount（入力）

取得するプロパティの個数として，pLinkPropDefListの要素数を指定します。負の値を指定した場合は，エラーになります。

pLinkPropDefList（入力）

取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。指定できるリンクのプロパティ識別子はユーザが定義したプロパティの識別子だけです。なお，lLinkPropDefListCountが正の整数のときにpLinkPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppLinkPropList（出力）

取得したプロパティリスト構造体である，SDBR_PROPLIST構造体へのポインタが設定されます。

*ppLinkPropListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

なお，プロパティがまったく取得されなかった場合は，NULLが設定されます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesAndLockメソッド

機能

リンクのプロパティの取得と同時に指定したロックの設定

形式

DmaBoolean CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesAndLock(
 pDmaString_T       pLinkId,
 DmaInteger32       lLinkPropDefListCount,
 SDBR_PROPDEF*      pLinkPropDefList,
 SDBR_PROPLIST**    ppLinkPropList,
 DmaInteger32       lLockType = DMA_LOCK_WRITE)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

ロックタイプを明示的に指定し，リンク識別子を指定して，リンクのプロパティを取得するメソッドです。

引数

pLinkId（入力）

リンク識別子を指定します。

lLinkPropDefListCount（入力）

取得するプロパティの個数として，pLinkPropDefListの要素数を指定します。負の値を指定した場合は，エラーになります。

pLinkPropDefList（入力）

取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。指定できるリンクのプロパティ識別子はユーザが定義したプロパティの識別子だけです。なお，lLinkPropDefListCountが正の整数のときにpLinkPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppLinkPropList（出力）

取得したプロパティリスト構造体である，SDBR_PROPLIST構造体へのポインタが設定されます。

*ppLinkPropListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

なお，プロパティがまったく取得されなかった場合は，NULLが設定されます。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::GetVTContaineeListメソッド

機能

構成管理しているオブジェクトの一覧取得

形式

//要素一覧を取得する場合
DmaBoolean CdbrConfiguratedReferentialContainer:: GetVTContaineeList(
 pDmaBoolean         pbContinue,
 pDmaString_T        pVersionId,
 DmaInteger32        lPropDefListCount,
 SDBR_PROPDEF*       pPropDefList,
 DmaInteger32        lObjListCount,
 SDBR_VTOBJLIST**    ppVTObjList)

//種類別の要素一覧とリンク情報を取得する場合
DmaBoolean CdbrConfiguratedReferentialContainer:: GetVTContaineeList(
 pDmaBoolean               pbContinue,
 pDmaString_T              pVersionId,
 DmaInteger32              lClassType,
 DmaInteger32              lPropDefListCount,
 SDBR_PROPDEF*             pPropDefList,
 DmaInteger32              lLinkPropDefListCount,
 SDBR_PROPDEF*             pLinkPropDefList,
 DmaInteger32              lObjListCount,
 SDBR_VTLINKEDOBJLIST**    ppVTLinkedObjList)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

// 構成管理オブジェクト情報構造体
struct SDBR_VTOBJINFO{
  pDmaString_T   pOIID;       // オブジェクトのOIID
  pDmaString_T   pVerOIID;    // バージョントレースの対象になる
                              // オブジェクトのOIID
  pDmaString_T   pLinkID;     // オブジェクトのリンク識別子
  DmaInteger32   lTraceMode;  // 構成管理モード
  DmaInteger32   lType;       // オブジェクトの種別
  SDBR_PROPLIST  PropList;    // プロパティ情報のリスト
};

// 構成管理オブジェクトリスト構造体
struct SDBR_VTOBJLIST{
  DmaInteger32     lCount;   // 構成管理オブジェクト情報の個数
  SDBR_VTOBJINFO*  pItem;    // 構成管理オブジェクト情報
};

// 構成管理リンク付きオブジェクト情報構造体
struct SDBR_VTLINKEDOBJINFO{
 pDmaString_T   pOIID;        // オブジェクトのOIID
 pDmaString_T   pVerOIID;     // バージョントレースの対象になる
                              // オブジェクトのOIID
 pDmaString_T   pLinkID;      // リンク識別子
 DmaInteger32   lTraceMode;   // 構成管理モード
 DmaInteger32   lType;        // オブジェクトの種別
 SDBR_PROPLIST  PropList;     // プロパティリスト
 SDBR_PROPLIST  LinkPropList; // リンクのプロパティリスト
};

// 構成管理リンク付きオブジェクトリスト構造体
struct SDBR_VTLINKEDOBJLIST{
 DmaInteger32          lCount; // リンク付きオブジェクト情報の個数
 SDBR_VTLINKEDOBJINFO* pItem;  // リンク付きオブジェクト情報
};

詳細

CdbrConfiguratedReferentialContainerオブジェクトのpVersionIdで指定したバージョンが構成管理しているオブジェクトの一覧を取得するメソッドです。

pPropDefListでプロパティを指定した場合は，指しているバージョン（構成管理モードがFLOATINGモードの場合は最新のバージョン，FIXモードの場合は固定のバージョン）のプロパティも取得します。また，pLinkPropDefListで指定したユーザ定義プロパティを持つリンクについては，そのプロパティの値も取得します。なお，リンクのプロパティとは，DMAオブジェクトのVersionTraceableContainmentRelationshipオブジェクトのプロパティです。

初回のメソッドのコールですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて初回にコールした時点での状態が反映されます。したがって，１回目のメソッドのコール以降に変更した要素数やプロパティ値は，２回目以降のコールに反映されません。

また，要素の個数に変更がなく，同じオブジェクトに対してメソッドをコールしても，取得される情報の順序は常に異なる可能性があります。

次に，構成管理しているCdbrVersionableDocumentオブジェクトの一覧を10個ずつ取得して，そのOIIDとバージョンが固定されているかどうかを出力する例を示します。なお，エラー処理については省略しています。

構成管理しているCdbrVersionableDocumentオブジェクトの一覧を取得する例

SDBR_VTOBJLIST*  pVTObjList = NULL;
DmaInteger32  lLoop;
DmaBoolean    bContinue = DMA_UNKNOWN;
// すべての要素を取得します。
while (bContinue != DMA_FALSE){
 //情報の取得
 pDbrCfgRfct->GetVTContaineeList(&bContinue,
    NULL, 0, NULL, 10, &pVTObjList);
 //取得数だけループして，
 //OIIDとバージョンが固定されているかどうかを出力します。
 for (lLoop = 0; lLoop < pVTObjList->lCount; lLoop++) {
   printf("OIID=%s¥n", pVTObjList->pItem[lLoop].pOIID);
   if (pVTObjList->pItem[lLoop].lTraceMode == DBR_MODE_FIX)
   {
       printf("Version=Fix¥n");
   }else{
       printf("Version=UnFix¥n");
   }
 }
 dbrDelete (pVTObjList);
}

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得の残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてメソッドをコールする場合または前回の読み出しですべて取得した場合は，すべてDMA_FALSEを指定したものとして処理されます。

正常終了すると，メソッドのコールの継続が必要かどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合，DMA_TRUEが設定されます。

2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について，次に示します。

表4-9　ほかの引数の扱われ方（SDBR_VTOBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
pVersionId | ○※ | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppVTObjList | ○ | ○

（凡例）

○：有効

×：無効

注※

前回と異なる値を指定した場合は，DMA_TRUEの指定が無効になり，DMA_FALSEを指定したものとして処理されます。

表4-10　ほかの引数の扱われ方（SDBR_VTLINKEDOBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
pVersionId | ○※ | ○
lClassType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lLinkPropDefListCount | × | ○
pLinkPropDefList | × | ○
lObjListCount | ○ | ○
ppLinkedObjList | ○ | ○

（凡例）

○：有効

×：無効

注※

前回と異なる値を指定した場合は，DMA_TRUEの指定が無効になり，DMA_FALSEを指定したものとして処理されます。

pVersionId（入力）

対象となるCdbrConfiguratedReferentialContainerオブジェクトのバージョン識別子を指定します。バージョン識別子は，CdbrVersionable::GetVersionListメソッドまたはCdbrVersionable::VersionCheckOutメソッドによって取得したものを指定します。チェックアウト中のオブジェクトに対しては，仮のバージョン識別子を指定してください。NULLを指定した場合は，カレントバージョンが対象になります。

lPropDefListCount（入力）

pPropDefListの要素数を指定します。0を指定した場合は，プロパティを取得しません。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppVTObjList（出力）

構成管理オブジェクトリスト構造体である，SDBR_VTOBJLIST構造体へのポインタが設定されます。構成管理オブジェクトリスト構造体へのポインタを格納する領域を指定してください。

**ppVTObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_VTOBJLIST構造体およびSDBR_VTOBJINFO構造体に設定される内容については，「付録C.1(26)　SDBR_VTOBJLIST構造体（構成管理オブジェクトリスト構造体）」および「付録C.1(25)　SDBR_VTOBJINFO構造体（構成管理オブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lClassType(入力)

取得する要素のクラス識別子を指定します。これによって，指定されたクラス識別子の要素だけが取得できます。ここでは，指しているバージョンのオブジェクトに該当するクラス識別子を指定する必要があります。クラス識別子の一覧を次に示します。

表4-11　クラス識別子の一覧

クラス識別子 | クラスの種別
DBR_CLASS_VERSIONTRACEABLECONTAINER | CdbrVersionTraceableContainerクラス
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_ALL | すべてのクラス

それぞれのクラスの識別子をOR条件を指定した取得もできます。例えば，CdbrDocumentクラスの要素とCdbrVersionTraceableContainerクラスの要素を取得したい場合は，次のように指定します。

DBR_CLASS_DOCUMENT | DBR_CLASS_VERSIONTRACEABLECONTAINER

すべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。

lLinkPropDefListCount（入力）

pLinkPropDefListの要素数を指定します。0を指定した場合は，プロパティを取得しません。負の値を指定した場合は，エラーになります。

pLinkPropDefList（入力）

同時に取得するリンクのプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。指定できるリンクのプロパティ識別子は，ユーザが定義したプロパティの識別子だけです。

プロパティを取得しない場合はNULLを指定します。なお，lLinkPropDefListCountが正の整数のときにpLinkPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppVTLinkedObjList（出力）

取得した情報を格納する構成管理リンク付きオブジェクトリスト構造体である，SDBR_VTLINKEDOBJLIST構造体へのポインタが設定されます。**ppVTLinkedObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_VTLINKEDOBJLIST構造体およびSDBR_VTLINKEDOBJINFO構造体に設定される内容については，「付録C.1(24)　SDBR_VTLINKEDOBJLIST構造体（構成管理リンク付きオブジェクトリスト構造体）」および「付録C.1(23)　SDBR_VTLINKEDOBJINFO構造体（構成管理リンク付きオブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::GetVTContaineeListAndLockメソッド

機能

構成管理しているオブジェクトの一覧取得と同時に指定したロックの設定

形式

//要素一覧を取得する場合
DmaBoolean CdbrConfiguratedReferentialContainer:: GetVTContaineeListAndLock(
 pDmaBoolean         pbContinue,
 pDmaString_T        pVersionId,
 DmaInteger32        lPropDefListCount,
 SDBR_PROPDEF*       pPropDefList,
 DmaInteger32        lObjListCount,
 SDBR_VTOBJLIST**    ppVTObjList,
 DmaInteger32        lLockType = DMA_LOCK_WRITE)

//種類別の要素一覧とリンク情報を取得する場合
DmaBoolean CdbrConfiguratedReferentialContainer:: GetVTContaineeListAndLock(
 pDmaBoolean               pbContinue,
 pDmaString_T              pVersionId,
 DmaInteger32              lClassType.
 DmaInteger32              lPropDefListCount,
 SDBR_PROPDEF*             pPropDefList,
 DmaInteger32              lLinkPropDefListCount,
 SDBR_PROPDEF*             pLinkPropDefList
 DmaInteger32              lObjListCount,
 SDBR_VTLINKEDOBJLIST**    ppVTLinkedObjList,
 DmaInteger32              lLockType = DMA_LOCK_WRITE)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

// 構成管理オブジェクト情報構造体
struct SDBR_VTOBJINFO{
 pDmaString_T   pOIID;      // オブジェクトのOIID
 pDmaString_T   pVerOIID;   // バージョントレースの対象になる
                            // オブジェクトのOIID
 pDmaString_T   pLinkID;    // オブジェクトのリンク識別子
 DmaInteger32   lTraceMode; // 構成管理モード
 DmaInteger32   lType;      // オブジェクトの種別
 SDBR_PROPLIST  PropList;   // プロパティ情報のリスト
};

// 構成管理オブジェクトリスト構造体
struct SDBR_VTOBJLIST{
 DmaInteger32     lCount;   // 構成管理オブジェクト情報の個数
 SDBR_VTOBJINFO*  pItem;    // 構成管理オブジェクト情報
};

// 構成管理リンク付きオブジェクト情報構造体
struct SDBR_VTLINKEDOBJINFO{
 pDmaString_T   pOIID;        // オブジェクトのOIID
 pDmaString_T   pVerOIID;     // バージョントレースの対象になる
                              // オブジェクトのOIID
 pDmaString_T   pLinkID;      // リンク識別子
 DmaInteger32   lTraceMode;   // 構成管理モード
 DmaInteger32   lType;        // オブジェクトの種別
 SDBR_PROPLIST  PropList;     // プロパティリスト
 SDBR_PROPLIST  LinkPropList; // リンクのプロパティリスト
};

// 構成管理リンク付きオブジェクトリスト構造体
struct SDBR_VTLINKEDOBJLIST{
 DmaInteger32          lCount; // リンク付きオブジェクト情報の個数
 SDBR_VTLINKEDOBJINFO* pItem;  // リンク付きオブジェクト情報
};

詳細

ロックタイプを明示的に指定して，CdbrConfiguratedReferentialContainerオブジェクトのpVersionIdで指定したバージョンが構成管理しているオブジェクトの一覧を取得するメソッドです。

pPropDefListでプロパティを指定した場合は，指しているバージョン（構成管理モードがFLOATINGモードの場合は最新のバージョン，FIXモードの場合は固定のバージョン）のプロパティも取得します。

また，pLinkPropDefListで指定したユーザ定義プロパティを持つリンクについては，そのプロパティの値も取得します。なお，リンクのプロパティとは，DMAオブジェクトのVersionTraceableContainmentRelationshipオブジェクトのプロパティです。

初回のメソッドのコールですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて初回にコールした時点での状態が反映されます。したがって，１回目のメソッドのコール以降に変更した要素数やプロパティ値は，２回目以降のコールに反映されません。

また，要素の個数に変更がなく，同じオブジェクトに対してメソッドをコールしても，取得される情報の順序は常に異なる可能性があります。

次に，構成管理しているCdbrVersionableDocumentオブジェクトの一覧を10個ずつ取得して，そのOIIDとバージョンが固定されているかどうかを出力する例を示します。なお，エラー処理については省略しています。

構成管理しているCdbrVersionableDocumentオブジェクトの一覧を取得する例

SDBR_VTOBJLIST*  pVTObjList = NULL;
DmaInteger32  lLoop;
DmaBoolean    bContinue = DMA_UNKNOWN;
// すべての要素を取得します。
while (bContinue != DMA_FALSE){
 //情報の取得
 pDbrCfgRfct->GetVTContaineeListAndLock(&bContinue,
    NULL, 0, NULL, l0, &pVTObjList,DMA_LOCK_WRITE);
 //取得数だけループして，
 //OIIDとバージョンが固定されているかどうかを出力します。
 for (lLoop = 0; lLoop < pVTObjList->lCount; lLoop++) {
   printf("OIID=%s¥n", pVTObjList->pItem[lLoop].pOIID);
   if (pVTObjList->pItem[lLoop].lTraceMode == DBR_MODE_FIX)
   {
       printf("Version=Fix¥n");
   }else{
       printf("Version=UnFix¥n");
   }
 }
 dbrDelete (pVTObjList);
}

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得の残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてメソッドをコールする場合または前回の読み出しですべて取得した場合は，すべてDMA_FALSEを指定したものとして処理されます。

正常終了すると，メソッドのコールの継続が必要かどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合，DMA_TRUEが設定されます。

2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について，次に示します。

表4-12　ほかの引数の扱われ方（SDBR_VTOBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
pVersionId | ○※ | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppVTObjList | ○ | ○
lLockType | × | ○

（凡例）

○：有効

×：無効

注※

前回と異なる値を指定した場合は，DMA_TRUEの指定が無効になり，DMA_FALSEを指定したものとして処理されます。

表4-13　ほかの引数の扱われ方（SDBR_VTLINKEDOBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
pVersionId | ○※ | ○
lClassType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lLinkPropDefListCount | × | ○
pLinkPropDefList | × | ○
lObjListCount | ○ | ○
ppVTLinkedObjList | ○ | ○
lLockType | × | ○

（凡例）

○：有効

×：無効

注※

前回と異なる値を指定した場合は，DMA_TRUEの指定が無効になり，DMA_FALSEを指定したものとして処理されます。

pVersionId（入力）

対象となるCdbrConfiguratedReferentialContainerオブジェクトのバージョン識別子を指定します。バージョン識別子は，CdbrVersionable::GetVersionListメソッドまたはCdbrVersionable::VersionCheckOutメソッドによって取得したものを指定します。チェックアウト中のオブジェクトに対しては，仮のバージョン識別子を指定してください。NULLを指定した場合は，カレントバージョンが対象になります。

lPropDefListCount（入力）

pPropDefListの要素数を指定します。0を指定した場合は，プロパティを取得しません。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。プロパティを取得しない場合はNULLを指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppVTObjList（出力）

構成管理オブジェクトリスト構造体である，SDBR_VTOBJLIST構造体へのポインタが設定されます。構成管理オブジェクトリスト構造体へのポインタを格納する領域を指定してください。

**ppVTObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_VTOBJLIST構造体およびSDBR_VTOBJINFO構造体に設定される内容については，「付録C.1(26)　SDBR_VTOBJLIST構造体（構成管理オブジェクトリスト構造体）」および「付録C.1(25)　SDBR_VTOBJINFO構造体（構成管理オブジェクト情報構造体）」参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lClassType(入力)

取得する要素のクラス識別子を指定します。これによって，指定されたクラス識別子の要素だけが取得できます。ここでは，指しているバージョンのオブジェクトに該当するクラス識別子を指定する必要があります。クラス識別子の一覧を次に示します。

表4-14　クラス識別子の一覧

クラス識別子 | クラスの種別
DBR_CLASS_VERSIONTRACEABLECONTAINER | CdbrVersionTraceableContainerクラス
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_ALL | すべてのクラス

それぞれのクラスの識別子をOR条件を指定した取得もできます。例えば，CdbrDocumentクラスの要素とCdbrVersionTraceableContainerクラスの要素を取得したい場合は，次のように指定します。

DBR_CLASS_DOCUMENT | DBR_CLASS_VERSIONTRACEABLECONTAINER

すべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。

lLinkPropDefListCount（入力）

pLinkPropDefListの要素数を指定します。0を指定した場合は，プロパティを取得しません。負の値を指定した場合は，エラーになります。

pLinkPropDefList（入力）

同時に取得するリンクのプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。リンクのプロパティとして指定できる識別子は，ユーザが定義したプロパティの識別子だけです。

プロパティを取得しない場合はNULLを指定します。なお，lLinkPropDefListCountが正の整数のときにpLinkPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppVTLinkedObjList（出力）

取得した情報を格納する構成管理リンク付きオブジェクトリスト構造体である，SDBR_VTLINKEDOBJLIST構造体へのポインタが設定されます。**ppVTLinkedObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_VTLINKEDOBJLIST構造体およびSDBR_VTLINKEDOBJINFO構造体に設定される内容については，「付録C.1(24)　SDBR_VTLINKEDOBJLIST構造体（構成管理リンク付きオブジェクトリスト構造体）」および「付録C.1(23)　SDBR_VTLINKEDOBJINFO構造体（構成管理リンク付きオブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次の値のどれかを設定します。

DMA_LOCK_READ
readロックを設定します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_READ | DBR_RLT_FOR_UPDATE
readロックを設定し，更新・削除用の一覧を取得します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

DMA_LOCK_WRITE | DBR_RLT_FOR_UPDATE
排他的なwriteロックを設定し，更新・削除用の一覧を取得します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::Linkメソッド

機能

Containableオブジェクトとの関連づけ

形式

// オブジェクトを指定して関連づける場合
DmaBoolean CdbrConfiguratedReferentialContainer::Link(
 pDmaString_T      pVersionId,
 CdbrContainable*  pDbrContainable,
 DmaInteger32      lContainmentType
                   = DBR_CONTAINMENT_REFERENTIAL)

// 関連づけと同時にリンクのプロパティを設定する場合
DmaBoolean CdbrConfiguratedReferentialContainer::Link(
 pDmaString_T      pVersionId,
 CdbrContainable*  pDbrContainable,
 SDBR_PROPLIST*    pLinkPropList,
 ppDmaString_T     ppLinkId,
 DmaInteger32      lContainmentType
                   = DBR_CONTAINMENT_REFERENTIAL)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

CdbrConfiguratedReferentialContainerオブジェクト自身を上位のオブジェクトとして，指定したContainableオブジェクト（CdbrContainableクラスのサブクラスのオブジェクト）を下位のオブジェクトとして関連づけるメソッドです。

また，リンクにプロパティを設定することもできます。リンクのプロパティとは，DMAオブジェクトのDirectContainmentRelationshipオブジェクト，ReferentialContainmentRelationshipオブジェクトおよびVersionTraceableContainmentRelationshipオブジェクトのプロパティです。

引数

pVersionId（入力）

対象となるCdbrConfiguratedReferentialContainerオブジェクトのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得したものを指定します。チェックアウト中のオブジェクトに対しては仮のバージョン識別子を指定します。

NULLを指定した場合は，カレントバージョンが対象になります。

pDbrContainable （入力）

関連づけるオブジェクトを指定します。CdbrContainableクラスのサブクラスのオブジェクトを指定します。

pLinkPropList（入力）

リンクに設定するプロパティリストを指定します。なお，リンクに設定できるプロパティは，ユーザが定義したプロパティだけです。

プロパティを設定しない場合は，NULLを指定してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppLinkId（出力）

リンク識別子へのポインタが設定されます。このリンク識別子は，CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesメソッド，CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesAndLockメソッドおよびCdbrConfiguratedReferentialContainer::PutLinkPropertyValuesメソッドでリンクのプロパティを参照，設定するときに使用します。また，CdbrConfiguratedReferentialContainer::Unlinkメソッドによってリンクの関連づけの解除をする場合にも指定できます。

*ppLinkIdがポイントするメモリはライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

lContainmentType（入力）

関連づけで設定するコンテインメントの種類を指定します。次のどちらかを指定してください。

DBR_CONTAINMENT_DIRECT：
直接型のコンテインメントを設定します。DMAオブジェクトのDirectContainmentRelationshipオブジェクトを使用した関連づけです。

DBR_CONTAINMENT_REFERENTIAL：
参照型のコンテインメントを設定します。DMAオブジェクトのReferentialContainmentRelationshipオブジェクトを使用した関連づけです。

なお，上位のコンテナを下位以下のコンテナの下位のオブジェクトとして関連づけることはできません。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::LinkAndLockメソッド

機能

Containableオブジェクトとの関連づけと同時に指定したロックの設定

形式

// オブジェクトを指定して関連づける場合
DmaBoolean CdbrConfiguratedReferentialContainer::LinkAndLock(
 pDmaString_T      pVersionId,
 CdbrContainable*  pDbrContainable,
 DmaInteger32      lContainmentType
                   = DBR_CONTAINMENT_REFERENTIAL,
 DmaInteger32      lLockType = DMA_LOCK_WRITE)

// 関連づけと同時にリンクのプロパティを設定する場合
DmaBoolean CdbrConfiguratedReferentialContainer::LinkAndLock(
 pDmaString_T      pVersionId,
 CdbrContainable*  pDbrContainable,
 SDBR_PROPLIST*    pLinkPropList,
 ppDmaString_T     ppLinkId,
 DmaInteger32      lContainmentType
                   = DBR_CONTAINMENT_REFERENTIAL,
 DmaInteger32      lLockType = DMA_LOCK_WRITE)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

ロックタイプを明示的に指定して，CdbrConfiguratedReferentialContainerオブジェクト自身を上位のオブジェクトとして，指定したContainableオブジェクト（CdbrContainableクラスのサブクラスのオブジェクト）を下位のオブジェクトとして関連づけるメソッドです。

また，リンクにプロパティを設定することもできます。リンクのプロパティとは，DMAオブジェクトのDirectContainmentRelationshipオブジェクト，ReferentialContainmentRelationshipオブジェクトおよびVersionTraceableContainmentRelationshipオブジェクトのプロパティです。

引数

pVersionId（入力）

対象となるCdbrConfiguratedReferentialContainerオブジェクトのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得したものを指定します。チェックアウト中のオブジェクトに対しては仮のバージョン識別子を指定します。

NULLを指定した場合は，カレントバージョンが対象になります。

pDbrContainable （入力）

関連づけるオブジェクトを指定します。CdbrContainableクラスのサブクラスのオブジェクトを指定します。

pLinkPropList（入力）

リンクに設定するプロパティリストを指定します。なお，リンクに設定できるプロパティは，ユーザが定義したプロパティだけです。

プロパティを設定しない場合は，NULLを指定してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppLinkId（出力）

リンク識別子へのポインタが設定されます。このリンク識別子は，CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesメソッド，CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesAndLockメソッドおよびCdbrConfiguratedReferentialContainer::PutLinkPropertyValuesメソッドでリンクのプロパティを参照，設定するときに使用します。また，CdbrConfiguratedReferentialContainer::Unlinkメソッドによってリンクの関連づけの解除をする場合にも指定できます。

*ppLinkIdがポイントするメモリはライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

lContainmentType（入力）

関連づけで設定するコンテインメントの種類を指定します。次のどちらかを指定してください。

DBR_CONTAINMENT_DIRECT：
直接型のコンテインメントを設定します。DMAオブジェクトのDirectContainmentRelationshipオブジェクトを使用した関連づけです。

DBR_CONTAINMENT_REFERENTIAL：
参照型のコンテインメントを設定します。DMAオブジェクトのReferentialContainmentRelationshipオブジェクトを使用した関連づけです。

なお，上位のコンテナを下位以下のコンテナの下位のオブジェクトとして関連づけることはできません。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::LinkVTFixメソッド

機能

構成管理するオブジェクトのFIXモードでの関連づけ

形式

DmaBoolean CdbrConfiguratedReferentialContainer::LinkVTFix(
 pDmaString_T       pVersionId,
 CdbrVersionable*   pDbrVersionable,
 pDmaString_T       pCompoVersionId,
 SDBR_PROPLIST*     pLinkPropList,
 ppDmaString_T      ppLinkId)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

CdbrConfiguratedReferentialContainerオブジェクトにバージョン管理するオブジェクトを，構成管理型のコンテインメントで関連づけるメソッドです。関連づけられるのは，次のオブジェクトです。

CdbrVersionableDocumentオブジェクト

CdbrConfiguratedReferentialContainerオブジェクト

このとき，構成管理モードとして常に固定されたバージョンの構成要素を指すFIXモードを設定します。FIXモードを設定すると，構成要素がバージョンアップした場合も，CdbrConfiguratedReferentialContainerオブジェクトが指す構成要素のバージョンは変更されません。

CdbrConfiguratedReferentialContainerオブジェクトの構成管理モードを，リンクが常にカレントバージョンの構成要素を指すFLOATINGモードに変更する場合は，CdbrConfiguratedReferentialContainer::SetVTFloatメソッドを使用してください。

引数

pVersionId（入力）

対象になるCdbrConfiguratedReferentialContainerオブジェクトのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得します。チェックアウト中のオブジェクトに対しては仮のバージョン識別子を指定します。NULLを指定した場合はカレントバージョンが対象になります。

pDbrVersionable（入力）

構成管理するCdbrVersionableDocumentオブジェクトまたはCdbrConfiguratedReferentialContainerオブジェクトを指定します。

pCompoVersionId（入力）

関連づける構成要素のバージョン識別子を指定します。NULLを指定した場合，カレントバージョンを指定したことになります。

pLinkPropList（入力）

リンクに設定するプロパティのプロパティリストを指定します。リンクにプロパティの値を設定できるのは，ユーザが定義したプロパティだけです。プロパティ識別子にはユーザが定義したプロパティ識別子を指定してください。

プロパティを設定しない場合は，NULLを指定してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppLinkId（出力）

リンク識別子へのポインタが設定されます。このリンク識別子は，CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesメソッド，CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesAndLockメソッドまたはCdbrConfiguratedReferentialContainer::PutLinkPropertyValuesメソッドで，処理対象とするリンクを指定する場合に使用します。

*ppLinkIdがポイントするメモリはライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::LinkVTFixAndLockメソッド

機能

構成管理するオブジェクトのFIXモードでの関連づけと同時に指定したロックの設定

形式

DmaBoolean CdbrConfiguratedReferentialContainer::LinkVTFixAndLock(
 pDmaString_T       pVersionId,
 CdbrVersionable*   pDbrVersionable,
 pDmaString_T       pCompoVersionId,
 SDBR_PROPLIST*     pLinkPropList,
 ppDmaString_T      ppLinkId,
 DmaInteger32       lLockType = DMA_LOCK_WRITE)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

ロックタイプを明示的に指定して，CdbrConfiguratedReferentialContainerオブジェクトにバージョン管理するオブジェクトを，構成管理型のコンテインメントで関連づけるメソッドです。関連づけられるのは，次のオブジェクトです。

CdbrVersionableDocumentオブジェクト

CdbrConfiguratedReferentialContainerオブジェクト

このとき，構成管理モードとして常に固定されたバージョンの構成要素を指すFIXモードを設定します。FIXモードを設定すると，構成要素がバージョンアップした場合も，CdbrConfiguratedReferentialContainerオブジェクトが指す構成要素のバージョンは変更されません。

CdbrConfiguratedReferentialContainerオブジェクトの構成管理モードを，リンクが常にカレントバージョンの構成要素を指すFLOATINGモードに変更する場合は，CdbrConfiguratedReferentialContainer::SetVTFloatメソッドをコールしてください。

引数

pVersionId（入力）

対象になるCdbrConfiguratedReferentialContainerオブジェクトのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得します。チェックアウト中のオブジェクトに対しては仮のバージョン識別子を指定します。NULLを指定した場合はカレントバージョンが対象になります。

pDbrVersionable（入力）

構成管理するCdbrVersionableDocumentオブジェクトまたはCdbrConfiguratedReferentialContainerオブジェクトを指定します。

pCompoVersionId（入力）

関連づける構成要素のバージョン識別子を指定します。NULLを指定した場合，カレントバージョンを指定したことになります。

pLinkPropList（入力）

リンクに設定するプロパティのプロパティリスト構造体を指定します。リンクにプロパティの値を設定できるのは，ユーザが定義したプロパティだけです。プロパティ識別子にはユーザが定義したプロパティ識別子を指定してください。

プロパティを設定しない場合は，NULLを指定してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppLinkId（出力）

リンク識別子へのポインタが設定されます。このリンク識別子は，CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesメソッド，CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesAndLockメソッドまたはCdbrConfiguratedReferentialContainer::PutLinkPropertyValuesメソッドで，処理対象とするリンクを指定する場合に使用します。

*ppLinkIdがポイントするメモリはライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::LinkVTFloatメソッド

機能

構成管理するオブジェクトのFLOATINGモードでの関連づけ

形式

DmaBoolean CdbrConfiguratedReferentialContainer::LinkVTFloat(
 pDmaString_T       pVersionId,
 CdbrVersionable*   pDbrVersionable,
 SDBR_PROPLIST*     pLinkPropList,
 ppDmaString_T      ppLinkId)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

CdbrConfiguratedReferentialContainerオブジェクトとバージョン管理するオブジェクトを，構成管理型のコンテインメントで関連づけるメソッドです。関連づけられるのは，次のオブジェクトです。

CdbrVersionableDocumentオブジェクト

CdbrConfiguratedReferentialContainerオブジェクト

このとき，構成管理モードとして常にカレントバージョンの構成要素を指すFLOATINGモードを設定します。FLOATINGモードを設定すると，構成要素がバージョンアップしたときにコンテナが常にカレントバージョンにリンクをつなぎ替えます。

CdbrConfiguratedReferentialContainerオブジェクトの構成管理モードを，リンクを特定のバージョンで固定するFIXモードに変更する場合は，CdbrConfiguratedReferentialContainer::SetVTFixメソッドをコールしてください。

引数

pVersionId（入力）

対象になるCdbrConfiguratedReferentialContainerオブジェクトのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得します。チェックアウト中のオブジェクトに対しては仮のバージョン識別子を指定します。NULLを指定した場合はカレントバージョンが対象になります。

pDbrVersionable（入力）

構成管理するCdbrVersionableDocumentオブジェクトまたはCdbrConfiguratedReferentialContainerオブジェクトを指定します。

pLinkPropList（入力）

リンクに設定するプロパティのプロパティリスト構造体である，SDBR_PROPLIST構造体を指定します。リンクにプロパティの値を設定できるのは，ユーザが定義したプロパティだけです。プロパティ識別子にはユーザが定義したプロパティ識別子を指定してください。

プロパティを設定しない場合は，NULLを指定してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppLinkId（出力）

リンク識別子へのポインタが設定されます。このリンク識別子は，CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesメソッド，CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesAndLockメソッドまたはCdbrConfiguratedReferentialContainer::PutLinkPropertyValuesメソッドで，処理対象とするリンクを指定する場合に使用します。

*ppLinkIdがポイントするメモリはライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::LinkVTFloatAndLockメソッド

機能

構成管理するオブジェクトのFLOATINGモードでの関連づけと同時に指定したロックの設定

形式

DmaBoolean CdbrConfiguratedReferentialContainer::LinkVTFloatAndLock(
 pDmaString_T       pVersionId,
 CdbrVersionable*   pDbrVersionable,
 SDBR_PROPLIST*     pLinkPropList,
 ppDmaString_T      ppLinkId,
 DmaInteger32       lLockType = DMA_LOCK_WRITE)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

ロックタイプを明示的に指定して，CdbrConfiguratedReferentialContainerオブジェクトとバージョン管理するオブジェクトを，構成管理型のコンテインメントで関連づけるメソッドです。関連づけられるのは，次のオブジェクトです。

CdbrVersionableDocumentオブジェクト

CdbrConfiguratedReferentialContainerオブジェクト

このとき，構成管理モードとして常にカレントバージョンの構成要素を指すFLOATINGモードを設定します。FLOATINGモードを設定すると，構成要素がバージョンアップしたときにコンテナが常に最新のバージョンにリンクをつなぎ替えます。

CdbrConfiguratedReferentialContainerオブジェクトの構成管理モードを，リンクを特定のバージョンで固定するFIXモードに変更する場合は，CdbrConfiguratedReferentialContainer::SetVTFixメソッドをコールしてください。

引数

pVersionId（入力）

対象になるCdbrConfiguratedReferentialContainerオブジェクトのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得します。チェックアウト中のオブジェクトに対しては仮のバージョン識別子を指定します。NULLを指定した場合はカレントバージョンが対象になります。

pDbrVersionable（入力）

構成管理するCdbrVersionableDocumentオブジェクトまたはCdbrConfiguratedReferentialContainerオブジェクトを指定します。

pLinkPropList（入力）

リンクに設定するプロパティのプロパティリスト構造体である，SDBR_PROPLIST構造体を指定します。リンクにプロパティの値を設定できるのは，ユーザが定義したプロパティだけです。プロパティ識別子にはユーザが定義したプロパティ識別子を指定してください。

プロパティを設定しない場合は，NULLを指定してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppLinkId（出力）

リンク識別子へのポインタが設定されます。このリンク識別子は，CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesメソッド，CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesAndLockメソッドまたはCdbrConfiguratedReferentialContainer::PutLinkPropertyValuesメソッドで，処理対象とするリンクを指定する場合に使用します。

*ppLinkIdがポイントするメモリはライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後でこの操作を実行してください。

CdbrConfiguratedReferentialContainer::PutLinkPropertyValuesメソッド

機能

リンクのプロパティの設定

形式

DmaBoolean CdbrConfiguratedReferentialContainer::PutLinkPropertyValues(
 pDmaString_T     pLinkId,
 SDBR_PROPLIST*   pLinkPropList)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

リンク識別子を指定してプロパティを設定するメソッドです。

引数

pLinkId（入力）

リンク識別子を指定します。

pLinkPropList（入力）

リンクに設定するプロパティ情報をプロパティリスト構造体である，SDBR_PROPLIST構造体として指定します。なお，リンクに値を設定できるプロパティは，ユーザが定義したプロパティだけです。プロパティ識別子には，ユーザが定義したプロパティの識別子を指定してください。同じプロパティ識別子を指定したプロパティ構造体を複数指定した場合は，エラーになります。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::SetVTFixメソッド

機能

構成要素のバージョンの固定

形式

DmaBoolean CdbrConfiguratedReferentialContainer::SetVTFix(
 pDmaString_T       pLinkId,
 pDmaString_T       pCompoVersionId)

詳細

CdbrConfiguratedReferentialContainerオブジェクトのpLinkIdで指定した構成要素のバージョンを，pCompoVersionIdで指定したバージョンで固定する（構成管理モードにFIXモードを設定する）メソッドです。

このメソッドによってバージョンを固定したあとは，構成要素がバージョンアップしても，CdbrConfiguratedReferentialContainerオブジェクトは固定したバージョンの構成要素を参照し続けます。

すでにFIXモードで構成管理しているオブジェクトに対してこのメソッドをコールした場合は，FIXモードのまま正常終了します。

引数

pLinkId（入力）

バージョンを固定する構成要素のリンク識別子を指定します。リンク識別子は，CdbrConfiguratedReferentialContainer::GetVTContaineeListメソッドまたはCdbrConfiguratedReferentialContainer::GetVTContaineeListAndLockメソッドで取得します。

pCompoVersionId（入力）

固定するバージョンのバージョン識別子を指定します。

なお，DBR_VTVERSIONを指定した場合には現時点で関連づけられているバージョンで固定されます。NULLを指定した場合にはカレントバージョンで固定されます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_FAILED | 操作が失敗しました。 | 時間を置いて再度実行するか，処理を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::SetVTFloatメソッド

機能

構成要素のバージョン固定の解除

形式

DmaBoolean CdbrConfiguratedReferentialContainer::SetVTFloat(
 pDmaString_T     pLinkId)

詳細

CdbrConfiguratedReferentialContainerオブジェクトが構成管理しているpLinkIdで指定した構成要素のバージョンの固定を解除する（構成管理モードにFLOATINGモードを設定する）メソッドです。

このメソッドをコールすると，CdbrConfiguratedReferentialContainerオブジェクトは，常に構成要素のカレントバージョンを参照するようにリンクをつなぎ替えます。

すでにFLOATINGモードで構成管理しているオブジェクトに対してこのメソッドをコールした場合は，FLOATINGモードのまま正常終了します。

引数

pLinkId（入力）

バージョン固定を解除する構成要素のリンク識別子を指定します。リンク識別子は，CdbrConfiguratedReferentialContainer::GetVTContaineeListメソッドで取得します。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_FAILED | 操作が失敗しました。 | 時間を置いて再度実行するか，処理を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::Unlinkメソッド

機能

Containableオブジェクトとの関連づけの解除

形式

// Containableオブジェクトを指定して解除する場合
DmaBoolean CdbrConfiguratedReferentialContainer::Unlink(
 pDmaString_T        pVersionId,
 CdbrContainable*    pDbrContainable)

// リンク識別子を指定して解除する場合
DmaBoolean CdbrConfiguratedReferentialContainer::Unlink(
 pDmaString_T        pLinkId)

詳細

CdbrConfiguratedReferentialContainerオブジェクトが包含しているContainableオブジェクト（CdbrContainableクラスのサブクラスのオブジェクト）を指定して，関連づけを解除するメソッドです。

また，リンク識別子を指定して関連づけを解除することもできます。

指定したオブジェクトと関連づけがされていない場合は，エラーになります。

なお，包含しているContainableオブジェクトやそのリンク識別子は，CdbrConfiguratedReferentialContainer::GetContainableListメソッドまたはCdbrConfiguratedReferentialContainer::GetContainableListAndLockメソッドによって取得できます。

引数

pVersionId（入力）

対象となるCdbrConfiguratedReferentialContainerオブジェクトのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドによって取得したものを指定します。チェックアウト中のオブジェクトに対しては仮のバージョン識別子を指定してください。

NULLを指定すると，カレントバージョンが対象になります。

pDbrContainable （入力）

関連づけを解除するオブジェクトを指定します。CdbrContainableクラスのサブクラスのオブジェクトを指定します。

pLinkId（入力）

関連づけを解除するオブジェクトのリンク識別子を指定します。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::UnlinkAndLockメソッド

機能

Containableオブジェクトとの関連づけの解除と同時に指定したロックの設定

形式

// Containableオブジェクトを指定して解除する場合
DmaBoolean CdbrConfiguratedReferentialContainer::UnlinkAndLock(
 pDmaString_T        pVersionId,
 CdbrContainable*    pDbrContainable,
 DmaInteger32        lLockType = DMA_LOCK_WRITE )

// リンク識別子を指定して解除する場合
DmaBoolean CdbrConfiguratedReferentialContainer::UnlinkAndLock(
 pDmaString_T        pLinkId,
 DmaInteger32        lLockType = DMA_LOCK_WRITE )

詳細

ロックタイプを明示的に指定し，CdbrConfiguratedReferentialContainerオブジェクトが包含しているContainableオブジェクト（CdbrContainableクラスのサブクラスのオブジェクト）を指定して，関連づけを解除するメソッドです。

また，リンク識別子を指定して関連づけを解除することもできます。

指定したオブジェクトと関連づけがされていない場合は，エラーになります。

なお，包含しているContainableオブジェクトやそのリンク識別子は，CdbrConfiguratedReferentialContainer::GetContainableListメソッドまたはCdbrConfiguratedReferentialContainer::GetContainableListAndLockメソッドによって取得できます。

引数

pVersionId（入力）

対象となるCdbrConfiguratedReferentialContainerオブジェクトのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドによって取得したものを指定します。チェックアウト中のオブジェクトに対しては仮のバージョン識別子を指定してください。

NULLを指定すると，カレントバージョンが対象になります。

pDbrContainable （入力）

関連づけを解除するオブジェクトを指定します。CdbrContainableクラスのサブクラスのオブジェクトを指定します。

pLinkId（入力）

関連づけを解除するオブジェクトのリンク識別子を指定します。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::UnlinkVTメソッド

機能

構成管理しているオブジェクトとの関連づけの解除

形式

DmaBoolean CdbrConfiguratedReferentialContainer::UnlinkVT(
 pDmaString_T        pLinkId)

詳細

CdbrConfiguratedReferentialContainerオブジェクトに関連づけて構成管理しているオブジェクトとの関連づけを解除するメソッドです。

指定したオブジェクトと関連づけされていないリンク識別子を指定した場合は，エラーになります。

引数

pLinkId（入力）

関連づけを解除する要素のリンク識別子を指定します。リンク識別子は，CdbrConfiguratedReferentialContainer::GetVTContaineeListメソッドまたはCdbrConfiguratedReferentialContainer::GetVTContaineeListAndLockメソッドで取得します。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrConfiguratedReferentialContainer::UnlinkVTAndLockメソッド

機能

構成管理しているオブジェクトとの関連づけの解除と同時に指定したロックの設定

形式

DmaBoolean CdbrConfiguratedReferentialContainer::UnlinkVTAndLock(
 pDmaString_T        pLinkId,
 DmaInteger32        lLockType = DMA_LOCK_WRITE)

詳細

ロックタイプを明示的に指定して，CdbrConfiguratedReferentialContainerオブジェクトに関連づけて構成管理しているオブジェクトとの関連づけを解除するメソッドです。

指定したオブジェクトと関連づけされていないリンク識別子を指定した場合は，エラーになります。

引数

pLinkId（入力）

関連づけを解除する要素のリンク識別子を指定します。リンク識別子は，CdbrConfiguratedReferentialContainer::GetVTContaineeListメソッドまたはCdbrConfiguratedReferentialContainer::GetVTContaineeListAndLockメソッドで取得します。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドをの呼び出し後に，この操作を実行してください。

5.　CdbrContainableクラス（包含要素を扱うクラス）

コンテナの包含要素になる機能を提供するクラスです。つまり，コンテインメントで包含される要素を表すクラスです。

このクラスはほかのクラスのスーパークラスとして存在する抽象クラスです。このクラス単独のインスタンスは作成できません。

＜この章の構成＞

CdbrContainableクラスの詳細

CdbrContainable::~CdbrContainableメソッド

CdbrContainable::BindPublicACLメソッド

CdbrContainable::CdbrContainableメソッド

CdbrContainable::GetContainerListメソッド

CdbrContainable::GetContainerListAndLockメソッド

CdbrContainable::GetPublicACLListメソッド

CdbrContainable::GetPublicACLListAndLockメソッド

CdbrContainable::UnbindPublicACLメソッド

CdbrContainableクラスの詳細

スーパークラス

プロパティ一覧

プロパティの一覧を次に示します。

表5-1　CdbrContainableクラスのプロパティ

プロパティ名 | プロパティ識別子 | データ型 | 読み取り専用
OIID | dmaProp_OIID | String型 | ○
ContainersCount | dbrProp_ContainersCount | Integer32型 | ○
ParentCount | dbrProp_ParentCount | Integer32型 | ○

アクセス制御機能を使用している場合は，次のクラスライブラリの固有のプロパティが追加されます。

表5-2　CdbrContainableクラスのプロパティ（アクセス制御機能を使用する場合に追加されるクラスライブラリ固有のプロパティ）

プロパティ名
プロパティ識別子
データ型※¹
読み取り専用

OwnerId
dbrProp_OwnerId
String型
－※²

UserPermission
dbrProp_UserPermission
Integer32型
○

PrimaryGroupId
dbrProp_PrimaryGroupId
String型
－※³

ACL
dbrProp_ACL
Object型
（VariableArray型）
－※³

SACL
dbrProp_SACL
Object型
（VariableArray型）
－※²

OwnerPermission
dbrProp_OwnerPermission
Integer32型
－※³

PrimaryGroupPermission
dbrProp_PrimaryGroupPermission
Integer32型
－※³

EveryonePermission
dbrProp_EveryonePermission
Integer32型
－※³

PublicACLCount
dbrProp_PublicACLCount
Integer32型
○

PublicACLIds
dbrProp_PublicACLIds
Object型
（VariableArray型）
－※³

注※1

基本単位がScalar型以外の場合は，（　）に基本単位を示します。

注※2

変更は，そのオブジェクトの所有者およびセキュリティ管理者だけが実行できます。

注※3

変更は，そのオブジェクトの所有者，セキュリティACLでアクセス制御情報変更権を与えられたユーザ，およびセキュリティ管理者だけが実行できます。

プロパティ詳細

DMAで規定されているプロパティ

OIID
オブジェクトを識別するGUID文字列です。実体はDMAオブジェクトのOIIDです。

CdbrDMAクラスから継承されるプロパティ（アクセス制御機能を使用する場合）

OwnerId

UserPermission
これらのプロパティの詳細については，「CdbrDMAクラスの詳細」のプロパティ詳細を参照してください。

CdbrContainableクラスで導入されるプロパティ

ContainersCount
参照型の包含関係でこのオブジェクトを包含しているCdbrReferentialContainerオブジェクトおよびCdbrConfiguratedReferentialContainerオブジェクトの個数を表します。

ParentCount
直接型の包含関係でこのオブジェクトを包含しているCdbrReferentialContainerオブジェクトおよびCdbrConfiguratedReferentialContainerオブジェクトの個数を表します。

CdbrContainableクラスで導入されるプロパティ（アクセス制御機能を使用する場合）

PrimaryGroupId
プライマリグループのグループ識別子を表します。

ACL
オブジェクトのACL（ローカルACL）を表します。

SACL
オブジェクトのセキュリティACLを表します。

OwnerPermission
ACFlagのうち，所有者のパーミッションを表します。

PrimaryGroupPermission
アクセス制御フラグ（ACFlag）のうち，プライマリグループのパーミッションを表します。

EveryonePermission
アクセス制御フラグ（ACFlag）のうち，全ユーザのパーミッションを表します。

PublicACLCount
オブジェクトがバインドしているパブリックACLの数を表します。

PublicACLIds
オブジェクトがバインドしているパブリックACLのOIIDのリストを表します。
パブリックACLのOIIDのリストは，OIIDを構成要素としたVariableArray型プロパティとして作成します。まず，CdbrCompoundクラスのメソッドを使用して，バインドするパブリックACLのOIIDをCdbrCompoundクラスのオブジェクトのdbrProp_ACLIdElemプロパティに設定します。これを，CdbrVariableArrayクラスのメソッドを使用してVariableArray型プロパティの構成要素とします。このプロパティの値をSDBR_PROP構造体に設定してから，バインドするオブジェクトのCreateObjectメソッドやPutPropertyValuesメソッドの引数に指定してメソッドをコールします。これによって，パブリックACLはオブジェクトにバインドできます。
なお，すでにパブリックACLをバインドしているオブジェクトに対してパブリックACLを追加したい場合は，BindPublicACLメソッドを使用してください。

メソッド一覧

CdbrCoreクラスから継承されるメソッド

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

これらのメソッドの詳細については，「6.　CdbrCoreクラス（エラー情報を取得するクラス）」を参照してください。

CdbrDMAクラスから継承されるメソッド

メソッド | 機能
~CdbrDMA | デストラクタ
CdbrDMA | コンストラクタ
ConnectObject | オブジェクトを指定したモードでロックして接続
GetOIID | OIIDの取得
GetPropertyValues | プロパティの取得
GetPropertyValuesAndLock | プロパティの取得と同時に指定したロックの設定
GetType | オブジェクトの種別の取得
PutPropertyValues | プロパティの設定
ReleaseObject | オブジェクトとの接続の解除
RemoveObject | オブジェクトの削除
SetOIID | OIIDの設定

これらのメソッドの詳細については，「7.　CdbrDMAクラス（OIIDの設定やプロパティを扱うクラス）」を参照してください。

CdbrContainableクラスで導入されるメソッド

メソッド | 機能
~CdbrContainable | デストラクタ
BindPublicACL | パブリックACLのバインド
CdbrContainable | コンストラクタ
GetContainerList | コンテナの一覧取得
GetContainerListAndLock | コンテナの一覧取得と同時に指定したロックの設定
GetPublicACLList | バインドしているパブリックACL一覧情報の取得
GetPublicACLListAndLock | バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定
UnbindPublicACL | パブリックACLのアンバインド

以降，CdbrContainableクラスで導入されるメソッドについて次に説明します。

CdbrContainable::~CdbrContainableメソッド

機能

デストラクタ

形式

virtual ~CdbrContainable()

詳細

CdbrContainableオブジェクトのデストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrContainable::BindPublicACLメソッド

機能

パブリックACLのバインド

形式

DmaBoolean BindPublicACL(
 DmaInteger32       lIdListCount,
 ppDmaString_T      ppIdList)

詳細

パブリックACLをバインドするメソッドです。

ppIdListに複数のパブリックACLを指定することで，一度に複数のパブリックACLをバインドできます。

存在しないOIIDを指定した場合，重複したOIIDを指定した場合，すでにバインドされているパブリックACLのOIIDを指定した場合，およびバインド数の制限値を超えた場合は，エラーになります。

引数

lIdListCount（入力）

バインドするパブリックACLの個数を指定します。0以下の数を指定するとエラーになります。

ppIdList（入力）

バインドするパブリックACLのOIID文字列のポインタ配列を指定します。NULLを指定するとエラーになります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御機能が未サポートです。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_PUBLICACL_COUNT | バインドするパブリックACLの個数が制限値を超えています。 | パブリックACLは10個以内で指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_NONEXISTS_PUBLICACL | 指定されたパブリックACLは存在しません。 | 存在しないパブリックACLを指定しないで処理を再実行してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドでOIIDを設定するか，ConnectObjectメソッドでオブジェクトを接続してください。
ERR_DBR | ERR_PUBLICACL_ALREADY_BOUND | 指定されたパブリックACLはすでにバインドされています。 | すでにバインドされているパブリックACLを指定しないで処理を再実行してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrContainable::CdbrContainableメソッド

機能

コンストラクタ

形式

CdbrContainable()

詳細

CdbrContainableオブジェクトのコンストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrContainable::GetContainerListメソッド

機能

コンテナの一覧取得

形式

// コンテナの一覧を取得する場合
DmaBoolean GetContainerList(
 pDmaBoolean         pbContinue,
 DmaInteger32        lContainmentType,
 DmaInteger32        lPropDefListCount,
 SDBR_PROPDEF*       pPropDefList,
 DmaInteger32        lObjListCount,
 SDBR_OBJLIST**      ppObjList )

// コンテナの一覧とそのリンク情報を取得する場合
DmaBoolean GetContainerList(
 pDmaBoolean            pbContinue,
 DmaInteger32           lContainmentType,
 DmaInteger32           lPropDefListCount,
 SDBR_PROPDEF*          pPropDefList,
 DmaInteger32           lLinkPropDefListCount,
 SDBR_PROPDEF*          pLinkPropDefList,
 DmaInteger32           lObjListCount,
 SDBR_LINKEDOBJLIST**   ppLinkedObjList )

// クラスを指定してコンテナの一覧とそのリンク情報を取得する場合
DmaBoolean GetContainerList(
 pDmaBoolean            pbContinue,
 DmaInteger32           lContainmentType,
 DmaInteger32           lClassType,
 DmaInteger32           lPropDefListCount,
 SDBR_PROPDEF*          pPropDefList,
 DmaInteger32           lLinkPropDefListCount,
 SDBR_PROPDEF*          pLinkPropDefList,
 DmaInteger32           lObjListCount,
 SDBR_LINKEDOBJLIST**   ppLinkedObjList )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
 pDmaString_T       pOIID;         // オブジェクトのOIID
 DmaInteger32       lType;         // オブジェクトの種別
 SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
  DmaInteger32      lCount;
  SDBR_OBJINFO*     pItem;
};

// リンク付きオブジェクト情報構造体
struct SDBR_LINKEDOBJINFO{
 pDmaString_T   pOIID;        // オブジェクトのOIID
 DmaInteger32   lType;        // オブジェクトの種別
 pDmaString_T   pLinkId;      // リンクの識別子
 SDBR_PROPLIST  PropList;     // オブジェクトのプロパティリスト
 SDBR_PROPLIST  LinkPropList; // リンクのプロパティリスト
};

// リンク付きオブジェクトリスト構造体
struct SDBR_LINKEDOBJLIST{
 DmaInteger32        lCount; //リンク付きオブジェクト情報の個数
 SDBR_LINKEDOBJINFO* pItem;  //リンク付きオブジェクト情報
};

詳細

このオブジェクトを包含しているコンテナ（CdbrReferentialContainerオブジェクトおよびCdbrVersionTraceableContainerオブジェクト）の一覧を取得するメソッドです。その際，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティの値も取得します。また，pLinkPropDefListに指定したプロパティを持つリンクについては，そのプロパティの値も取得します。

初回のメソッドのコールですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて初回にメソッドをコールした時点での状態を示しています。したがって，１回目のメソッドのコール要素の個数に変更がなく，同じオブジェクトに対するメソッドのコールであっても，取得される情報の順序は常に異なる可能性があります。

次に，CdbrContainableクラスのサブクラスのオブジェクトである，CdbrVersionableDocumentオブジェクトを包含するCdbrReferentialContainerオブジェクトの一覧を10個ずつ取得して，そのOIIDを出力する例を示します。なお，エラー処理は省略しています。

包含要素一覧の取得例

SDBR_OBJLIST* pObjList = NULL;
DmaInteger32  lLoop;
DmaBoolean    bContinue = DMA_UNKNOWN;
//すべての要素を取得します。
while (bContinue != DMA_FALSE) {
   //情報の取得
   pDbrVerDoc->GetContainerList(&bContinue,
   DBR_CONTAINMENT_REFERENTIAL, 0, NULL, 10, &pObjList);
   //取得数だけループして，OIIDを出力します。
   for (lLoop = 0; lLoop < pObjList->lCount; lLoop++) {
       printf("OIID=%s¥n", pObjList->pItem[lLoop].pOIID);
   }
}

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得の残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてメソッドをコールした場合または前回の読み出しですべて取得した場合は，DMA_FALSEを指定したものとして処理されます。また，前回実行したときと引数が異なるメソッドが実行された場合は，pbContinueの値を無視して，新たに先頭から取得します。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合はDMA_TRUEが設定されます。

2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について，次に示します。

表5-3　ほかの引数の扱われ方（SDBR_OBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
lContainmentType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppObjList | ○ | ○

（凡例）

○：有効

×：無効

表5-4　ほかの引数の扱われ方（SDBR_LINKEDOBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
lContainmentType | × | ○
lClassType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lLinkPropDefListCount | × | ○
pLinkPropDefList | × | ○
lObjListCount | ○ | ○
ppLinkedObjList | ○ | ○

（凡例）

○：有効

×：無効

lContainmentType（入力）

対象となるコンテインメントの種類を指定します。次のどちらかの値を指定します。

DBR_CONTAINMENT_DIRECT：
直接型のコンテインメントを設定します。DMAオブジェクトのDirectContainmentRelationshipオブジェクトを使用した関連づけです。

DBR_CONTAINMENT_REFERENTIAL：
参照型のコンテインメントを設定します。DMAオブジェクトのReferentialContainmentRelationshipオブジェクトを使用した関連づけです。

DBR_CONTAINMENT_VERSIONTRACEABLE：
構成管理型のコンテインメントを設定します。DMAオブジェクトのVersionTraceableContainmentRelationshipオブジェクトを使用した関連づけです。

*pbContinueにDMA_TRUEを指定して継続取得する場合，継続取得の開始時に指定された種別が有効になり，この値は無視されます。

lClassType（入力）

指定したクラス識別子の要素だけを取得します。指定できる識別子を次に示します。

表5-5　クラス識別子の一覧

クラス識別子 | クラスライブラリのクラス
DBR_CLASS_REFERENTIALCONTAINER | CdbrReferentialContainerクラス
DBR_CLASS_RFCT_OR_VTCT | CdbrVersionTraceableContainerクラスまたはCdbrReferentialContainerクラス
DBR_CLASS_VERSIONTRACEABLECONTAINER | CdbrVersionTraceableContainerクラス
DBR_CLASS_ALL | 上記すべてのクラス

それぞれのクラスの識別子をOR条件を指定した取得もできます。CdbrReferentialContainerクラスとCdbrVersionTraceableContainerクラスの要素を取得したい場合は，DBR_CLASS_RFCT_OR_VTCTを指定してください。

コンテナを表すすべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。

lPropDefListCount（入力）

pPropDefListの要素数を指定します。0を指定した場合は，プロパティを取得しません。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定した場合は，エラーになります。

情報を取得するオブジェクトがこのプロパティを持つ場合，(*ppObjList)->Item[n].PropListにプロパティ情報が設定されます。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lLinkPropDefListCount（入力）

pLinkPropDefListの要素数を指定します。0を指定した場合はプロパティを取得しません。負の値を指定した場合は，エラーになります。

pLinkPropDefList（入力）

同時に取得するリンクのプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。リンクのプロパティ識別子として指定できるのは，ユーザが定義したプロパティの識別子だけです。

プロパティを取得しない場合はNULLを指定します。なお，lLinkPropDefListCountが正の整数のときにpLinkPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppObjList（出力）

オブジェクト情報リストである，SDBR_OBJLIST構造体へのポインタが設定されます。ポインタを格納する領域を指定してください。*ppObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムで，dbrDelete関数を使用して解放してください。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppLinkedObjList（出力）

リンク付きオブジェクト情報リストである，SDBR_LINKEDOBJLIST構造体へのポインタが設定されます。ポインタを格納する領域を指定してください。*ppObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_LINKEDOBJLIST構造体およびSDBR_LINKEDOBJINFO構造体に設定される内容については，「付録C.1(7)　SDBR_LINKEDOBJLIST構造体（リンク付きオブジェクトリスト構造体）」および「付録C.1(6)　SDBR_LINKEDOBJINFO構造体（リンク付きオブジェクト情報構造体）」を参照してください。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrContainable::GetContainerListAndLockメソッド

機能

コンテナの一覧取得と同時に指定したロックの設定

形式

// コンテナの一覧を取得する場合
DmaBoolean GetContainerListAndLock(
 pDmaBoolean         pbContinue,
 DmaInteger32        lContainmentType,
 DmaInteger32        lPropDefListCount,
 SDBR_PROPDEF*       pPropDefList,
 DmaInteger32        lObjListCount,
 SDBR_OBJLIST**      ppObjList,
 DmaInteger32        lLockType = DMA_LOCK_WRITE )

// コンテナの一覧とそのリンク情報を取得する場合
DmaBoolean GetContainerListAndLock(
 pDmaBoolean            pbContinue,
 DmaInteger32           lContainmentType,
 DmaInteger32           lPropDefListCount,
 SDBR_PROPDEF*          pPropDefList,
 DmaInteger32           lLinkPropDefListCount,
 SDBR_PROPDEF*          pLinkPropDefList,
 DmaInteger32           lObjListCount,
 SDBR_LINKEDOBJLIST**   ppLinkedObjList,
 DmaInteger32           lLockType = DMA_LOCK_WRITE )

// クラスを指定してコンテナの一覧とそのリンク情報を取得する場合
DmaBoolean GetContainerListAndLock(
 pDmaBoolean            pbContinue,
 DmaInteger32           lContainmentType,
 DmaInteger32           lClassType,
 DmaInteger32           lPropDefListCount,
 SDBR_PROPDEF*          pPropDefList,
 DmaInteger32           lLinkPropDefListCount,
 SDBR_PROPDEF*          pLinkPropDefList,
 DmaInteger32           lObjListCount,
 SDBR_LINKEDOBJLIST**   ppLinkedObjList,
 DmaInteger32           lLockType = DMA_LOCK_WRITE )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
 pDmaString_T       pOIID;         // オブジェクトのOIID
 DmaInteger32       lType;         // オブジェクトの種別
 SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
  DmaInteger32      lCount;
  SDBR_OBJINFO*     pItem;
};

// リンク付きオブジェクト情報構造体
struct SDBR_LINKEDOBJINFO{
 pDmaString_T   pOIID;        // オブジェクトのOIID
 DmaInteger32   lType;        // オブジェクトの種別
 pDmaString_T   pLinkId;      // リンクの識別子
 SDBR_PROPLIST  PropList;     // オブジェクトのプロパティリスト
 SDBR_PROPLIST  LinkPropList; // リンクのプロパティリスト
};

// リンク付きオブジェクトリスト構造体
struct SDBR_LINKEDOBJLIST{
 DmaInteger32        lCount; //リンク付きオブジェクト情報の個数
 SDBR_LINKEDOBJINFO* pItem;  //リンク付きオブジェクト情報
};

詳細

ロックタイプを明示的に指定して，このオブジェクトを包含しているコンテナ（CdbrReferentialContainerオブジェクトおよびCdbrVersionTraceableContainerオブジェクト）の一覧を取得するメソッドです。その際，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティの値も取得します。また，pLinkPropDefListに指定したプロパティを持つリンクについては，そのプロパティの値も取得します。

初回のメソッドのコールですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて初回にメソッドをコールした時点での状態を示しています。したがって，１回目のメソッドのコール以降に変更した要素数やプロパティの値は，２回目以降のコールに反映されません。

要素の個数に変更がなく，同じオブジェクトに対するメソッドのコールであっても，取得される情報の順序は常に異なる可能性があります。

次に，CdbrContainableクラスのサブクラスのオブジェクトである，CdbrVersionableDocumentオブジェクトを包含するCdbrReferentialContainerオブジェクトの一覧を10個ずつ取得して，そのOIIDを出力する例を示します。なお，エラー処理は省略しています。

包含要素一覧の取得例

SDBR_OBJLIST* pObjList = NULL;
DmaInteger32  lLoop;
DmaBoolean    bContinue = DMA_UNKNOWN;
//すべての要素を取得します。
while (bContinue != DMA_FALSE) {
   //情報の取得
   pDbrVerDoc->GetContainerListAndLock(&bContinue,
   DBR_CONTAINMENT_REFERENTIAL, 0, NULL, 10, &pObjList,
   DMA_LOCK_READ);
   //取得数だけループして，OIIDを出力します。
   for (lLoop = 0; lLoop < pObjList->lCount; lLoop++) {
       printf("OIID=%s¥n", pObjList->pItem[lLoop].pOIID);
   }
}

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得の残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてメソッドをコールした場合または前回の読み出しですべて取得した場合は，すべてDMA_FALSEを指定したものとして処理されます。また，前回実行したときと引数が異なるメソッドが実行された場合は，pbContinueの値を無視して，新たに先頭から取得します。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合はDMA_TRUEが設定されます。

次に，2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について示します。

表5-6　ほかの引数の扱われ方（SDBR_OBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
lContainmentType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppObjList | ○ | ○
lLockType | × | ○

（凡例）

○：有効

×：無効

表5-7　ほかの引数の扱われ方（SDBR_LINKEDOBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
lContainmentType | × | ○
lClassType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lLinkPropDefListCount | × | ○
pLinkPropDefList | × | ○
lObjListCount | ○ | ○
ppLinkedObjList | ○ | ○
lLockType | × | ○

（凡例）

○：有効

×：無効

lContainmentType（入力）

対象となるコンテインメントの種類を指定します。次のどちらかの値を指定します。

DBR_CONTAINMENT_DIRECT：
直接型のコンテインメントを設定します。DMAオブジェクトのDirectContainmentRelationshipオブジェクトを使用した関連づけです。

DBR_CONTAINMENT_REFERENTIAL：
参照型のコンテインメントを設定します。DMAオブジェクトのReferentialContainmentRelationshipオブジェクトを使用した関連づけです。

DBR_CONTAINMENT_VERSIONTRACEABLE：
構成管理型のコンテインメントを設定します。DMAオブジェクトのVersionTraceableContainmentRelationshipオブジェクトを使用した関連づけです。

*pbContinueにDMA_TRUEを指定して継続取得する場合，継続取得の開始時に指定された種別が有効になり，この値は無視されます。

lClassType（入力）

指定したクラス識別子の要素だけを取得します。指定できる識別子を次に示します。

表5-8　クラス識別子の一覧

クラス識別子 | クラスライブラリのクラス
DBR_CLASS_REFERENTIALCONTAINER | CdbrReferentialContainerクラス
DBR_CLASS_RFCT_OR_VTCT | CdbrVersionTraceableContainerクラスまたはCdbrReferentialContainerクラス
DBR_CLASS_VERSIONTRACEABLECONTAINER | CdbrVersionTraceableContainerクラス
DBR_CLASS_ALL | 上記すべてのクラス

それぞれのクラスの識別子をOR条件を指定した取得もできます。CdbrReferentialContainerクラスとCdbrVersionTraceableContainerクラスの要素を取得したい場合は，DBR_CLASS_RFCT_OR_VTCTを指定してください。

コンテナを表すすべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。

lPropDefListCount（入力）

pPropDefListの要素数を指定します。0を指定した場合は，プロパティを取得しません。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定した場合は，エラーになります。

情報を取得するオブジェクトがこのプロパティを持つ場合，(*ppObjList)->Item[n].PropListにプロパティ情報が設定されます。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lLinkPropDefListCount（入力）

pLinkPropDefListの要素数を指定します。0を指定した場合は，プロパティを取得しません。負の値を指定した場合は，エラーになります。

pLinkPropDefList（入力）

同時に取得するリンクのプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。リンクのプロパティ識別子として指定できるのは，ユーザが定義したプロパティの識別子だけです。

プロパティを取得しない場合はNULLを指定します。なお，lLinkPropDefListCountが正の整数のときにpLinkPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppObjList（出力）

オブジェクト情報リストである，SDBR_OBJLIST構造体へのポインタが設定されます。ポインタを格納する領域を指定してください。*ppObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppLinkedObjList（出力）

リンク付きオブジェクト情報リストである，SDBR_LINKEDOBJLIST構造体へのポインタが設定されます。ポインタを格納する領域を指定してください。*ppObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_LINKEDOBJLIST構造体およびSDBR_LINKEDOBJINFO構造体に設定される内容については，「付録C.1(7)　SDBR_LINKEDOBJLIST構造体（リンク付きオブジェクトリスト構造体）」および「付録C.1(6)　SDBR_LINKEDOBJINFO構造体（リンク付きオブジェクト情報構造体）」を参照してください。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次の値のどれかを設定します。

DMA_LOCK_READ
readロックを設定します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_READ | DBR_RLT_FOR_UPDATE
readロックを設定し，更新・削除用の一覧を取得します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

DMA_LOCK_WRITE | DBR_RLT_FOR_UPDATE
排他的なwriteロックを設定し，更新・削除用の一覧を取得します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrContainable::GetPublicACLListメソッド

機能

バインドしているパブリックACL一覧情報の取得

形式

DmaBoolean GetPublicACLList(
 DmaInteger32       lPropDefListCount,
 SDBR_PROPDEF*      pPropDefList,
 SDBR_OBJLIST**     ppObjList)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
  DmaId             PropId;        //プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;     //Boolean型
    pDmaInteger32    plInteger32;   //Integer32型
    pDmaId           pId;           //ID型
    pDmapv           ppObject;      //Object型
    ppDmaString_T    ppString;      //String型
  } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
 pDmaString_T       pOIID;         // オブジェクトのOIID
 DmaInteger32       lType;         // オブジェクトの種別
 SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
  DmaInteger32      lCount;
  SDBR_OBJINFO*     pItem;
};

詳細

オブジェクトがバインドしているパブリックACLの一覧情報を取得するメソッドです。その際，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティ値も取得します。

オブジェクトがバインドしているパブリックACLの一覧情報はppObjListに設定されます。

引数

lPropDefListCount（入力）

pPropDefListの要素数を指定します。

プロパティを取得しない場合は0を指定してください。負の値を指定した場合はエラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。NULLはlPropDefListCountが0の場合に指定できます。lPropDefListCountが正の整数のときにpPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppObjList（出力）

取得した情報を格納するオブジェクトリスト構造体である，SDBR_OBJLIST構造体へのポインタが設定されます。NULLを指定した場合はエラーになります。

*ppObjListがポイントするメモリは，クラスライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。ただし，SDBR_OBJINFO構造体のpOIIDにはパブリックACLのOIIDが設定されます。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御機能が未サポートです。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドでOIIDを設定するか，ConnectObjectメソッドでオブジェクトを接続してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrContainable::GetPublicACLListAndLockメソッド

機能

バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定

形式

DmaBoolean GetPublicACLListAndLock(
 DmaInteger32       lPropDefListCount,
 SDBR_PROPDEF*      pPropDefList,
 SDBR_OBJLIST**     ppObjList,
 DmaInteger32       lLockType = DMA_LOCK_WRITE)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
  DmaId             PropId;        //プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;     //Boolean型
    pDmaInteger32    plInteger32;   //Integer32型
    pDmaId           pId;           //ID型
    pDmapv           ppObject;      //Object型
    ppDmaString_T    ppString;      //String型
  } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
 pDmaString_T       pOIID;         // オブジェクトのOIID
 DmaInteger32       lType;         // オブジェクトの種別
 SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
  DmaInteger32      lCount;
  SDBR_OBJINFO*     pItem;
};

詳細

ロックタイプを明示的に指定して，オブジェクトがバインドしているパブリックACLの一覧情報を取得するメソッドです。その際，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティ値も取得します。

オブジェクトがバインドしているパブリックACLの一覧情報はppObjListに設定されます。

引数

lPropDefListCount（入力）

pPropDefListの要素数を指定します。

プロパティを取得しない場合は0を指定してください。負の値を指定した場合はエラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。NULLはlPropDefListCountが0の場合に指定できます。lPropDefListCountが正の整数のときにpPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppObjList（出力）

取得した情報を格納するオブジェクトリスト構造体である，SDBR_OBJLIST構造体へのポインタが設定されます。NULLを指定した場合はエラーになります。

*ppObjListがポイントするメモリは，クラスライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。ただし，SDBR_OBJINFO構造体のpOIIDにはパブリックACLのOIIDが設定されます。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御機能が未サポートです。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドでOIIDを設定するか，ConnectObjectメソッドでオブジェクトを接続してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrContainable::UnbindPublicACLメソッド

機能

パブリックACLのアンバインド

形式

// 指定したパブリックACLをアンバインドする場合
DmaBoolean UnbindPublicACL(
 DmaInteger32       lIdListCount,
 ppDmaString_T      ppIdList)

// すへてのパブリックACLをアンバインドする場合
DmaBoolean UnbindPublicACL()

詳細

オブジェクトからパブリックACLをアンバインドするメソッドです。

複数のパブリックACLを一度にアンバインドしたり，すべてのパブリックACLを一度にアンバインドしたりできます。

指定したパブリックACLのOIIDがバインドされていない場合，または重複したOIIDを指定した場合はエラーになります。

引数

lIdListCount（入力）

アンバインドするパブリックACLの個数を指定します。0以下の数を指定するとエラーになります。

ppIdList（入力）

アンバインドするパブリックACLのOIIDのポインタ配列を指定します。

NULLを指定するとエラーになります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御機能が未サポートです。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_NONEXISTS_PUBLICACL | 指定されたパブリックACLは存在しません。 | 存在しないパブリックACLを指定しないで処理を再実行してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドでOIIDを設定するか，ConnectObjectメソッドでオブジェクトを接続してください。
ERR_DBR | ERR_PUBLICACL_NOT_BOUND | 指定されたパブリックACLはバインドされていません。 | バインドされているパブリックACLを指定して処理を再実行してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

6.　CdbrCoreクラス（エラー情報を取得するクラス）

クラスライブラリのクラスのうち，CdbrVariableArrayクラスおよびCdbrCompoundクラス以外のすべてのクラスのスーパークラスです。このクラスは，エラー管理機能を提供します。

なお，このクラスは抽象クラスです。このクラス単独のインスタンスは作成しません。

＜この章の構成＞

CdbrCoreクラスの詳細

CdbrCore::~CdbrCoreメソッド

CdbrCore::CdbrCoreメソッド

CdbrCore::GetDBErrorメソッド

CdbrCore::GetLastErrorメソッド

CdbrCoreクラスの詳細

スーパークラス

なし

プロパティ一覧

なし

メソッド一覧

CdbrCoreクラスで導入されるメソッド

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

以降，CdbrCoreクラスで導入されるメソッドについて説明します。

CdbrCore::~CdbrCoreメソッド

機能

デストラクタ

形式

virtual CdbrCore::~CdbrCore()

詳細

CdbrCoreオブジェクトのデストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrCore::CdbrCoreメソッド

機能

コンストラクタ

形式

CdbrCore::CdbrCore()

詳細

CdbrCoreオブジェクトのコンストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrCore::GetDBErrorメソッド

機能

データベースのエラーの取得

形式

void CdbrCore::GetDBError(
 pDmaInteger32  pSQLCode,
 ppDmaString_T  ppSQLState)

詳細

データベースのエラーを取得するメソッドです。データベースでエラーが発生した場合，CdbrCore::GetLastErrorメソッドによってmajor_codeに「ERR_DB」が設定されます。このとき，このメソッドを使用してデータベースの詳細なエラー情報を取得してください。

引数

pSQLCode（出力）

データベースのエラーとして，SQLCODEが設定されます。SQLCODEはデータベースの種類に依存しません。詳細については，ご使用のデータベースのマニュアルを参照してください。

ppSQLState（出力）

データベースのエラーとして，SQLSTATEが設定されます。詳細については，ご使用のデータベースのマニュアルを参照してください。なお，ユーザプログラムでは，ppSQLStateを解放しないでください。

戻り値

なし

戻り値の詳細

なし

CdbrCore::GetLastErrorメソッド

機能

エラー番号の取得

形式

DmaInteger32 CdbrCore::GetLastError(
 pDmaInteger32  plMinorCode,
 ppDmaString_T  ppErrorString = NULL)

詳細

各オブジェクトで発生したエラー情報を取得するメソッドです。

エラー番号は，オブジェクトごとに管理されています。このため，エラー情報を取得するときには，エラーが発生したオブジェクトのGetLastErrorをコールしてください。

plMinorCodeにNULLを設定した場合は，戻り値にmajor_codeだけが返されます。

引数

plMinorCode（出力）

エラーのmajor_codeが次のどれかの場合，戻り値の詳細のminor_codeが設定されます。

ERR_DMA

ERR_DBR

ERR_DB

NULLを指定した場合は，戻り値としてmajor_codeだけが設定されます。

ppErrorString（出力）

戻り値の詳細のmajor_codeがERR_CORBAのとき，VisiBrokerによって返却される例外名を格納したポインタが設定されます。

ppErrorStringを指定しない場合またはNULLを指定した場合は，CORBAの例外名は設定されません。

なお，ユーザプログラムでppErrorStringを解放しないでください。

戻り値

major_code

戻り値の詳細

なし

7.　CdbrDMAクラス（OIIDの設定やプロパティを扱うクラス）

DMAのオブジェクトモデルのdmaClass_DMAクラスに対応するクラスです。

ほかのクラスのスーパークラスとして存在する抽象クラスで，DMAオブジェクトに対する共通機能を提供し，OIIDの取得およびプロパティの参照や設定をするメソッドを定義します。このクラス単独のインスタンスは作成しません。

＜この章の構成＞

CdbrDMAクラスの詳細

CdbrDMA::~CdbrDMAメソッド

CdbrDMA::CdbrDMAメソッド

CdbrDMA::ConnectObjectメソッド

CdbrDMA::GetOIIDメソッド

CdbrDMA::GetPropertyValuesメソッド

CdbrDMA::GetPropertyValuesAndLockメソッド

CdbrDMA::GetTypeメソッド

CdbrDMA::PutPropertyValuesメソッド

CdbrDMA::ReleaseObjectメソッド

CdbrDMA::RemoveObjectメソッド

CdbrDMA::SetOIIDメソッド

CdbrDMAクラスの詳細

スーパークラス

プロパティ一覧

プロパティの一覧を次に示します。

表7-1　CdbrDMAクラスのプロパティ

プロパティ名 | プロパティ識別子 | データ型 | 読み取り専用
OIID | dmaProp_OIID | String型 | ○

アクセス制御機能を使用している場合は,次のクラスライブラリの固有のプロパティが追加されます。

表7-2　CdbrDMAクラスのプロパティ（アクセス制御機能を使用する場合に追加されるクラスライブラリ固有のプロパティ）

プロパティ名 | プロパティ識別子 | データ型 | 読み取り専用
OwnerId | dbrProp_OwnerId | String型 | －※
UserPermission | dbrProp_UserPermission | Integer32型 | ○

注※

変更は所有者またはセキュリティ管理者だけが実行できます。

プロパティ詳細

CdbrDMAクラスで導入されるプロパティ

OIID
オブジェクトを識別するGUID文字列です。実体はDMAオブジェクトのOIIDです。

CdbrDMAクラスで導入されるプロパティ（アクセス制御機能を使用する場合に追加されるクラスライブラリ固有のプロパティ）

OwnerId
オブジェクトの所有者のユーザ識別子を表します。このプロパティを更新できるのは，オブジェクトの所有者またはセキュリティ管理者だけです。

UserPermission
オブジェクトに付与されたログインユーザのパーミッションを表します。すなわち，オブジェクトに設定されているACFlag，パブリックACLなどのアクセス制御情報のうち，ログインユーザまたはログインユーザが所属するグループに与えられているパーミッションの論理和を表します。
なお，次に示すように，CdbrDMAのサブクラスのインスタンスによって，パーミッションの論理和を取る際に対象となるアクセス制御情報が異なります。

表7-3　パーミッションの論理和を取る際に対象となるアクセス制御情報

クラス | 対象となるアクセス制御情報
CdbrContainableクラスとそのサブクラス | ACFlag，ローカルACL，およびバインドしているパブリックACL
CdbrIndependentPersistenceクラス
CdbrPublicACLクラス | ローカルACL（複数のオブジェクトに共有されているACL）

メソッド一覧

CdbrCoreクラスから継承されるメソッド

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

これらのメソッドの詳細については，「6.　CdbrCoreクラス（エラー情報を取得するクラス）」を参照してください。

CdbrDMAクラスで導入されるメソッド

メソッド | 機能
~CdbrDMA | デストラクタ
CdbrDMA | コンストラクタ
ConnectObject | オブジェクトを指定したモードでロックして接続
GetOIID | OIIDの取得
GetPropertyValues | プロパティの取得
GetPropertyValuesAndLock | プロパティの取得と同時に指定したロックの設定
GetType | オブジェクトの種別の取得
PutPropertyValues | プロパティの設定
ReleaseObject | オブジェクトとの接続の解除
RemoveObject | オブジェクトの削除
SetOIID | OIIDの設定

以降，CdbrDMAクラスで導入されるメソッドについて説明します。

CdbrDMA::~CdbrDMAメソッド

機能

デストラクタ

形式

virtual ~CdbrDMA()

詳細

CdbrDMAオブジェクトのデストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrDMA::CdbrDMAメソッド

機能

コンストラクタ

形式

CdbrDMA()

詳細

CdbrDMAオブジェクトのコンストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrDMA::ConnectObjectメソッド

機能

オブジェクトを指定したモードでロックして接続

形式

virtual DmaBoolean  ConnectObject (
 CdbrSession*       pDbrSession,
 DmaInteger32       lLockType,
 pDmaString_T       pOIID )

詳細

pOIIDで指定したオブジェクトと接続するメソッドです。オブジェクトに指定したロックを設定します。オブジェクトにすでにロックがかけられていて，指定したロックが設定できなかった場合は，ロックが設定できるまでウエイトするか，またはエラーとして直ちに終了するかを指定できます。ウエイトする指定をした場合でも，タイムアウトまたはデッドロックが発生した場合は，直ちにエラーとして終了します。このとき，このメソッドの終了時の戻り値として「DMA_FALSE」が返却され，戻り値の詳細として「DMA_DB」が設定されます。

このメソッドを，一つのオブジェクトに対してReleaseObjectメソッドを介さずに２回以上コールした場合，既存の接続は変更されずに，あとのメソッドのコールがエラーになります。

引数

pDbrSession（入力）

CdbrSessionオブジェクトを指定します。

lLockType（入力）

ロックの種別と，ロックを設定するときにウエイトをするかどうかを指定します。次の値のどれかを指定してください。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックできなかった場合，ロックできるまでウエイトします。ただし，タイムアウトやデッドロックが発生した場合は終了します。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックできなかった場合，ロックできるまでウエイトします。ただし，タイムアウトやデッドロックが発生した場合は終了します。

EDM_LOCK_READ_NOWAIT
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックできなかった場合には，直ちに終了します。

EDM_LOCK_WRITE_NOWAIT
排他的なwriteロックを設定します。このロックを設定した場合，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックできなかった場合には，直ちに終了します。

pOIID（入力）

接続するオブジェクトのOIIDを指定します。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_ALREADY_CONNECTED | オブジェクトはすでに接続されています。 | この操作は実行できません。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | 引数で指定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_DISCONNECTED | 文書空間との接続が切断されました。 | セッションを接続してください。
ERR_DMA | DMARC_FAILED | 操作が失敗しました。 | 時間を置いて再度実行するか，処理を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrDMA::GetOIIDメソッド

機能

OIIDの取得

形式

DmaBoolean  GetOIID(
 ppDmaString_T       ppOIID)

詳細

オブジェクトのOIIDを取得するメソッドです。ここで取得するOIIDの実体は，対応するDMAオブジェクトのOIIDです。

ppOIIDに，OIID文字列へのポインタが設定されます。この文字列領域はオブジェクト内に確保されて，オブジェクトの消滅とともに破棄されます。したがって，メソッドをコールした側が破棄する必要はありません。オブジェクトの消滅以降もこの値を使用したい場合は，必ず内容をほかの領域に複写するようにしてください。

引数

ppOIID（出力）

OIID文字列へのポインタが設定されます。OIIDが特定できない場合，NULLが設定されます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_ALREADY_CONNECTED | オブジェクトはすでに接続されています。 | この操作は実行できません。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrDMA::GetPropertyValuesメソッド

機能

プロパティの取得

形式

virtual DmaBoolean GetPropertyValues(
 DmaInteger32         lPropDefListCount,
 SDBR_PROPDEF*        pPropDefList,
 SDBR_PROPLIST**      ppPropList )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;            // プロパティ情報の個数
   SDBR_PROP*        pItem;             // プロパティ情報
};

詳細

プロパティの値を一括して取得するメソッドです。

次に，プロパティを取得して標準出力に表示する例を示します。

プロパティの値の取得例

SDBR_PROPDEF   PropDef[2];
SDBR_PROPLIST* pPropList = NULL;
SDBR_PROP*     pProp = NULL;
int            i,j;

// 取得したいプロパティのIDをリストに設定します。
PropDef[0].PropId = PROPERTY_ID_OF_NUMBER;
PropDef[1].PropId = PROPERTY_ID_OF_AUTHORS;

// プロパティの値を取得します。
if (pDbrDMA->GetPropertyValues(2, PropDef, &pPropList)
== DMA_FALSE) {
   return DMA_FALSE;
}

// 型を判定して出力します。
for (i = 0; i < pPropList->lCount; i++) {
 pProp = &pPropList->pItem[i];
 if (memcmp(&pProp->PropId,&PROPERTY_ID_OF_NUMBER
   ,sizeof(PROPERTY_ID_OF_NUMBER)) == 0) {
   for(j = 0;j < pProp->lCount;j++) {
     printf("Number=%d¥n", pProp->uniValue.plInteger32[j]);
   }
 }
 else if (memcmp(&pProp->PropId,&PROPERTY_ID_OF_AUTHORS
   ,sizeof(PROPERTY_ID_OF_AUTHORS)) == 0) {
     for(j = 0;j < pProp->lCount;j++) {
       printf("Author=%s¥n", pProp->uniValue.ppString[j]);
     }
 }
}
// メモリの解放
dbrDelete (pPropList);

引数

lPropDefListCount（入力）

pPropDefListに指定した配列の要素数を指定します。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

取得するプロパティの定義情報の配列を，SDBR_PROPDEF構造体として指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定すると，エラーになります。SDBR_PROPDEF構造体の指定内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppPropList（出力）

取得したプロパティリスト構造体である，SDBR_PROPLIST構造体へのポインタが設定されます。ポインタを格納する領域を指定してください。*ppPropListがポイントする領域は，ライブラリが新たに確保したものです。この領域はメソッドをコールした側がdbrDelete関数を使用して解放してください。なお，プロパティがまったく取得されなかった場合は，NULLが設定されます。

SDBR_PROPLIST構造体およびSDBR_PROP構造体に設定される内容については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_ALREADY_CONNECTED | オブジェクトはすでに接続されています。 | この操作は実行できません。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_CLASSID | 指定された識別子は，利用できるオブジェクトのクラスではありません。 | 正しいクラス識別子を指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_DATATYPE_MISMATCH | プロパティのデータ型に適切ではないメソッドです。 | 正しい型を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | DMARC_VALUE_NOT_SET | 要求されたプロパティは値を保持していません。 | この操作は実行できません。

CdbrDMA::GetPropertyValuesAndLockメソッド

機能

プロパティの取得と同時に指定したロックの設定

形式

virtual DmaBoolean GetPropertyValuesAndLock(
 DmaInteger32         lPropDefListCount,
 SDBR_PROPDEF*        pPropDefList,
 SDBR_PROPLIST**      ppPropList,
 DmaInteger32         lLockType = DMA_LOCK_WRITE)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
 DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                   // プロパティの値
   pDmaBoolean      pbBoolean;             // Boolean型
   pDmaInteger32    plInteger32;           // Integer32型
   pDmaId           pId;                   // ID型
   pDmapv           ppObject;              // Object型
   ppDmaString_T    ppString;              // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;            // プロパティ情報の個数
   SDBR_PROP*        pItem;             // プロパティ情報
};

詳細

ロックタイプを明示的に指定して，プロパティの値を一括して取得するメソッドです。

次に，プロパティを取得して標準出力に表示する例を示します。

プロパティの値の取得例

SDBR_PROPDEF   PropDef[2];
SDBR_PROPLIST* pPropList = NULL;
SDBR_PROP*     pProp = NULL;
int            i,j;

// 取得したいプロパティのIDをリストに設定します。
PropDef[0].PropId = PROPERTY_ID_OF_NUMBER;
PropDef[1].PropId = PROPERTY_ID_OF_AUTHORS;

// プロパティの値を取得します。
if (pDbrDMA->GetPropertyValuesAndLock(2, PropDef,
   &pPropList,DMA_LOCK_READ) == DMA_FALSE) {
   return DMA_FALSE;
}

// 型を判定して出力します。
for (i = 0; i < pPropList->lCount; i++) {
 pProp = &pPropList->pItem[j];
 if (memcmp(&pProp->PropId,&PROPERTY_ID_OF_NUMBER
   ,sizeof(PROPERTY_ID_OF_NUMBER)) == 0) {
   for(j = 0;j < pProp->lCount;j++) {
     printf("Number=%d¥n", pProp->uniValue.plInteger32[j]);
   }
 }
 else if (memcmp(&pProp->PropId,&PROPERTY_ID_OF_AUTHORS
   ,sizeof(PROPERTY_ID_OF_AUTHORS)) == 0) {
     for(j = 0;j < pProp->lCount;j++) {
       printf("Author=%s¥n", pProp->uniValue.ppString[j]);
     }
 }
}
// メモリの解放
dbrDelete (pPropList);

引数

lPropDefListCount（入力）

pPropDefListに指定した配列の要素数を指定します。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

取得するプロパティの定義情報の配列を，SDBR_PROPDEF構造体として指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定すると，エラーになります。SDBR_PROPDEF構造体の指定内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppPropList（出力）

取得したプロパティリスト構造体である，SDBR_PROPLIST構造体へのポインタが設定されます。ポインタを格納する領域を指定してください。*ppPropListがポイントする領域は，ライブラリが新たに確保したものです。この領域はメソッドをコールした側がdbrDelete関数を使用して解放してください。なお，プロパティがまったく取得されなかった場合は，NULLが設定されます。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_ALREADY_CONNECTED | オブジェクトはすでに接続されています。 | この操作は実行できません。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_CLASSID | 指定された識別子は，利用できるオブジェクトのクラスではありません。 | 正しいクラス識別子を指定してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_DATATYPE_MISMATCH | プロパティのデータ型に適切ではないメソッドです。 | 正しい型を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | DMARC_VALUE_NOT_SET | 要求されたプロパティは値を保持していません。 | この操作は実行できません。

CdbrDMA::GetTypeメソッド

機能

オブジェクトの種別の取得

形式

DmaInteger32 GetType()

詳細

オブジェクトの種別を取得するメソッドです。オブジェクトの種別を示す値として，オブジェクトに対応するクラスライブラリのクラスを識別する定数が設定されます。あるクラスの識別定数と戻り値との論理積が0以外の場合，そのクラスのサブクラスであることを意味します。

なお，戻り値はクラスライブラリのクラスに関する情報を取得するものであり，クラスライブラリのクラスを継承したユーザ定義のクラスの識別や継承関係の判定には使用できません。例えば，CdbrVersionableDocumentクラスを直接継承したユーザ定義のクラスからこのメソッドをコールすると，異なるクラスであっても戻り値は常にDBR_CLASS_VERSIONABLEDOCUMENTになります。

次に，オブジェクトの種別を取得して，その結果を出力する例を示します。

オブジェクトの種別の取得例

// 種別の取得
DmaInteger32 lValue = pDbrObj->GetType();
// 値の判定
if (lValue == DBR_CLASS_REFERENTIALCONTAINER) {
 printf("ReferentialContainerクラスのオブジェクトです。¥n");
}
else if ((lValue & DBR_CLASS_REFERENTIALCONTAINER)
          == DBR_CLASS_REFERENTIALCONTAINER) {
 printf("ReferentialContainerのサブクラスのオブジェクトです。¥n");
}
else {
 printf("ReferentialContainerクラスのオブジェクトではありません。¥n");
}

引数

なし

戻り値

オブジェクトに対応するクラスライブラリのクラスを識別する値が返ります。GetTypeメソッドの戻り値一覧を次に示します。

表7-4　GetTypeメソッドの戻り値一覧

値 | オブジェクトの種別（クラス）
DBR_CLASS_CONFIGURATEDREFERENTIALCONTAINER | CdbrConfiguratedReferentialContainerクラス
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_INDEPENDENTPERSISTENCE | CdbrIndependentPersistenceクラス
DBR_CLASS_PUBLICACL | CdbrPublicACLクラス
DBR_CLASS_REFERENTIALCONTAINER | CdbrReferentialContainerクラス
DBR_CLASS_VERSIONABLEDOCUMENT | CdbrVersionableDocumentクラス
DBR_CLASS_VERSIONTRACEABLECONTAINER | CdbrVersionTraceableContainerクラス
DBR_CLASS_UNKNOWN | クラスの種別が不明

戻り値の詳細

なし

CdbrDMA::PutPropertyValuesメソッド

機能

プロパティの設定

形式

DmaBoolean PutPropertyValues(
 SDBR_PROPLIST*             pPropList )

// プロパティ構造体
struct SDBR_PROP {
 DmaId         PropId;       // プロパティ識別子
 DmaInteger32  lType;        // データ型
 DmaInteger32  lCardinality; // 基本単位
 DmaInteger32  lCount;       // 要素数
 union {                     // プロパティの値
   pDmaBoolean        pbBoolean;       // Boolean型
   pDmaInteger32      plInteger32;     // Integer32型
   pDmaId             pId;             // ID型
   pDmapv             ppObject;        // Object型
   ppDmaString_T      ppString;        // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32       lCount;
   SDBR_PROP*         pItem;
};

詳細

プロパティに値を一括して設定するメソッドです。

次に，Number（Integer32型）プロパティに値を設定する例を示します。プロパティ識別子は，PROP_ID_OF_NUMBERとします。

プロパティに値を設定する例

SDBR_PROP      Props;
SDBR_PROPLIST  PropList;
DmaInteger32   lNum = 25;

// 設定したいプロパティの識別子と値を用意します。
Props.PropId = PROPERTY_ID_OF_NUMBER;
Props.lType = DMA_DATATYPE_INTEGER32;
Props.lCardinality = DMA_CARDINALITY_SINGLE;
Props.uniValue.plInteger32 = &lNum;
Props.lCount = 1;
PropList.lCount = 1;
PropList.pItem = &Props;

// プロパティに値を設定します。
pDbrDMA->PutPropertyValues(&PropList);

引数

pPropList（入力）

設定するプロパティを格納したプロパティリスト構造体である，SDBR_PROPLIST構造体を指定します。

SDBR_PROPLIST構造体およびSDBR_PROP構造体に指定する内容については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

同じプロパティ識別子を指定したプロパティ構造体を複数指定した場合は，エラーになります。

また，VariableArray型プロパティを設定するとき，次の場合はエラーになります。このとき，major_codeとしてERR_DMA，minor_codeとしてDMARC_BAD_VALUEが返却されます。

DocumentBrokerサーバのメタ情報ファイル（edms.ini）のdmaProp_MaximumElementsエントリの値に2以上の値を設定しているときに，このエントリの値を超えてVariableArray型プロパティの要素を指定した場合

DocumentSpace構成定義ファイルdocspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義があるときに，VariableArray型プロパティの要素の値として，範囲外の値や最大値を超えた値を指定した場合

それぞれのデータ型に対応する値の範囲については，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_BAD_PERMISSION
不正なパーミッションが指定されました。
正しいパーミッションを指定してください。

ERR_DBR
ERR_BAD_SUBJECT_TYPE
不正なサブジェクト種別が指定されました。
正しいサブジェクト種別を指定してください。

ERR_DBR
ERR_INVALID_ACE
不正なアクセス制御エレメント（ACE）が指定されました。
ACEとして正しいCdbrCompoundオブジェクトを指定してください。

ERR_DBR
ERR_INVALID_ACE_COUNT
設定するアクセス制御エレメント（ACE）の個数が制限値を超えています。
ACEは64個以内で指定してください。

ERR_DBR
ERR_INVALID_PUBLICACL_COUNT
バインドするパブリックACLの個数が制限値を超えています。
パブリックACLは10個以内で指定してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_INVALID_SUBJECT_LENGTH
サブジェクトの長さが不正です。
次に示す範囲内でサブジェクトを指定してください。

サブジェクトの種別がユーザ識別子の場合，1文字以上，ユーザ識別子の最大長以下の文字列を指定してください。
ユーザ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がグループ識別子の場合，1文字以上，グループ識別子の最大長以下の文字列を指定してください。
グループ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がシステムサブジェクトの場合，1文字以上，254文字以下の文字列を指定してください。

ユーザ識別子とグループ識別子の最大長を拡張する方法の詳細は，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

ERR_DBR
ERR_NONEXISTS_PUBLICACL
指定されたパブリックACLは存在しません。
存在しないパブリックACLを指定しないで処理を再実行してください。

ERR_DMA
DMARC_BAD_CLASSID
指定された識別子は，利用できるオブジェクトのクラスではありません。
正しいクラス識別子を指定してください。

ERR_DMA
DMARC_BAD_OIID
SetOIIDメソッドで設定されたOIIDが不正です。
正しいOIIDを指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_BAD_PROPID
プロパティの識別子が不正です。
正しいプロパティ識別子を指定してください。

ERR_DMA
DMARC_BAD_VALUE
次のどれかの要因が考えられます。

プロパティやリストの値が，許容範囲外の値であるか，または最大値を超えました。

VariableArray型プロパティに設定する可変長配列の要素数が最大値を超えました。

docspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義がある場合に，VariableArray型プロパティの要素の値が，許容範囲外の値であるか，または最大値を超えました。

次のどれかの方法で対処してください。

プロパティやリストの値の範囲を見直してください。

VariableArray型プロパティに設定する可変長配列の要素数を見直してください。

VariableArray型プロパティの要素の値の範囲を見直してください。

ERR_DMA
DMARC_DATATYPE_MISMATCH
プロパティのデータ型に適切ではないメソッドです。
正しい型を指定してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NOT_FOUND
要求された要素が見つかりません。
正しいオブジェクトを設定してください。

ERR_DMA
DMARC_NOT_SUPPORTED
このセッションまたはオブジェクトではサポートされていないメソッドです。
この操作は実行できません。

ERR_DMA
DMARC_READ_ONLY
読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。
このプロパティの値は更新できません。

ERR_DMA
DMARC_UNEXPECTED
予期しないエラーが発生しました。
処理を終了してください。

CdbrDMA::ReleaseObjectメソッド

機能

オブジェクトとの接続の解除

形式

virtual DmaBoolean  ReleaseObject ()

詳細

オブジェクトとの接続を解除するメソッドです。すでに接続が解除されている場合は，何もしないで正常終了します。

引数

なし

戻り値

DMA_TRUE 　正常終了

DMA_FALSE 　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_DISCONNECTED | 文書空間との接続が切断されました。 | セッションを接続してください。
ERR_DMA | DMARC_FAILED | 操作が失敗しました。 | 時間を置いて再度実行するか，処理を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrDMA::RemoveObjectメソッド

機能

オブジェクトの削除

形式

virtual DmaBoolean RemoveObject()

// リファレンスファイル文書の場合
DmaBoolean RemoveObject(
 SDBR_REFERENCE_PATHINFO&    ReferencePath)

// リファレンスパス情報構造体
struct SDBR_REFERENCE_PATHINFO{
 DmaInteger32  lContentOperateMode;    // 操作モード
 pDmaString_T  pEntry;                 // ファイルのパスおよびロケーション
 pDmaString_T  pTargetPath;            // コンテント格納先パス
 pDmaString_T  pDeleteRootPath;        // 削除ディレクトリのルートパス
};

詳細

オブジェクトを削除するメソッドです。対応するDMAオブジェクトを削除します。対応するDMAオブジェクトに関連づけ（リンク）が設定されていた場合，その関連づけ（リンク）も同時に削除します。

リファレンスファイル文書の場合

リファレンスファイル管理機能を使用した文書オブジェクトを削除する場合，コンテントの登録先のディレクトリも同時に削除します。

コンテントの登録先ディレクトリの削除は，削除ディレクトリのルートパスで指定されたディレクトリの下位のディレクトリまでの間のディレクトリが削除の対象となります。最下位層のディレクトリから順にディレクトリを削除します。削除するディレクトリやファイルにアクセス権がない場合や削除するディレクトリにファイルやフォルダが存在する場合，その時点までのディレクトリは削除され，処理は終了します。

この指定が，コンテントロケーションのパスと一致していない場合，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。また，文書オブジェクト以外のオブジェクトに対して実行すると，DMARC_NOT_SUPPORTEDのエラーになります。

なお，UpdateContentAndRenditionTypeまたはこのメソッドでERR_FILE_REFERENCE_MISMATCH_STATUSエラーになった場合，このメソッドを再実行することで，オブジェクトは正常に削除されます。

引数

ReferencePath（入力）

リファレンスファイル文書を削除するために必要な情報を格納した，SDBR_REFERENCE_PATHINFO構造体を指定します。

コンテントの削除と同時にコンテントを格納したディレクトリを削除するときは，SDBR_REFERENCE_PATHINFO構造体のメンバpDeleteRootPathに，削除するディレクトリのルートパスを指定します。この指定したルートパスより下のディレクトリを削除します。この指定は，DocumentBrokerサーバがWindowsの場合UNC形式のパスで指定することもできます。ただし，通常のパス形式またはDocumentBrokerサーバがWindowsの場合UNC形式でのパス表記は，コンテント格納先の表記と同じである必要があります。

なお，pDeleteRootPathにNULLを指定した場合，DocumentBrokerがコンテントを管理するためのディレクトリと登録されているコンテントを削除します。また，メンバpDeleteRootPathで指定するパスの中に，カレントディレクトリの一つ上位のディレクトリを示す".."は指定できません。指定した場合，DMARC_BAD_PARAMETERのエラーになります。

リファレンスファイル文書を削除する場合，SDBR_REFERENCE_PATHINFO構造体のメンバpEntryおよびpTargetPathへの値の指定は，無効になります。

SDBR_REFERENCE_PATHINFO構造体に設定する内容については，「付録C.1(15)　SDBR_REFERENCE_PATHINFO構造体（リファレンスパス情報構造体）」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_FILE_REFERENCE_CURRENT_CONTENT_NOTFOUND | リファレンスファイル管理機能でカレントバージョンのコンテントが存在しません。 | 該当するレンディションを削除し，必要に応じて，削除したレンディションを追加してください。または，バージョンを最新（カレントバージョンを削除した場合は一つ前のバージョン）から順に確認し，コンテントが存在しないバージョンを削除してください。
ERR_DBR | ERR_FILE_REFERENCE_MISMATCH_STATUS | リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生し，オブジェクトとコンテントが不整合な状態となりました。 | 再度実行して文書を削除してください。
ERR_DBR | ERR_FILE_REFERENCE_OPERATION_FAILED | リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。 | 詳細メッセージを基に対処してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_LAST_VERSION | 削除対象となるオブジェクトは，バージョン付き文書の唯一のバージョンであるため，削除できません。 | この操作は実行できません。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DBR | ERR_TARGETCONTENTPATH_NOT_SET | リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。 | コンテント格納先ベースパスを設定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrDMA::SetOIIDメソッド

機能

OIIDの設定

形式

DmaBoolean  SetOIID(
 CdbrSession*      pDbrSession,
 pDmaString_T      pOIID)

詳細

操作対象とするオブジェクトのOIIDを設定するメソッドです。オブジェクトを，指定した識別子で特定されるオブジェクトとして操作できます。ただし，このメソッドを発行したときに，指定したオブジェクトが存在するかどうかのチェックはしません。

また，クラスライブラリのオブジェクトを操作するためにSetOIIDメソッドをコールした場合は，操作後にReleaseObjectメソッドをコールして，オブジェクトを解放してください。ReleaseObjectメソッドをコールしないで続けてSetOIIDメソッドをコールした場合は，エラーになります。

引数

pDbrSession（入力）

CdbrSessionオブジェクトを指定します。

pOIID（入力）

操作対象とするオブジェクトの識別子を指定します。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_ALREADY_CONNECTED | オブジェクトはすでに接続されています。 | この操作は実行できません。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_OIID | 引数で指定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

8.　CdbrDocumentクラス（バージョンなし文書を扱うクラス）

DocumentBrokerで扱う文書のうち，バージョンなし文書（バージョン管理をしない文書およびバージョン管理をしている文書の個々のバージョンに当たる文書）を作成および管理する機能を提供するクラスです。

＜この章の構成＞

CdbrDocumentクラスの詳細

CdbrDocument::~CdbrDocumentメソッド

CdbrDocument::AddRenditionメソッド

CdbrDocument::CdbrDocumentメソッド

CdbrDocument::ChangeMasterRenditionメソッド

CdbrDocument::ConvertContentTypeメソッド

CdbrDocument::CreateIndexメソッド

CdbrDocument::CreateObjectメソッド

CdbrDocument::CreateRelationメソッド

CdbrDocument::DeleteRenditionメソッド

CdbrDocument::GetContentメソッド

CdbrDocument::GetContentAndLockメソッド

CdbrDocument::GetContentInfoメソッド

CdbrDocument::GetRelationListメソッド

CdbrDocument::GetRelationListAndLockメソッド

CdbrDocument::GetRenditionListメソッド

CdbrDocument::GetRenditionListAndLockメソッド

CdbrDocument::GetVersionableListメソッド

CdbrDocument::GetVersionableListAndLockメソッド

CdbrDocument::PutRelationPropertyValuesメソッド

CdbrDocument::PutRenditionPropertyValuesメソッド

CdbrDocument::RemoveIndexメソッド

CdbrDocument::RemoveRelationメソッド

CdbrDocument::UpdateContentメソッド

CdbrDocument::UpdateContentAndRenditionTypeメソッド

CdbrDocumentクラスの詳細

スーパークラス

プロパティ一覧

プロパティの一覧を次に示します。

表8-1　CdbrDocumentクラスのプロパティ

プロパティ名 | プロパティ識別子 | データ型 | 読み取り専用
OIID | dmaProp_OIID | String型 | ○
ParentCount | dbrProp_ParentCount | Integer32型 | ○
ContainersCount | dbrProp_ContainersCount | Integer32型 | ○
ContainersCountVT | dbrProp_ContainersCountVT | Integer32型 | ○
RenditionType | dbrProp_RenditionType | String型 | ○
RetrievalName | dbrProp_RetrievalName | String型 | －
HeadRelationsCount | dbrProp_HeadRelationsCount | Integer32型 | ○
TailRelationsCount | dbrProp_TailRelationsCount | Integer32型 | ○
RenditionStatus | dbrProp_RenditionStatus | Integer32型 | ○
ContentType | dbrProp_ContentType | Integer32型 | ○
ReferenceType | dbrProp_ReferenceType | Integer32型 | ○
ContentLocation | dbrProp_ContentLocation | String型 | ○

アクセス制御機能を使用している場合は，次のクラスライブラリの固有のプロパティが追加されます。

表8-2　CdbrDocumentクラスのプロパティ（アクセス制御機能を使用する場合に追加されるクラスライブラリ固有のプロパティ）

プロパティ名
プロパティ識別子
データ型※¹
読み取り専用

OwnerId
dbrProp_OwnerId
String型
－※²

UserPermission
dbrProp_UserPermission
Integer32型
○

PrimaryGroupId
dbrProp_PrimaryGroupId
String型
－※³

ACL
dbrProp_ACL
Object型
（VariableArray型）
－※³

SACL
dbrProp_SACL
Object型
（VariableArray型）
－※²

OwnerPermission
dbrProp_OwnerPermission
Integer32型
－※³

PrimaryGroupPermission
dbrProp_PrimaryGroupPermission
Integer32型
－※³

EveryonePermission
dbrProp_EveryonePermission
Integer32型
－※³

PublicACLCount
dbrProp_PublicACLCount
Integer32型
○

PublicACLIds
dbrProp_PublicACLIds
Object型
（VariableArray型）
－※³

注※1

基本単位がScalar型以外の場合は，（　）に基本単位を示します。

注※2

変更は，そのオブジェクトの所有者およびセキュリティ管理者だけが実行できます。

注※3

変更は，そのオブジェクトの所有者，セキュリティACLでアクセス制御情報変更権を与えられたユーザおよびセキュリティ管理者だけが実行できます。

プロパティ詳細

DMAで規定されているプロパティ

OIID
オブジェクトを識別するGUID文字列です。実体はDMAオブジェクトのOIIDです。

CdbrDMAクラスから継承されるプロパティ（アクセス制御機能を使用する場合）

OwnerId

UserPermission

これらのプロパティの詳細については，「CdbrDMAクラスの詳細」のプロパティ詳細を参照してください。

CdbrContainableクラスから継承されるプロパティ

ParentCount

ContainersCount

これらのプロパティの詳細については，「CdbrContainableクラスの詳細」のプロパティ詳細を参照してください。

CdbrContainableクラスから継承されるプロパティ（アクセス制御機能を使用する場合）

PrimaryGroupId

ACL

SACL

OwnerPermission

PrimaryGroupPermission

EveryonePermission

PublicACLCount

PublicACLIds

これらのプロパティの詳細については，「CdbrContainableクラスの詳細」のプロパティ詳細を参照してください。

CdbrDocumentクラスで導入されるプロパティ

ContainersCountVT
構成管理型の包含関係でこのオブジェクトを包含しているオブジェクトの個数を表します。

RenditionType
RenditionTypeを表す文字列を表します。

RetrievalName
登録されているファイルのファイル名を表す文字列を表します。
CreateObjectメソッドまたはUpdateContentメソッドでファイルを登録・更新する場合，指定されたURLからパス名を除いた文字列が設定されます。例えば，UNIXの場合にURLが"file:///tmp/sample.doc"のファイルを登録すると，文字列"sample.doc"が設定されます。Windowsの場合にURLが"file:///c:¥temp¥sample.doc"のファイルを登録すると，文字列"sample.doc"が設定されます。ファイルが未登録の場合は，長さ0の文字列が設定されます。値の変更もできます。

HeadRelationsCount
このオブジェクトが文書間リレーションで関連づけしているリレーション先文書の数を表します。

TailRelationsCount
このオブジェクトが文書間リレーションでほかの文書からリレーション先として関連づけされている数を表します。

RenditionStatus
マルチレンディション文書のサブレンディションのプロパティで，マスタレンディションとサブレンディションの状態を表します。例えば，このプロパティを指定してGetRenditionListメソッドをコールすると，マスタレンディションとサブレンディションの状態を表す次のような値が設定されます。なお，指定したレンディションがマスタレンディションの場合は，DBR_RENDSTATUS_MASTERD（00000000：4バイトの16進数）が設定されます。

表8-3　RenditionStatusプロパティの値（状態フラグ：下位2バイト）

定数
対応する値
（16進数）
説明

DBR_RENDSTATUS_NO_SUBREND
0001
指定したサブレンディションに対応するマスタレンディションのコンテントは登録済みですが，サブレンディションのコンテントが未登録です。

DBR_RENDSTATUS_SUBREND_EXIST
0002
指定したサブレンディションに対応するマスタレンディションおよびサブレンディションのコンテントが登録されています。

DBR_RENDSTATUS_MASTERREND_UPDATE
0004
指定したサブレンディションに対応するマスタレンディションが更新されていますが，サブレンディションが更新されていないため，マスタレンディションとサブレンディションの内容が不一致です。

表8-4　RenditionStatusプロパティの値（変換フラグ：上位2バイト）

定数
対応する値
（16進数）
説明

DBR_RENDSTATUS_CONVERT_NOTREQUIRED
0000
レンディション変換が不要な状態です。この状態の場合，DocumentBroker Rendering Optionによるレンディション変換の対象になりません。

DBR_RENDSTATUS_CONVERT_REQUIRED
0001
レンディション変換が必要な状態です。この状態の場合，DocumentBroker Rendering Optionによるレンディション変換の対象になります。

DBR_RENDSTATUS_CONVERT_ERROR
0002
DocumentBroker Rendering Optionによるレンディション変換時にエラーが発生した状態です。この状態になると，DocumentBroker Rendering Optionによるレンディション変換はできなくなります。

ContentType
レンディションのコンテント種別を表すプロパティです。コンテントの種別から，レンディションのコンテントが，シングルファイル文書のコンテントか，マルチファイル文書のコンテントか，リファレンスファイル文書のコンテントか，File Link文書のコンテントか，またはそれ以外のコンテントかを知ることができます。このプロパティは，Integer32型の４バイトの値として表されます。
ユーザは，このプロパティを設定できません。このプロパティを参照する場合は，GetRenditionListメソッドおよびGetRenditionListAndLockメソッドを使用します。また，マスタレンディションの場合は，GetPropertyValuesメソッド，GetPropertyValuesAndLockメソッド，または一部の一覧取得メソッドで参照できます。
ContentTypeプロパティの値とコンテント種別の関係を次の表に示します。

表8-5　ContentTypeプロパティの値とコンテント種別の関係

dbrProp_ContentTypeの値 | 対応する値 | コンテント種別
DBR_CONTENTTYPE_CONTENT | 0 | ContentTransferオブジェクト（シングルファイル文書であるコンテント）です。
DBR_CONTENTTYPE_FILELINK | 1 | ContentFileLinkオブジェクト（File Link文書であるコンテント）です。
DBR_CONTENTTYPE_MULTIFILE | 2 | ContentTransfersオブジェクト（マルチファイル文書であるコンテント）です。
DBR_CONTENTTYPE_REFERENCE | 3 | ContentReferenceオブジェクト（リファレンスファイル文書であるコンテント）です。
DBR_CONTENTTYPE_OTHER | -1 | 上記以外のコンテントを持つオブジェクトです。

ReferenceType
コンテントのリファレンス種別を表すプロパティです。
ReferenceTypeプロパティの値とリファレンス種別の関係を次の表に示します。

表8-6　ReferenceTypeプロパティの値とリファレンス種別の関係

dbrProp_ReferenceTypeの値 | 対応する値 | リファレンス種別
DBR_REFERENCETYPE_NONE | 0 | コンテントはありません。
DBR_REFERENCETYPE_USER_RELATIVE_CONTENT | 1001 | ユーザ管理領域に格納したコンテント（相対パス）です。

ContentLocation
コンテントの格納先を示す情報（コンテントロケーション）を管理するプロパティです。

なお，このほかに，CdbrDocumentクラスでは，構成要素であるDMAオブジェクトを作成する基になるDMAのクラスのdmaClass_DocVersionクラスおよびそのサブクラスのプロパティを参照，設定できます。DMAのクラスのプロパティについては，「付録B　DMAオブジェクトのプロパティ」を参照してください。

メソッド一覧

CdbrCoreクラスから継承されるメソッド

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

これらのメソッドの詳細については，「6.　CdbrCoreクラス（エラー情報を取得するクラス）」を参照してください。

CdbrDMAクラスから継承されるメソッド

メソッド | 機能
~CdbrDMA | デストラクタ
CdbrDMA | コンストラクタ
ConnectObject | オブジェクトを指定したモードでロックして接続
GetOIID | OIIDの取得
GetPropertyValues | プロパティの取得
GetPropertyValuesAndLock | プロパティの取得と同時に指定したロックの設定
GetType | オブジェクトの種別の取得
PutPropertyValues | プロパティの設定
ReleaseObject | オブジェクトとの接続の解除
RemoveObject | オブジェクトの削除
SetOIID | OIIDの設定

これらのメソッドの詳細については，「7.　CdbrDMAクラス（OIIDの設定やプロパティを扱うクラス）」を参照してください。

CdbrContainableクラスから継承されるメソッド

メソッド | 機能
~CdbrContainable | デストラクタ
BindPublicACL | パブリックACLのバインド
CdbrContainable | コンストラクタ
GetContainerList | コンテナの一覧取得
GetContainerListAndLock | コンテナの一覧取得と同時に指定したロックの設定
GetPublicACLList | バインドしているパブリックACL一覧情報の取得
GetPublicACLListAndLock | バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定
UnbindPublicACL | パブリックACLのアンバインド

これらのメソッドの詳細については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」を参照してください。

CdbrDocumentクラスで導入されるメソッド

メソッド | 機能
~CdbrDocument | デストラクタ
AddRendition | レンディションの追加
CdbrDocument | コンストラクタ
ChangeMasterRendition | マスタレンディションへの変更
ConvertContentType | コンテント種別の変換
CreateIndex | 全文検索インデクスの作成
CreateObject | オブジェクトの新規作成
CreateRelation | 文書間リレーションの設定
DeleteRendition | レンディションの削除
GetContent | ファイルの取得
GetContentAndLock | ファイルの取得と同時に指定したロックの設定
GetContentInfo | マルチファイル文書の情報の取得
GetRelationList | 文書のリレーション情報の一覧取得
GetRelationListAndLock | 文書のリレーション情報の一覧取得と同時に指定したロックの設定
GetRenditionList | レンディション一覧の取得
GetRenditionListAndLock | レンディション一覧の取得と同時に指定したロックの設定
GetVersionableList | バージョン管理情報一覧の取得
GetVersionableListAndLock | バージョン管理情報一覧の取得と同時に指定したロックの設定
PutRelationPropertyValues | 文書間リレーションのプロパティの設定
PutRenditionPropertyValues | レンディションのプロパティの設定
RemoveIndex | 全文検索インデクスの削除
RemoveRelation | 文書間リレーションの解除
UpdateContent | ファイルの更新
UpdateContentAndRenditionType | ファイルの更新およびRenditionTypeの変更

以降，CdbrDocumentクラスで導入されるメソッドについて説明します。

CdbrDocument::~CdbrDocumentメソッド

機能

デストラクタ

形式

virtual ~CdbrDocument()

詳細

CdbrDocumentオブジェクトのデストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrDocument::AddRenditionメソッド

機能

レンディションの追加

形式

// シングルファイル文書であるコンテントを
// レンディションの追加と同時に登録する場合
DmaBoolean AddRendition(
 pDmaString_T             pFilePath,
 pDmaString_T             pRenditionType,
 SDBR_PROPLIST*           pPropList)

// シングルファイル文書であるコンテントを
// レンディション変換機能を使って登録する場合
DmaBoolean AddRendition(
 pDmaString_T             pFilePath,
 pDmaString_T             pRenditionType,
 SDBR_PROPLIST*           pPropList,
 DmaInteger32             lConvertType)

// リファレンスファイル文書であるコンテントをレンディションの追加と同時に登録する場合
DmaBoolean AddRendition(
 SDBR_REFERENCE_PATHINFO&  ReferencePath,
 pDmaString_T              pRenditionType,
 SDBR_PROPLIST*            pPropList)

// File Link文書であるコンテントをレンディションの追加と同時に登録する場合
DmaBoolean AddRendition(
 SDBR_FILELINK_PATHINFO&  FileLinkPath,
 pDmaString_T             pRenditionType,
 SDBR_PROPLIST*           pPropList)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

// リファレンスパス情報構造体
struct SDBR_REFERENCE_PATHINFO {
 DmaInteger32  lContentOperateMode; // 操作モード
 pDmaString_T  pEntry;              // ファイルのパスおよびロケーション
 pDmaString_T  pTargetPath;         // コンテント格納先パス
 pDmaString_T  pDeleteRootPath;     // 削除ディレクトリのルートパス
};

// File Linkパス情報構造体
struct SDBR_FILELINK_PATHINFO {
 pDmaString_T  pFilePath;          // 登録ファイルまたはディレクトリのURL
 pDmaString_T  pFamName;           // FAM名
 pDmaString_T  pFamFilePath;       // コンテント保管先パス
 DmaInteger32  lContentDeleteMode; // コンテント削除モード
 DmaInteger32  lFileNamingMode;    // コンテント名自動生成モード
};

詳細

バージョンなし文書に，指定されたレンディションと，コンテントを追加するメソッドです。

このメソッドを使うことで，レンディションを複数持つ，マルチレンディション文書にすることができます。

なお，レンディションを複数持つマルチレンディション文書の場合，すべてのレンディションに空でないRenditionTypeが設定されている必要があります。つまり，RenditionTypeがNULLまたは空文字列（""）のレンディションは存在できません。したがって，マスタレンディションのRenditionTypeが設定されていない（NULLまたは空文字列（""）の場合）か，このメソッドの引数pRenditionTypeがNULLまたは空文字列（""）の場合，このメソッドはエラーになります。

レンディション変換機能を使ってコンテントを登録する場合，コンテントが空のレンディションを追加できます。ただし，レンディション変換機能を使うには，DocumentBroker Rendering Optionが必要です。

このメソッドは，マルチファイルを管理するバージョンなし文書に対しては実行できません。

リファレンスファイル文書であるコンテントを登録する場合

登録するコンテントの情報として，SDBR_REFERENCE_PATHINFO構造体を指定します。リファレンスファイル文書であるコンテントを登録する場合，CdbrSession::SetReferencePathメソッドでコンテント格納先ベースパスを設定しておく必要があります。設定されていない場合は，ERR_TARGETCONTENTPATH_NOT_SETのエラーになります。

File Link文書であるコンテントを登録する場合

登録するコンテントの情報として，SDBR_FILELINK_PATHINFO構造体を指定します。この構造体には，登録するコンテントとして，ファイルまたはディレクトリを指定できます。ディレクトリを指定した場合，指定したディレクトリおよびそのサブディレクトリ下のすべてのファイルをコンテントとして登録できます。また，すでにHiRDB File Linkで管理されているデータをコンテントとして登録することもできます。

File Link文書であるコンテントを登録する場合，このメソッドで，ERR_FILELINK_FAILEDのエラーが発生したときは，詳細メッセージにHiRDB File Linkが出力するエラー情報が出力されます。HiRDB File Linkが出力するエラーを参照して，対処してください。

引数

pFilePath（入力）

追加するサブレンディションに登録するファイルのパス名をURL形式で指定します。

例えば，レンディションの追加と同時にコンテントを登録する場合で，UNIXの場合にファイル"/tmp/sample.doc"を登録するには，"file:///tmp/sample.doc"と指定します。Windowsの場合にファイル"c:¥temp¥sample.doc"を登録するには，"file:///c:¥temp¥sample.doc"と指定します。有効なプロトコルは"file:"だけです。"file:"以外のプロトコルを指定した場合，指定を省略した場合またはNULLを指定した場合，エラーになります。

なお，レンディション変換機能を使ってコンテントを登録する場合（lConvertTypeにDBR_CONVERT_TYPE_BATCHを指定した場合）だけ，pFilePathにNULLを指定できます。

pRenditionType（入力）

追加するサブレンディションのRenditionTypeを表す文字列を指定します。例えばHTML文書の場合は，"MIME::text/html"などとします。NULLまたは空文字列（""）は指定できません。

レンディションを追加しようとする文書に，この引数で指定するRenditionTypeと同じレンディションがすでにある場合，エラーになります。

pPropList（入力）

追加するレンディションに設定するプロパティを格納したプロパティリスト構造体である，SDBR_PROPLIST構造体を指定します。プロパティを設定しない場合はNULLを指定してください。

なお，SDBR_PROPLIST構造体に，同じプロパティ識別子を指定したSDBR_PROP構造体を複数指定した場合はエラーになります。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

このメソッドで値を設定できるプロパティのプロパティ識別子を次に示します。

dbrProp_RetrievalName

lConvertType（入力）

レンディション変換の方法を指定します。

次に示す値のどちらかを指定してください。

DBR_CONVERT_TYPE_USER
レンディション変換機能を使用しないでコンテントを登録する場合に指定します。この場合，コンテントとして登録するファイルはユーザ自身で用意し，pFilePathにそのパス名を指定します。

DBR_CONVERT_TYPE_BATCH
このメソッドの実行後にDocumentBroker Rendering Optionが提供するコマンドでレンディション変換を実行し，変換されたファイルをコンテントとして自動的に登録する場合に指定します。
なお，レンディション変換機能を使用しない場合は，DBR_CONVERT_TYPE_USERを指定してください。
また，マスタレンディションがシングルファイル文書の場合だけ，DBR_CONVERT_TYPE_BATCHを指定してレンディションの追加を行うことができます。マスタレンディションがシングルファイル文書でない文書に対して，DBR_CONVERT_TYPE_BATCHを指定した場合は，DocumentBroker Rendering Optionによるレンディション変換で，major_codeとしてERR_DBR，minor_codeとしてERR_CONTENTTYPE_MISMATCHのエラーになります。

ReferencePath（入力）

リファレンスファイル文書を登録するために必要な情報を格納した，SDBR_REFERENCE_PATHINFO構造体を指定します。SDBR_REFERENCE_PATHINFO構造体のメンバlContentOperateModeにDBR_OPERATEMODE_USER_RELATIVE_CONTENTを指定し，pEntryに追加するサブレンディションに登録するファイルのパス名をURL形式で指定します。

また，SDBR_REFERENCE_PATHINFO構造体のメンバpTargetPathに，コンテント格納先パスを，CdbrSession::SetReferencePathメソッドで設定したコンテント格納先ベースパスを基点とする相対パスで指定します。DocumentBrokerサーバがWindowsの場合，UNC形式のパスで指定することもできます。

なお，lContentOperateModeにDBR_OPERATEMODE_NONEを指定した場合，コンテントを持たないオブジェクトが作成されます。

このメソッドを実行する場合，次に示すことに注意してください。

DocumentSpace構成定義のReferenceStorageModeエントリにOriginを指定した場合
次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときにこのメソッドを実行すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

pTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（35バイト）

pEntryで指定したファイル名

DocumentSpace構成定義のReferenceStorageModeエントリにDivideを指定した場合
次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときにこのメソッドを実行すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

pTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（6バイト）

DocumentBrokerが指定するファイル名（最大59バイト）

また，pTargetPathで指定するコンテント格納先パスの中に，カレントディレクトリの一つ上位のディレクトリを示す".."は指定できません。指定した場合，DMARC_BAD_PARAMETERのエラーになります。

リファレンスファイル文書を登録する場合，SDBR_REFERENCE_PATHINFO構造体のメンバpDeleteRootPathへの値の指定は，無効になります。

SDBR_REFERENCE_PATHINFO構造体に設定する内容については，「付録C.1(15)　SDBR_REFERENCE_PATHINFO構造体（リファレンスパス情報構造体）」を参照してください。

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
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

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_LIMITNUM_OF_RENDITIONS
保持できるレンディション数の上限に達しています。
この操作は実行できません。

ERR_DBR
ERR_MASTERRENDTYPE_NOT_SET
マスタレンディションのRenditionTypeに値が設定されていません。
この操作は実行できません。

ERR_DBR
ERR_OBJECT_REMOVED
オブジェクトはすでに削除されています。
正しいオブジェクトを指定してください。

ERR_DBR
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドをコールしてから，このメソッドをコールしてください。

ERR_DBR
ERR_RENDITIONTYPE_DUPLICATED
RenditionTypeが重複しています。
重複しないRenditionTypeを指定してください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DBR
ERR_FILE_REFERENCE_OPERATION_FAILED
リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。
詳細メッセージを基に対処してください。

ERR_DBR
ERR_TARGETCONTENTPATH_NOT_SET
リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。
コンテント格納先ベースパスを設定してください。

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_PROPID
プロパティの識別子が不正です。
正しいプロパティ識別子を指定してください。

ERR_DMA
DMARC_BAD_URL
リソースのURLが不正です。
URLの内容を見直してください。

ERR_DMA
DMARC_BAD_VALUE
プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。
値の範囲を見直してください。

ERR_DMA
DMARC_DATATYPE_MISMATCH
プロパティのデータ型に適切ではないメソッドです。
正しい型を指定してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NOT_FOUND
要求された要素が見つかりません。
正しいオブジェクトを設定してください。

ERR_DMA
DMARC_NOT_SUPPORTED
このセッションまたはオブジェクトではサポートされていないメソッドです。
この操作は実行できません。

ERR_DMA
DMARC_READ_ONLY
読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。
このプロパティの値は更新できません。

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
使用できるファイル転送サービスがありません。

ネットワーク環境を確認してください。

_HIEDMS_FTPMODE=STATICを指定してファイル転送サービスを起動しているかどうかを，確認してください。

時間を置いて，再度実行してください。

ファイル転送サービスのセットアップコマンドを実行しているかどうかを，確認してください。

CdbrDocument::CdbrDocumentメソッド

機能

コンストラクタ

形式

CdbrDocument()

詳細

CdbrDocumentオブジェクトのコンストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrDocument::ChangeMasterRenditionメソッド

機能

マスタレンディションへの変更

形式

DmaBoolean ChangeMasterRendition(
 pDmaString_T         pRenditionType )

詳細

マルチレンディション文書の指定されたレンディションをマスタレンディションに変更します。変更した場合，既存のマスタレンディションはサブレンディションになります。

なお，メソッド実行時のRenditionStatusプロパティの状態フラグの値によって，このメソッドの実行可否に関して次に示す制限があります。

メソッド実行時のRenditionStatusプロパティの状態フラグの値 | ChangeMasterRenditionメソッドの実行可否
DBR_RENDSTATUS_SUBREND_EXIST | 実行できる
DBR_RENDSTATUS_NO_SUBREND | 実行できない
DBR_RENDSTATUS_MASTERREND_UPDATE | 変換フラグがDBR_RENDSTATUS_CONVERT_NOTREQUIREDであれば実行できる

このメソッドは，マルチファイル文書に対して実行できません。

引数

pRenditionType（入力）

対象文書のサブレンディションのRenditionTypeを表す文字列を指定します。

この引数で指定したRenditionTypeが，対象文書のマスタレンディションの場合，または対象文書のサブレンディションとして存在しない場合はエラーになります。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_CONTENT_IS_EMPTY | コンテンツが変換処理されてなくて空です。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_IS_MASTERRENDITION | 指定されたRenditionTypeはマスタレンディションです。 | RenditionTypeを見直してください。
ERR_DBR | ERR_NONEXISTS_RENDITION | 指定されたRenditionTypeは存在しません。 | RenditionTypeを見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_RENDITION_NOT_CONVERTED | コンテンツが更新処理されていません。 | この操作は実行できません。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrDocument::ConvertContentTypeメソッド

機能

コンテント種別の変換

形式

// リファレンスファイル文書に変換する場合
DmaBoolean ConvertContentType(
 DmaInteger32                         lExecuteMode,
 DmaInteger32                         lSourceScope,
 DmaBoolean                           bIsChangeMaster,
 pDmaString_T                         pRenditionType,
 DmaInteger32                         lSourceContentType,
 SDBR_RENDITION_COMMENTINFO&          CommentInfo,
 SDBR_REFERENCE_PATHINFO&             ReferencePath )

// シングルファイル文書に変換する場合
DmaBoolean ConvertContentType(
 DmaInteger32                         lExecuteMode,
 DmaInteger32                         lSourceScope,
 DmaBoolean                           bIsChangeMaster,
 pDmaString_T                         pRenditionType,
 DmaInteger32                         lSourceContentType,
 SDBR_RENDITION_COMMENTINFO&          CommentInfo )

// レンディションコメント情報構造体
struct SDBR_RENDITION_COMMENTINFO {
 DmaBoolean      bIsInvestSourceComment; // コメントの付与フラグ
 DmaInteger32    lInvestMode;            // コメントの付与方式
 pDmaString_T    pRenditionComment;      // レンディションコメント
};

// リファレンスパス情報構造体
struct SDBR_REFERENCE_PATHINFO {
 DmaInteger32    lContentOperateMode;  // 操作モード
 pDmaString_T    pEntry;               // ファイルのパスおよびロケーション
 pDmaString_T    pTargetPath;          // コンテント格納先パス
 pDmaString_T    pDeleteRootPath;      // 削除ディレクトリのルートパス
};

詳細

コンテントの格納先（コンテント種別）を変換するメソッドです。

このメソッドを使用することでコンテントの格納先を変換したレンディションが追加されます。

このメソッドを実行する前にコンテント格納先ベースパスをCdbrSession::SetReferencePathメソッドで設定しておく必要があります。設定されていない場合は，ERR_TARGETCONTENTPATH_NOT_SETのエラーになります。

lSourceScope，pRenditionType，およびlSourceContentTypeで指定した変換対象のコンテントが存在しない場合は，ERR_CONVERT_CONTENT_TARGET_NOTFOUNDのエラーになります。

このメソッドで変換可能なコンテント種別の組み合わせを次に示します。

表8-7　ConvertContentTypeメソッドで変換できるコンテント種別

変換前のコンテント種別
（lSourceContentTypeで指定する値）
変換後のコンテント種別
（メソッドの形式）

シングルファイル文書
（DBR_CONTENTTYPE_CONTENT）
リファレンスファイル文書
（リファレンスファイル文書に変換する場合の形式）

リファレンスファイル文書
（DBR_CONTENTTYPE_REFERENCE）
シングルファイル文書
（シングルファイル文書に変換する場合の形式）

シングルファイル文書からリファレンスファイル文書に変換する場合

コンテントが登録されていないシングルファイル文書をリファレンスファイル文書に変換すると，リファレンスファイル文書のedmProp_ReferenceTypeには，DBR_REFERENCETYPE_NONEが設定され，コンテントは登録されません。

また，このメソッドを実行する場合，次に示すことに注意してください。

●DocumentSpace構成定義のReferenceStorageModeエントリにOriginを指定した場合

次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときにこのメソッドを実行すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

引数ReferencePathのSDBR_REFERENCE_PATHINFO構造体のメンバpTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（35バイト）

引数ReferencePathのSDBR_REFERENCE_PATHINFO構造体のメンバpEntryで指定したファイル名

●DocumentSpace構成定義のReferenceStorageModeエントリにDivideを指定した場合

次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときにこのメソッドを実行すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

引数ReferencePathのSDBR_REFERENCE_PATHINFO構造体のメンバpTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（6バイト）

DocumentBrokerが指定するファイル名（最大59バイト）

リファレンスファイル文書からシングルファイル文書に変換する場合

リファレンスファイル文書のContentLocationプロパティとCdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパスを合わせた文字列長（パスの区切り文字も含む）が，Windowsの場合260バイト以上，AIXの場合1023バイト以上であるとERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

引数

lExecuteMode（入力）

変換モードを指定します。

この引数にはDBR_CONVERT_MODE_VERVOSEを指定します。

lSourceScope（入力）

変換対象とするレンディションの範囲を指定します。

DBR_CONVERT_SOURCE_ALL
すべてのレンディションを対象とします。

DBR_CONVERT_SOURCE_SEPARATE
単一のレンディションを対象とします。変換するレンディションのレンディションタイプは，pRenditionTypeで指定します。

bIsChangeMaster（入力）

マスタレンディションのコンテントを変換する場合に，変換して追加されるレンディションをマスタレンディションにするかしないかを指定します。

DMA_TRUE
変換して追加されるレンディションをマスタレンディションに変更します。

DMA_FALSE
マスタレンディションの変更は行いません。

pRenditionType（入力）

lSourceScopeにDBR _CONVERT_SOURCE_SEPARATEを指定した場合は，変換の対象とするレンディションのレンディションタイプを表す文字列を指定します。指定したレンディションのコンテントが変換されます。

この引数で指定したレンディションタイプが，対象文書のレンディションとして存在しない場合はエラーになります。

マスタレンディションの場合はNULLを使用することもできます。空文字列（""）は指定できません。

ただし，lSourceScopeにDBR_CONVERT_SOURCE_ALLが指定されている場合は，pRenditionTypeへの値の指定は無効となります。

lSourceContentType（入力）

変換対象とするコンテント種別を指定します。

DBR_CONTENTTYPE_CONTENT
シングルファイル文書のコンテントを対象とします。リファレンスファイル文書に変換する形式のメソッドの場合に指定します。メソッドの形式が一致しない場合，DMARC_BAD_PARAMETERのエラーになります。

DBR_CONTENTTYPE_REFERENCE
リファレンスファイル文書のコンテントを対象とします。シングルファイル文書に変換する形式のメソッドの場合に指定します。メソッドの形式が一致しない場合，DMARC_BAD_PARAMETERのエラーになります。

DBR_CONTENTTYPE_OTHER
コンテントの種別に関係なく変換を行います。ただし，表8-7のConvertContentTypeメソッドで変換できるコンテント種別に示す組み合わせを対象とします。変換対象外のコンテント種別は無視されます。

CommentInfo（入力）

サブレンディションに付与するコメントの情報をSDBR_RENDITION_COMMENTINFO構造体で指定します。

SDBR_RENDITION_COMMENTINFO構造体については，「付録C.1(18)　 SDBR_RENDITION_COMMENTINFO構造体（レンディションコメント情報構造体）」を参照してください。

ReferencePath（入力）

リファレンスファイル文書に変換するために必要な情報を格納した，SDBR_REFERENCE_PATHINFO構造体を指定します。リファレンスファイル文書に変換するには，SDBR_REFERENCE_PATHINFO構造体のメンバlContentOperateModeにDBR_OPERATEMODE_USER_RELATIVE_CONTENTを指定します。

また，SDBR_REFERENCE_PATHINFO構造体のpTargetPathに，コンテント格納先パスを，CdbrSession::SetReferencePathメソッドで設定したコンテント格納先ベースパスを基点とした相対パスで指定します。

pTargetPathで指定するコンテント格納先パスの中に，カレントディレクトリの一つ上位のディレクトリを示す".."は指定できません。指定した場合，DMARC_BAD_PARAMETERのエラーになります。

リファレンスファイル文書に変換する場合，SDBR_REFERENCE_PATHINFO構造体のメンバpEntry，およびpDeleteRootPathへの値の指定は，無効になります。

SDBR_REFERENCE_PATHINFO構造体については，「付録C.1(15)　SDBR_REFERENCE_PATHINFO構造体（リファレンスパス情報構造体）」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_LIMITNUM_OF_RENDITIONS
保持できるレンディション数の上限に達しています。
この操作は実行できません。

ERR_DBR
ERR_MASTERRENDTYPE_NOT_SET
マスタレンディションタイプ値が設定されていません。
マスタレンディションタイプ値を設定してください。

ERR_DBR
ERR_OBJECT_REMOVED
オブジェクトはすでに削除されています。
正しいオブジェクトを指定してください。

ERR_DBR
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドをコールしてから，このメソッドをコールしてください。

ERR_DBR
ERR_RENDITIONTYPE_DUPLICATED
レンディションタイプが重複しています。
正しいレンディションタイプを設定してください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
次の要因が考えられます。

セッションが接続されていません。

EDMRefresherコマンドが実行中です。

要因に応じて，次のどちらかの対策を実施してください。

セッションを接続してください。

EDMRefresherコマンドが終了したあと，再度実行してください。

ERR_DMA
DMARC_ACCESS_DENIED
要求された操作に対してアクセス権がありません。
正しいアクセス権を設定してください。

ERR_DMA
DMARC_BAD_OIID
SetOIIDメソッドで設定されたOIIDが不正です。
正しいOIIDを指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NOT_FOUND
要求された要素が見つかりません。
正しいオブジェクトを設定してください。

ERR_DMA
DMARC_NOT_SUPPORTED
このセッションまたはオブジェクトではサポートされていないメソッドです。
この操作は実行できません。

ERR_DMA
DMARC_UNEXPECTED
予期しないエラーが発生しました。
処理を終了してください。

ERR_DMA
EDMRC_NOT_INTRANSACTION
トランザクション外でメソッドが呼ばれました。
Beginメソッドの呼び出し後に，この操作を実行してください。

ERR_DBR
ERR_FILE_REFERENCE_OPERATION_FAILED
リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。
詳細メッセージを基に対処してください。

ERR_DBR
ERR_TARGETCONTENTPATH_NOT_SET
リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。
コンテント格納先ベースパスを設定してください。

ERR_DBR
ERR_CONVERT_CONTENT_TARGET_NOTFOUND
変換対象のコンテントは存在しません。
オブジェクトのコンテント種別または指定した変換対象とするコンテント種別（ISourseContentType）を見直してください。

ERR_DBR
ERR_CONVERT_CONTENT_NOT_RETRIEVALNAME
変換対象コンテントのdmaProp_RetrievalNameプロパティの値が設定されていない（値がNULLまたは，空文字列（""））のため，変換処理を実行できません。
dmaProp_RetrievalNameプロパティの値を設定してメソッドを実行してください。

CdbrDocument::CreateIndexメソッド

機能

全文検索インデクスの作成

形式

DmaBoolean CreateIndex(
 const pDmaString_T         pFilePath)

詳細

指定したパス名のファイルから，全文検索インデクスを作成するメソッドです。パス名にNULLを指定した場合は，登録されている文書（マルチレンディション文書の場合はマスタレンディション）に含まれているコンテントから全文検索インデクスが作成されます。ただし，マルチファイル文書，リファレンスファイル文書またはFile Link文書の場合，NULLを指定するとERR_CONTENTTYPE_MISMATCHのエラーになります。

既存の全文検索インデクスを，別のファイルで更新する場合も，このメソッドを実行してください。これによって，インデクスの遅延更新が実現できます。

このメソッドは，全文検索機能付き文書クラスから作成されているDocVersionオブジェクトを構成要素としたCdbrDocumentオブジェクトにだけ実行できます。それ以外のオブジェクトを対象に実行した場合は，エラーになります。

また，インデクスを作成できるのは，テキストファイルとして作成されたファイルだけです。それ以外の形式の文書を指定してこのメソッドを実行した場合の動作は保証されません。場合によっては，データベースがロールバックする可能性があります。この場合は，データベースエラーが出力されますので，データベースのエラーコードを参照して，データを再登録してください。

なお，登録されている文書とインデクスを作成するためのファイルとの対応づけは，上位で行います。

UNIXの場合に，ファイル/tmp/sample.txtから全文検索インデクスを作成する例を次に示します。Windowsの場合は，ファイルc:¥temp¥sample.txtから全文検索インデクスを作成する例として，例中の"file:///tmp/sample.txt"を"file:///c:¥temp¥sample.txt"に読み替えてください。

全文検索インデクスを作成する例

pDbrDoc->CreateIndex("file:///tmp/sample.txt");

引数

pFilePath（入力）

全文検索インデクスを作成するファイルのパス名を設定します。登録されている文書（マルチレンディション文書の場合はマスタレンディション）に含まれるコンテントからインデクスを作成する場合にはNULLを設定します。それ以外のファイルからインデクスを作成する場合には，ファイルのパス名をURL形式で指定します。例えば，UNIXの場合，全文検索インデクスをファイル"/tmp/sample.txt"から作成するには，"file:///tmp/sample.txt"と指定します。Windowsの場合，全文検索インデクスをファイル"c:¥temp¥sample.txt"から作成するには，"file:///c:¥temp¥sample.txt"と指定します。有効なプロトコルは"file:"だけです。これ以外のプロトコルを指定した場合はエラーになります。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_CONTENTTYPE_MISMATCH
指定したレンディションタイプのコンテントに対して実行できません。
正しい文書オブジェクトを指定してメソッドを実行してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_OBJECT_NOT_CONNECT
オブジェクトは接続されていません。
オブジェクトを接続してください。

ERR_DBR
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドをコールしてから，このメソッドをコールしてください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DMA
DMARC_ACCESS_DENIED
要求された操作に対してアクセス権がありません。
正しいアクセス権を設定してください。

ERR_DMA
DMARC_BAD_CLASSID
指定された識別子は，利用できるオブジェクトのクラスではありません。
正しいクラス識別子を指定してください。

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
使用できるファイル転送サービスがありません。

ネットワーク環境を確認してください。

_HIEDMS_FTPMODE=STATICを指定してファイル転送サービスを起動しているかどうかを，確認してください。

時間を置いて，再度実行してください。

ファイル転送サービスのセットアップコマンドを実行しているかどうかを，確認してください。

CdbrDocument::CreateObjectメソッド

機能

オブジェクトの新規作成

形式

// シングルファイル文書の場合
DmaBoolean  CreateObject (
 CdbrSession*       pDbrSession,
 DmaInteger32       lDMAInfoListCount,
 SDBR_DMAINFO*      pDMAInfoList,
 pDmaString_T       pFilePath,
 pDmaString_T       pRenditionType
 ppDmaString_T      ppOIID,
 DmaInteger32       lCreateIndexFlg = DBR_CREATE_INDEX)

// マルチファイル文書の場合
DmaBoolean  CreateObject(
 CdbrSession*    pDbrSession,
 DmaInteger32    lDMAInfoListCount,
 SDBR_DMAINFO*   pDMAInfoList,
 SDBR_PATHLIST&  PathList,
 pDmaString_T    pRenditionType,
 ppDmaString_T   ppOIID)

// リファレンスファイル文書の場合
DmaBoolean CreateObject(
 CdbrSession*              pDbrSession,
 DmaInteger32              lDMAInfoListCount,
 SDBR_DMAINFO*             pDMAInfoList,
 SDBR_REFERENCE_PATHINFO&  ReferencePath,
 pDmaString_T              pRenditionType,
 ppDmaString_T             ppOIID)

// File Link文書の場合
DmaBoolean CreateObject(
 CdbrSession*             pDbrSession,
 DmaInteger32             lDMAInfoListCount,
 SDBR_DMAINFO*            pDMAInfoList,
 SDBR_FILELINK_PATHINFO&  FileLinkPath,
 pDmaString_T             pRenditionType,
 ppDmaString_T            ppOIID)

// プロパティ構造体
struct SDBR_PROP {
 DmaId         PropId;       // プロパティ識別子
 DmaInteger32  lType;        // データ型
 DmaInteger32  lCardinality; // 基本単位
 DmaInteger32  lCount;       // 要素数
 union {                     // プロパティの値
   pDmaBoolean        pbBoolean;       // Boolean型
   pDmaInteger32      plInteger32;     // Integer32型
   pDmaId             pId;             // ID型
   pDmapv             ppObject;        // Object型
   ppDmaString_T      ppString;        // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
 DmaInteger32       lCount;
 SDBR_PROP*         pItem;
};

// DMAオブジェクト生成用の構造体
struct SDBR_DMAINFO {
 DmaId            ClassId;
 SDBR_PROPLIST    PropList;
};

// ファイルパス情報構造体
struct SDBR_PATHINFO {
 pDmaString_T      pFilePath;       // ファイルのURL
 pDmaString_T      pComponentType;  // ファイルを識別する文字列
};

// ファイルパス情報リスト構造体
struct SDBR_PATHLIST {
 DmaInteger32      lCount;          // 登録ファイル数
 SDBR_PATHINFO*    pItem;           // ファイルパス情報構造体のポインタ
};

// リファレンスパス情報構造体
struct SDBR_REFERENCE_PATHINFO {
 DmaInteger32  lContentOperateMode; // 操作モード
 pDmaString_T  pEntry;              // ファイルのパスおよびロケーション
 pDmaString_T  pTargetPath;         // コンテント格納先パス
 pDmaString_T  pDeleteRootPath;     // 削除ディレクトリのルートパス
};

// File Linkパス情報構造体
struct SDBR_FILELINK_PATHINFO {
 pDmaString_T  pFilePath;          // 登録ファイルまたはディレクトリのURL
 pDmaString_T  pFamName;           // FAM名
 pDmaString_T  pFamFilePath;       // コンテント保管先パス
 DmaInteger32  lContentDeleteMode; // コンテント削除モード
 DmaInteger32  lFileNamingMode;    // コンテント名自動生成モード
};

詳細

オブジェクトを新規に作成するメソッドです。

SetOIIDメソッドもしくはConnectObjectメソッドによってオブジェクトとすでに接続されている場合，またはこのメソッドがすでにコールされている場合は，既存の接続は変更されずに，このメソッドのコールがエラーになります。接続を終了するには，ReleaseObjectメソッドを実行してください。

Windowsの場合，次のことに注意してください。

GetContentAndLockによるコンテントの取得時，大文字と小文字を区別しないと同一になるファイル名がある場合，先に取得したファイルが上書きされます。例えば，先に取得された「AAA.txt」は，あとから取得された「aaa.txt」によって上書きされます。

GetContentAndLockによるコンテントの取得時，ロングファイル名とショートファイル名の関係で同一のファイル名とみなされるファイルがある場合，先に取得したファイルが上書きされます。例えば，先に取得された「AAAAAAAAA.txt」は，あとから取得された「AAAAAA~1.txt」によって上書きされます。

シングルファイル文書の場合

作成するオブジェクトが次の条件に当てはまるときに，lCreateIndexFlgにDBR_CREATE_INDEXを指定すると，全文検索インデクスを作成できます。

DMAオブジェクト生成用の構造体である，SDBR_DMAINFO構造体のClassIdに，dmaClass_DocVersionクラスのサブクラスとして全文検索機能付き文書クラスが指定されている。

RenditionTypeがテキスト型（MIME::text/plain，MIME::text/sgmlまたはMIME::text/html）である。

ファイルの登録が正常に完了すると，パス名を除いたファイル名がRetrievalNameプロパティに設定されます。例えば，UNIXの場合にパス名が"file:///tmp/sample.doc"のファイルを登録すると，RetrievalNameプロパティには"sample.doc"が設定されます。Windowsの場合にパス名が"file:///c:¥temp¥sample.doc"のファイルを登録すると，RetrievalNameプロパティには"sample.doc"が設定されます。

UNIXの場合に，CdbrDocumentオブジェクトを新規に作成して接続する例を次に示します。この例では，ClassID_DocVerで指定したDMA DocVersionのクラス識別子で文書オブジェクトを新規に作成します。そして，ファイル/tmp/sample.txtをRenditionTypeに"MIME::text/plain"として登録して，そのポインタを取得します。なお，Windowsの場合は，ファイルc:¥temp¥sample.txtを登録する例として，例中の"file:///tmp/sample.txt"を"file:///c:¥temp¥sample.txt"と読み替えてください。

CdbrDocumentオブジェクトを新規に作成して接続する例

// 変数宣言
CdbrDocument DbrDoc;
SDBR_DMAINFO            DMAInfoList[1];
pDmaString              pOIID;

// DMAクラス情報の作成
DMAInfoList[0].ClassId = ClassID_DocVer;
DMAInfoList[0].PropList.pItem = NULL;
DMAInfoList[0].PropList.lCount = 0;
// オブジェクトの新規作成
DbrDoc.CreateObject(pDbrSession,
    1, DMAInfoList,
   "file:///tmp/sample.txt", "MIME::text/plain", &pOIID,
    DBR_CREATE_INDEX);

マルチファイル文書の場合

登録するコンテントの情報として，SDBR_PATHLIST構造体を指定します。

マルチファイル文書を作成する場合は，次のことに注意してください。

マルチファイル文書では，テキストファイルの部分が特定できないため，全文検索用インデクスは作成されません。全文検索インデクスを作成する場合，テキスト部分を抽出したファイルを，CreateIndexメソッドの引数に指定して実行してください。なお，マルチファイル文書の場合，CreateIndexメソッドの引数にNULLを指定するとERR_CONTENTTYPE_MISMATCHのエラーになります。

dbrProp_RetrievalNameプロパティに値を設定する場合は，SDBR_DMAINFO構造体のメンバPropListに設定されたSDBR_PROPLIST構造体に設定してください。SDBR_PROPLIST構造体にdbrProp_RetrievalNameを設定していない場合，データベースにはNULL値が格納されます。

SDBR_PATHLIST構造体のlCountに指定したファイル数より，SDBR_PATHINFOの配列の個数が多い場合は，lCountに指定したファイル数分のファイルが登録されます。

同じファイル名を持つファイルを格納しようとした場合は，ERR_RETRIEVALNAME_DUPLICATEDのエラーになります。なお，ファイル名は，英字の大文字と小文字を区別して比較されます。

リファレンスファイル文書の場合

登録するコンテントの情報として，SDBR_REFERENCE_PATHINFO構造体を指定します。

リファレンスファイル文書を作成する場合は，次のことに注意してください。

リファレンスファイル文書では，全文検索用インデクスは作成されません。全文検索インデクスを作成する場合，テキスト部分を抽出したファイルを，CreateIndexメソッドの引数に指定して実行してください。なお，リファレンスファイル文書の場合，CreateIndexメソッドの引数にNULLを指定するとERR_CONTENTTYPE_MISMATCHのエラーになります。

コンテントに登録するファイルの種類を表すレンディションタイプは，登録したファイルの拡張子からは設定されません。レンディションタイプは，CreateObjectメソッドの引数として明示的に指定してください。この引数に指定した値が，レンディションごとのファイルの種類を表すプロパティとして設定されます。

File Link文書の場合

登録するコンテントの情報として，SDBR_FILELINK_PATHINFO構造体を指定します。この構造体には，登録するコンテントとして，ファイルまたはディレクトリを指定できます。ディレクトリを指定した場合，指定したディレクトリおよびそのサブディレクトリ下のすべてのファイルをコンテントとして登録できます。また，すでにHiRDB File Linkで管理されているデータをコンテントとして登録することもできます。

File Link文書を作成する場合は，次のことに注意してください。

File Link文書では，全文検索用インデクスは作成されません。全文検索インデクスを作成する場合，テキスト部分を抽出したファイルを，CreateIndexメソッドの引数に指定して実行してください。なお，File Link文書の場合，CreateIndexメソッドの引数にNULLを指定するとERR_CONTENTTYPE_MISMATCHのエラーになります。

コンテントに登録するファイルの種類を表すレンディションタイプは，登録したファイルの拡張子からは設定されません。レンディションタイプは，CreateObjectメソッドの引数として明示的に指定してください。この引数に指定した値が，レンディションごとのファイルの種類を表すプロパティとして設定されます。

このメソッドで，ERR_FILELINK_FAILEDのエラーが発生した場合は，詳細メッセージにHiRDB File Linkが出力するエラー情報が出力されます。HiRDB File Linkが出力するエラーを参照して，対処してください。

引数

pDbrSession（入力）

CdbrSessionオブジェクトを指定します。

lDMAInfoListCount（入力）

pDMAInfoListで指定した配列の個数を指定します。負の値を指定した場合は，エラーになります。

pDMAInfoList（入力）

オブジェクトの構成要素として新規に作成するDMAオブジェクトの情報を格納した構造体である，SDBR_DMAINFO構造体の配列を指定します。DMAオブジェクトの情報としてSDBR_DMAINFO構造体には，dmaClass_DocVersionクラスまたはそのサブクラスの情報を指定してください。

lDMAInfoListCountが正の整数のときにpDMAInfoListにNULLを指定すると，エラーになります。

SDBR_DMAINFO構造体については，「付録C.1(3)　SDBR_DMAINFO構造体（DMAオブジェクト生成用の構造体）」を参照してください。

プロパティ情報を指定するSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

なお，VariableArray型プロパティを設定するとき，次の場合はエラーになります。このとき，major_codeとしてERR_DMA，minor_codeとしてDMARC_BAD_VALUEが返却されます。

DocumentBrokerサーバのメタ情報ファイル（edms.ini）のdmaProp_MaximumElementsエントリの値に2以上の値を設定しているときに，このエントリの値を超えてVariableArray型プロパティの要素を指定した場合

DocumentSpace構成定義ファイルdocspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義があるときに，VariableArray型プロパティの要素の値として，範囲外の値や最大値を超えた値を指定した場合

それぞれのデータ型に対応する値の範囲については，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

pFilePath（入力）

登録するファイルのパス名を指定します。パス名はURL形式で設定します。例えば，UNIXの場合，ファイル"/tmp/sample.doc"を登録するには，"file:///tmp/sample.doc"と指定します。Windowsの場合，ファイル"c:¥temp¥sample.doc"を登録するには，"file:///c:¥temp¥sample.doc"と指定します。有効なプロトコルは"file:"だけです。それ以外のプロトコルを指定した場合はエラーになります。NULLを指定した場合，ファイルは登録されません。

pRenditionType（入力）

RenditionTypeを表す文字列を指定します。例えばHTML文書の場合は，"MIME::text/html"などとします。

NULLを指定した場合，ファイルの拡張子からRenditionTypeを決定する処理はされません。したがって，RenditionTypeには何も設定されません。

ppOIID（出力）

作成したCdbrDocumentオブジェクトの構成要素である，DMAオブジェクトのDocVersionオブジェクトのOIIDへのポインタが設定されます。ポインタを格納する領域を指定してください。なお，*ppOIIDがポイントするメモリは，ユーザプログラムでは解放しないでください。

lCreateIndexFlg（入力）

全文検索インデクスを作成するかどうかを指定します。

次のどちらかを指定してください。省略した場合は，DBR_CREATE_INDEXを指定したものとして処理されます。

DBR_CREATE_INDEX
pFilePathに指定したパス名のファイルから全文検索インデクスを作成します。

DBR_NOT_CREATE_INDEX
全文検索インデクスを作成しません。

なお，SDBR_DMAINFO構造体のClassIdに全文検索機能付きクラス以外のクラスを指定した場合またはファイルのRenditionTypeがテキスト型でない場合は，lCreateIndexFlgの値は無視されます。

PathList（入力）

登録するファイルのファイルパス情報が設定されたSDBR_PATHLIST構造体を指定します。SDBR_PATHLIST構造体については，「付録C.1(11)　SDBR_PATHLIST構造体（ファイルパス情報リスト構造体）」を参照してください。

ReferencePath（入力）

リファレンスファイル文書を登録するために必要な情報を格納した，SDBR_REFERENCE_PATHINFO構造体を指定します。リファレンスファイル文書を登録するには，SDBR_REFERENCE_PATHINFO構造体のメンバlContentOperateModeにDBR_OPERATEMODE_USER_RELATIVE_CONTENTを指定し，pEntryに登録するファイルのパス名をURL形式で指定します。また，SDBR_REFERENCE_PATHINFO構造体のメンバpTargetPathに，コンテント格納先パスを，CdbrSession::SetReferencePathメソッドで設定したコンテント格納先ベースパスを基点とする相対パスで指定します。DocumentBrokerサーバがWindowsの場合UNC形式のパスで指定することもできます。

なお，lContentOperateModeにDBR_OPERATEMODE_NONEを指定した場合，コンテントがないオブジェクトが作成されます。

このメソッドを実行する場合，次に示すことに注意してください。

DocumentSpace構成定義のReferenceStorageModeエントリにOriginを指定した場合
次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときにこのメソッドを実行すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

pTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（35バイト）

pEntryで指定したファイル名

DocumentSpace構成定義のReferenceStorageModeエントリにDivideを指定した場合
次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときにこのメソッドを実行すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

pTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（6バイト）

DocumentBrokerが指定するファイル名（最大59バイト）

また，pTargetPathで指定するコンテント格納先パスの中に，カレントディレクトリの一つ上位のディレクトリを示す".."は指定できません。指定した場合，DMARC_BAD_PARAMETERのエラーになります。

リファレンスファイル文書を登録する場合，SDBR_REFERENCE_PATHINFO構造体のメンバpDeleteRootPathへの値の指定は，無効になります。

SDBR_REFERENCE_PATHINFO構造体に設定する内容については，「付録C.1(15)　SDBR_REFERENCE_PATHINFO構造体（リファレンスパス情報構造体）」を参照してください。

FileLinkPath（入力）

File Link文書を登録するために必要な情報を格納した，SDBR_FILELINK_PATHINFO構造体を指定します。

なお，SDBR_FILELINK_PATHINFO構造体のメンバpFilePathとメンバpFamFilePathの両方にNULLを設定した場合には，登録コンテントがないオブジェクトが作成されます。

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_BAD_CONTENTSCOUNT
登録しようとするファイルの数が多過ぎます。
登録するファイルの数を見直してください。

ERR_DBR
ERR_BAD_PERMISSION
不正なパーミッションが指定されました。
正しいパーミッションを指定してください。

ERR_DBR
ERR_BAD_SUBJECT_TYPE
不正なサブジェクト種別が指定されました。
正しいサブジェクト種別を指定してください。

ERR_DBR
ERR_FAL_NOT_LOADED
HiRDB File Linkのライブラリがロードできません。
詳細メッセージを基に対処してください。

ERR_DBR
ERR_FILELINK_FAILED
HiRDB File Linkでエラーが発生しました。
詳細メッセージを基に対処してください。

ERR_DBR
ERR_FILE_REFERENCE_OPERATION_FAILED
リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。
詳細メッセージを基に対処してください。

ERR_DBR
ERR_INVALID_ACE
不正なアクセス制御エレメント（ACE）が指定されました。
ACEとして正しいCdbrCompoundオブジェクトを指定してください。

ERR_DBR
ERR_INVALID_ACE_COUNT
設定するアクセス制御エレメント（ACE）の個数が制限値を超えています。
ACEは64個以内で指定してください。

ERR_DBR
ERR_INVALID_PUBLICACL_COUNT
バインドするパブリックACLの個数が制限値を超えています。
パブリックACLは10個以内で指定してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_INVALID_SUBJECT_LENGTH
サブジェクトの長さが不正です。
次に示す範囲内でサブジェクトを指定してください。

サブジェクトの種別がユーザ識別子の場合，1文字以上，ユーザ識別子の最大長以下の文字列を指定してください。
ユーザ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がグループ識別子の場合，1文字以上，グループ識別子の最大長以下の文字列を指定してください。
グループ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がシステムサブジェクトの場合，1文字以上，254文字以下の文字列を指定してください。

ユーザ識別子とグループ識別子の最大長を拡張する方法の詳細は，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

ERR_DBR
ERR_NONEXISTS_PUBLICACL
指定されたパブリックACLは存在しません。
存在しないパブリックACLを指定しないで処理を再実行してください。

ERR_DBR
ERR_OBJECT_ALREADY_CONNECTED
オブジェクトはすでに接続されています。
この操作は実行できません。

ERR_DBR
ERR_RETRIEVALNAME_DUPLICATED
RetrievalNameが重複して指定されています。
RetrievalNameが重複しないように指定してください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DBR
ERR_TARGETCONTENTPATH_NOT_SET
リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。
コンテント格納先ベースパスを設定してください。

ERR_DMA
DMARC_ACCESS_DENIED
要求された操作に対してアクセス権がありません。
正しいアクセス権を設定してください。

ERR_DMA
DMARC_BAD_CLASSID
指定された識別子は，利用できるオブジェクトのクラスではありません。
正しいクラス識別子を指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_BAD_PROPID
プロパティの識別子が不正です。
正しいプロパティ識別子を指定してください。

ERR_DMA
DMARC_BAD_URL
リソースのURLが不正です。
URLの内容を見直してください。

ERR_DMA
DMARC_BAD_VALUE
次のどれかの要因が考えられます。

プロパティやリストの値が，許容範囲外の値であるか，または最大値を超えました。

VariableArray型プロパティに設定する可変長配列の要素数が最大値を超えました。

docspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義がある場合に，VariableArray型プロパティの要素の値が，許容範囲外の値であるか，または最大値を超えました。

次のどれかの方法で対処してください。

プロパティやリストの値の範囲を見直してください。

VariableArray型プロパティに設定する可変長配列の要素数を見直してください。

VariableArray型プロパティの要素の値の範囲を見直してください。

ERR_DMA
DMARC_DATATYPE_MISMATCH
プロパティのデータ型に適切ではないメソッドです。
正しい型を指定してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NOT_SUPPORTED
このセッションまたはオブジェクトではサポートされていないメソッドです。
この操作は実行できません。

ERR_DMA
DMARC_READ_ONLY
読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。
このプロパティの値は更新できません。

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
使用できるファイル転送サービスがありません。

ネットワーク環境を確認してください。

_HIEDMS_FTPMODE=STATICを指定してファイル転送サービスを起動しているかどうかを，確認してください。

時間を置いて，再度実行してください。

ファイル転送サービスのセットアップコマンドを実行しているかどうかを，確認してください。

CdbrDocument::CreateRelationメソッド

機能

文書間リレーションの設定

形式

// バージョンなし文書と関連づける場合
DmaBoolean CreateRelation(
 CdbrDocument*      pDbrDocument,
 SDBR_PROPLIST*     pRelPropList,
 ppDmaString_T      ppRelId)

// バージョン付き文書と関連づける場合
DmaBoolean CreateRelation(
 CdbrVersionableDocument*   pDbrVersionableDocument,
 SDBR_PROPLIST*             pRelPropList,
 ppDmaString_T              ppRelId)

// プロパティ構造体
struct SDBR_PROP {
 DmaId         PropId;       // プロパティ識別子
 DmaInteger32  lType;        // データ型
 DmaInteger32  lCardinality; // 基本単位
 DmaInteger32  lCount;       // 要素数
 union {                     // プロパティの値
   pDmaBoolean        pbBoolean;       // Boolean型
   pDmaInteger32      plInteger32;     // Integer32型
   pDmaId             pId;             // ID型
   pDmapv             ppObject;        // Object型
   ppDmaString_T      ppString;        // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32       lCount;
   SDBR_PROP*         pItem;
};

詳細

文書間のリレーションを設定するメソッドです。リレーション先には文書系のオブジェクトを指定します。指定できる文書系のオブジェクトを次に示します。

CdbrDocumentオブジェクト（バージョンなし文書）

CdbrVersionableDocumentオブジェクト（バージョン付き文書）

なお，リレーションには，ユーザ設定のプロパティを設定できます。

引数

pDbrDocument（入力）

このオブジェクトと関連づけるCdbrDocumentオブジェクト（バージョンなし文書）を指定します。

pDbrVersionableDocument（入力）

このオブジェクトと関連づけるCdbrVersionableDocumentオブジェクト（バージョン付き文書）を指定します。

pRelPropList（入力）

リレーションに設定するプロパティを格納したプロパティリスト構造体である，SDBR_PROPLIST構造体を指定します。プロパティを設定しない場合は，NULLを指定してください。

なお，SDBR_PROPLIST構造体に，同じプロパティ識別子を指定したSDBR_PROP構造体を複数指定した場合はエラーになります。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppRelId（出力）

リレーション識別子が設定されます。リレーション識別子が格納される領域を指定してください。

このリレーション識別子は，文書間リレーションを解除するためのRemoveRelationメソッドや，リレーションにプロパティを設定するためのPutRelationPropertyValuesメソッドで使用します。なお，*ppRelIdがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_DATATYPE_MISMATCH | プロパティのデータ型に適切ではないメソッドです。 | 正しい型を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrDocument::DeleteRenditionメソッド

機能

レンディションの削除

形式

DmaBoolean DeleteRendition(
 pDmaString_T         pRenditionType )

詳細

マルチレンディション文書の指定されたサブレンディションとそのコンテントを削除します。

リファレンスファイル文書であるレンディションとそのコンテントを削除する場合，CdbrSession::SetReferencePathメソッドでコンテント格納先ベースパスを設定しておく必要があります。設定されていない場合，ERR_TARGETCONTENTPATH_NOT_SETのエラーになります。

このメソッドは，マルチファイルを管理するバージョンなし文書に対しては実行できません。

引数

pRenditionType（入力）

削除するサブレンディションのRenditionTypeを表す文字列を指定します。

この引数で指定したRenditionTypeが対象文書のマスタレンディションの場合，または対象文書のサブレンディションとして存在しない場合はエラーになります。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_IS_MASTERRENDITION | 指定されたレンディションはマスタレンディションです。 | この操作は実行できません。
ERR_DBR | ERR_NONEXISTS_RENDITION | 指定されたレンディションは存在しません。 | この操作は実行できません。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DBR | ERR_FILE_REFERENCE_OPERATION_FAILED | リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。 | 詳細メッセージを基に対処してください。
ERR_DBR | ERR_TARGETCONTENTPATH_NOT_SET | リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。 | コンテント格納先ベースパスを設定してください。
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrDocument::GetContentメソッド

機能

ファイルの取得

形式

// マスタレンディションのファイルを取得する場合
DmaBoolean GetContent(
 const pDmaString_T       pFilePath)

// RenditionTypeを指定してファイルを取得する場合
DmaBoolean GetContent(
 const pDmaString_T       pFilePath,
 pDmaString_T             pRenditionType )

詳細

文書空間に登録されているファイルを，指定したパスに複写するメソッドです。

マルチレンディション文書の場合，pRenditionTypeを指定することで，対応するRenditionTypeを持つレンディションのファイルが取得できます。

UNIXの場合に，登録されているファイルを/tmp/sample.docに複写して取得する例を次に示します。Windowsの場合は，c:¥temp¥sample.docに複写して取得する例として，例中の"file:///tmp/sample.doc"を"file:///c:¥temp¥sample.doc"と読み替えてください。

ファイルを取得する例

pDbrVerDoc->GetContent("file:///tmp/sample.doc");

引数

pFilePath（入力）

取得したファイルを複写する複写先のパス名を指定します。

ファイルのパス名はURL形式で設定します。ただし，プロトコル名は"file:"だけが指定できます。例えば，UNIXの場合，ファイル"/tmp/sample.doc"に複写するには，"file:///tmp/sample.doc"と指定します。Windowsの場合，ファイル"c:¥temp¥sample.doc"に複写するには，"file:///c:¥temp¥sample.doc"と指定します。

指定したパスのファイルが存在する場合は上書きします。ファイル名は，RenditionTypeプロパティまたはRetrievalNameプロパティを参考にして，メソッドをコールした側が任意に決定してください。

指定したパスのファイルが存在しない場合，ディレクトリが存在し，かつファイルの作成が可能ならば新規にファイルを作成します。それ以外の場合はエラーになります。

pRenditionType（入力）

RenditionTypeを指定してファイルを取得する場合，取得するレンディションのRenditionTypeを表す文字列を指定します。

この引数で指定したRenditionTypeが，対象文書のレンディションとして存在しない場合はエラーになります。

マスタレンディションの場合はNULLを指定するか，「マスタレンディションのファイルを取得する場合」の形式を使用することもできます。

空文字列（""）は指定できません。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_CONTENTTYPE_MISMATCH
指定したレンディションタイプのコンテントに対して実行できません。
正しい文書オブジェクトを指定してメソッドを実行してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_NONEXISTS_RENDITION
指定されたレンディションは存在しません。
正しいRenditionTypeを指定してください。

ERR_DBR
ERR_OBJECT_NOT_CONNECT
オブジェクトは接続されていません。
オブジェクトを接続してください。

ERR_DBR
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドをコールしてから，このメソッドをコールしてください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DMA
DMARC_ACCESS_DENIED
要求された操作に対してアクセス権がありません。
正しいアクセス権を設定してください。

ERR_DMA
DMARC_BAD_OIID
SetOIIDメソッドで設定されたOIIDが不正です。
正しいOIIDを指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_BAD_URL
リソースのURLが不正です。
URLの内容を見直してください。

ERR_DMA
DMARC_FAILED
操作が失敗しました。
時間を置いて再度実行するか，処理を見直してください。

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
使用できるファイル転送サービスがありません。

ネットワーク環境を確認してください。

_HIEDMS_FTPMODE=STATICを指定してファイル転送サービスを起動しているかどうかを，確認してください。

時間を置いて，再度実行してください。

ファイル転送サービスのセットアップコマンドを実行しているかどうかを，確認してください。

CdbrDocument::GetContentAndLockメソッド

機能

ファイルの取得と同時に指定したロックの設定

形式

// シングルファイル文書の場合
// （マスタレンディションのファイルの取得）
DmaBoolean GetContentAndLock(
 const pDmaString_T       pFilePath,
 DmaInteger32             lLockType = DMA_LOCK_WRITE)

// シングルファイル文書の場合
// （RenditionTypeを指定したファイルの取得）
DmaBoolean GetContentAndLock(
 const pDmaString_T       pFilePath,
 pDmaString_T             pRenditionType,
 DmaInteger32             lLockType = DMA_LOCK_WRITE)

// マルチファイル文書の場合
DmaBoolean GetContentAndLock(
 pDmaString_T          pDirPath,
 SDBR_CONTENTLIST&     ContentList,
 pDmaString_T          pRenditionType,
 DmaInteger32          lLockType = DMA_LOCK_WRITE)

// リファレンスファイル文書の場合
DmaBoolean GetContentAndLock(
 SDBR_REFERENCE_PATHINFO&  ReferencePath,
 pDmaString_T              pRenditionType,
 pDmaInteger32             plReferenceType,
 ppDmaString_T             ppContentLocation,
 DmaInteger32              lLockType=DMA_LOCK_WRITE)

// File Link文書の場合
DmaBoolean GetContentAndLock(
 SDBR_FILELINK_PATHINFO&  FileLinkPath,
 pDmaString_T             pRenditionType,
 DmaBinaryValue**         ppbvFileHandle,
 DmaInteger32             lLockType = DMA_LOCK_WRITE)

// コンテント情報構造体
struct SDBR_CONTENTINFO {
 pDmaString_T    pComponentType;   // ファイルを識別する文字列
 pDmaString_T    pRetrievalName;   // ファイル名
 DmaUInteger32   lContentSize;     // ファイルのサイズ
};

// コンテント情報リスト構造体
struct SDBR_CONTENTLIST {
 DmaInteger32       lCount;           // 取得ファイル数
 SDBR_CONTENTINFO*  pItem;            // コンテント情報構造体の
                                      // ポインタ
 DmaInteger32       lValidMode;       // 有効モード
 DmaBoolean         bIsMultiContents; // マルチファイル識別
};

// リファレンスパス情報構造体
struct SDBR_REFERENCE_PATHINFO {
 DmaInteger32  lContentOperateMode;    // 操作モード
 pDmaString_T  pEntry;                 // ファイルのパスおよびロケーション
 pDmaString_T  pTargetPath;            // コンテント格納先パス
 pDmaString_T  pDeleteRootPath;        // 削除ディレクトリのルートパス
};

// File Linkパス情報構造体
struct SDBR_FILELINK_PATHINFO {
 pDmaString_T pFilePath;   // 取得先のファイルまたはディレクトリのURL
 pDmaString_T  pFamName;
 pDmaString_T  pFamFilePath;
 DmaInteger32  lContentDeleteMode;
 DmaInteger32  lFileNamingMode;
};

詳細

ロックタイプを明示的に指定して，文書空間に登録されているファイルを，指定したパスに複写するメソッドです。マルチレンディション文書の場合，pRenditionTypeを指定すると，対応するRenditionTypeを持つレンディションのファイルが取得できます。

Windowsの場合，次のことに注意してください。

大文字と小文字を区別しないと同一になるファイル名がある場合，先に取得したファイルが上書きされます。例えば，先に取得された「AAA.txt」は，あとから取得された「aaa.txt」によって上書きされます。

ロングファイル名とショートファイル名の関係で同一のファイル名とみなされるファイルがある場合，先に取得したファイルが上書きされます。例えば，先に取得された「AAAAAAAAA.txt」は，あとから取得された「AAAAAA~1.txt」によって上書きされます。

シングルファイル文書の場合

取得したコンテントが，引数pFilePathに指定したファイルに複写されます。マルチレンディション文書のサブレンディションのコンテントを取得する場合は，引数pRenditionTypeで対象のレンディションを指定します。

UNIXの場合に，登録されているファイルを/tmp/sample.docに複写して取得する例を次に示します。Windowsの場合は，c:¥temp¥sample.docに複写して取得する例として，例中の"file:///tmp/sample.doc"を"file:///c:¥temp¥sample.doc"と読み替えてください。なお，この例で取得できるのは，マスタレンディションのコンテントです。

ファイルを取得する例

pDbrVerDoc->GetContentAndLock("file:///tmp/sample.doc",
                              DMA_LOCK_READ);

マルチファイル文書の場合

引数ContentListで指定した複数のファイルをコンテントとして取得します。取得したコンテントは，引数pDirPathで指定したディレクトリに出力されます。ファイル名は，SDBR_CONTENTINFO構造体に設定しているpRetrievalNameの値になります。

マルチファイル文書の場合，次のことに注意してください。

GetContentInfoメソッドで取得したSDBR_CONTENTLIST構造体を使用して，このメソッドを実行する場合，lValidModeは変更しないでください。

この形式のGetContentメソッドを，マルチファイル文書ではないバージョンなし文書に対して実行すると，ERR_NOT_MULTI_CONTENTSのエラーになります。

リファレンスファイル文書の場合

取得したコンテントが，引数ReferencePathのSDBR_REFERENCE_PATHINFO構造体のメンバpEntryに指定したファイルに出力されます。

リファレンスファイル文書の場合，次のことに注意してください。

このメソッドは，レンディションのコンテント種別がContentReferenceオブジェクトの場合（dbrProp_ContentTypeプロパティの値がDBR_CONTENTTYPE_REFERENCEの場合）にだけ有効となります。そのほかのコンテント種別を持つレンディションに対して実行すると，ERR_CONTENTTYPE_MISMATCHのエラーになります。

File Link文書の場合

取得したコンテントが，引数FileLinkPathのSDBR_FILELINK_PATHINFO構造体のメンバpFilePathに指定したファイルまたはディレクトリに出力されます。

コンテントとしてディレクトリが登録されている文書のレンディションに対してこのメソッドを実行すると，引数に指定したSDBR_FILELINK_PATHINFO構造体のメンバpFilePathに指定した名前のディレクトリが作成され，その下に登録されているディレクトリおよびサブディレクトリ下のすべてのファイルが取得されます。コンテントとしてディレクトリが登録されている文書のレンディションとは，AddRenditionメソッド，CreateObjectメソッド，UpdateContentメソッドまたはUpdateContentAndRenditionTypeメソッドの引数FileLinkPathに指定したSDBR_FILELINK_PATHINFO構造体のメンバpFilePathに，ディレクトリを指定して登録または更新した文書のレンディションのことです。

File Link文書の場合，次のことに注意してください。

このメソッドは，レンディションのコンテント種別がContentFileLinkオブジェクトの場合（dbrProp_ContentTypeプロパティの値がDBR_CONTENTTYPE_FILELINKの場合）にだけ有効となります。そのほかのコンテント種別を持つレンディションに対して実行すると，ERR_CONTENTTYPE_MISMATCHのエラーになります。

コンテントとして空のディレクトリが登録されているレンディションに対してこのメソッドを実行すると，ERR_CONTENT_NOT_REGISTEREDのエラーになります。コンテントとして空のディレクトリが登録されているレンディションとは，AddRenditionメソッド，CreateObjectメソッド，UpdateContentメソッドまたはUpdateContentAndRenditionTypeメソッドの引数FileLinkPathに指定したSDBR_FILELINK_PATHINFO構造体のメンバpFilePathに，空のディレクトリを指定して作成した文書のレンディションのことです。

引数に指定するSDBR_FILELINK_PATHINFO構造体のメンバpFilePathで指定したファイル名のファイル，またはディレクトリパスのディレクトリ下に取得しようとするファイルがすでに存在する場合，ERR_FILELINK_FAILEDのエラーになります。

このメソッドで，ERR_FILELINK_FAILEDのエラーが発生した場合は，詳細メッセージにHiRDB File Linkが出力するエラー情報が出力されます。HiRDB File Linkが出力するエラーを参照して，対処してください。

引数

pFilePath（入力）

取得したファイルを複写する複写先のパス名を指定します。

ファイルのパス名はURL形式で設定します。ただし，プロトコル名は"file:"だけが指定できます。例えば，UNIXの場合，ファイル"/tmp/sample.doc"に複写するには，"file:///tmp/sample.doc"と指定します。Windowsの場合，ファイル"c:¥temp¥sample.doc"に複写するには，"file:///c:¥temp¥sample.doc"と指定します。

指定したパスのファイルが存在する場合は上書きします。ファイル名は，RenditionTypeプロパティまたはRetrievalNameプロパティを参考にして，メソッドをコールした側が任意に決定してください。

指定したパスのファイルが存在しない場合，ディレクトリが存在し，かつファイルの作成が可能ならば新規にファイルを作成します。それ以外の場合はエラーになります。

pRenditionType（入力）

RenditionTypeを指定してファイルを取得する場合，取得するレンディションのRenditionTypeを表す文字列を指定します。

この引数で指定したRenditionTypeが，対象文書のレンディションとして存在しない場合はエラーになります。

マスタレンディションの場合はNULLを指定するか，「マスタレンディションのファイルを取得する場合」の形式を使用することもできます。なお，空文字列（""）は指定できません。

マルチファイル文書の場合，NULLまたは「シングルファイル文書の場合（マスタレンディションのファイルの取得）」の形式を指定してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

pDirPath（入力）

出力されるファイルの格納先ディレクトリを，URL形式で指定します。

指定したパスのディレクトリが存在し，かつそのディレクトリへの実行権限，書き込み権限があれば，取得したファイルを格納します。それ以外の場合，エラーになります。

ContentList（入力）

取得するコンテントの情報を設定したコンテント情報リスト構造体を指定します。コンテント情報リスト構造体については，「付録C.1(2)　SDBR_CONTENTLIST構造体（コンテント情報リスト構造体）」を参照してください。

ReferencePath（入力）

リファレンスファイル文書を取得するために必要な情報を格納した，SDBR_REFERENCE_PATHINFO構造体を指定します。ContentLocationプロパティとCdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパスを合わせた文字列長（パスの区切り文字も含む）が，Windowsの場合は260バイト以上，AIXの場合は1023バイト以上であるとERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

リファレンスファイル文書を取得する場合，SDBR_REFERENCE_PATHINFO構造体のメンバpTargetPathおよびpDeleteRootPathへの値の指定は，無効になります。

SDBR_REFERENCE_PATHINFO構造体に設定する内容については，「付録C.1(15)　SDBR_REFERENCE_PATHINFO構造体（リファレンスパス情報構造体）」を参照してください。

plReferenceType（出力）

コンテントのリファレンス種別（ReferenceType）を取得する場合，リファレンス種別を格納する領域のポインタを指定します。NULLを指定した場合，リファレンス種別は返却されません。

ppContentLocation（出力）

コンテントロケーション（ContentLocationプロパティ）を取得する場合，コンテントロケーションへのポインタを格納する領域を指定します。NULLを指定した場合，コンテントロケーションは返却されません。取得した領域は，dbrDelete関数で解放する必要があります。dbrDelete関数の詳細については，「20.　関数」の「dbrDelete関数」を参照してください。

FileLinkPath（出力）

SDBR_FILELINK_PATHINFO構造体のpFilePathメンバだけが有効となります。そのほかのメンバの設定値は無視されます。pFilePathに，コンテントの取得先となるクライアントのファイルパスまたはディレクトリパスを指定してください。

SDBR_FILELINK_PATHINFO構造体の指定内容については，「付録C.1(5)　SDBR_FILELINK_PATHINFO構造体（File Linkパス情報構造体）」を参照してください。

ppbvFileHandle（出力）

ppbvFileHandleにファイルハンドル情報が返却されます。この引数にはNULLを指定してください。取得した領域は，dbrDelete関数で解放する必要があります。dbrDelete関数の詳細については，「20.　関数」の「dbrDelete関数」を参照してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_COMPONENTTYPE_DUPLICATED
ComponentTypeが重複して指定されています。
ComponentTypeが重複しないように指定してください。

ERR_DBR
ERR_CONTENT_NOT_REGISTERED
コンテントが登録されていません。
コンテントを登録してください。

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_FILE_REFERENCE_OPERATION_FAILED
リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。
詳細メッセージを基に対処してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_NONEXISTS_RENDITION
指定されたレンディションは存在しません。
正しいRenditionTypeを指定してください。

ERR_DBR
ERR_NOT_MULTI_CONTENTS
マルチファイル文書ではありません。
マルチファイル管理機能を使用しない場合の形式で実行してください。

ERR_DBR
ERR_OBJECT_NOT_CONNECT
オブジェクトは接続されていません。
オブジェクトを接続してください。

ERR_DBR
ERR_OBJECT_REMOVED
オブジェクトはすでに削除されています。
正しいオブジェクトを指定してください。

ERR_DBR
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドをコールしてから，このメソッドをコールしてください。

ERR_DBR
ERR_REFERENCETYPE_MISMATCH
オブジェクト種別が一致していません。
オブジェクト種別または指定した操作モード（lContentOperateMode）を見直してください。

ERR_DBR
ERR_RETRIEVALNAME_DUPLICATED
RetrievalNameが重複して指定されています。
RetrievalNameが重複しないように指定してください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DBR
ERR_TARGETCONTENTPATH_NOT_SET
リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。
コンテント格納先ベースパスを設定してください。

ERR_DMA
DMARC_ACCESS_DENIED
要求された操作に対してアクセス権がありません。
正しいアクセス権を設定してください。

ERR_DMA
DMARC_BAD_LOCK_TYPE
不正な種類のロックが指定されています。
正しいロックタイプを指定してください。

ERR_DMA
DMARC_BAD_OIID
SetOIIDメソッドで設定されたOIIDが不正です。
正しいOIIDを指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_BAD_URL
リソースのURLが不正です。
URLの内容を見直してください。

ERR_DMA
DMARC_FAILED
操作が失敗しました。
時間を置いて再度実行するか，処理を見直してください。

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
使用できるファイル転送サービスがありません。

ネットワーク環境を確認してください。

_HIEDMS_FTPMODE=STATICを指定してファイル転送サービスを起動しているかどうかを，確認してください。

時間を置いて，再度実行してください。

ファイル転送サービスのセットアップコマンドを実行しているかどうかを，確認してください。

CdbrDocument::GetContentInfoメソッド

機能

マルチファイル文書の情報の取得

形式

DmaBoolean GetContentInfo(
 pDmaString_T        pRenditionType,
 SDBR_CONTENTLIST**  ppContentList,
 DｍaInteger32       lLockType = DMA_LOCK_READ)

//コンテント情報構造体
struct SDBR_CONTENTINFO {
 pDmaString_T    pComponentType;   // ファイルを識別する文字列
 pDmaString_T    pRetrievalName;   // ファイル名
 DmaUInteger32   lContentSize;     // ファイルのサイズ
};

//コンテント情報リスト構造体
struct SDBR_CONTENTLIST {
 DmaInteger32       lCount;           // 取得ファイル数
 SDBR_CONTENTINFO*  pItem;            // コンテント情報構造体の
                                      // ポインタ
 DmaInteger32       lValidMode;       // 有効モード
 DmaBoolean         bIsMultiContents; // マルチファイル識別
};

詳細

指定したレンディションのコンテントの情報を取得します。取得した情報は，引数ppContentListで指定したSDBR_CONTENTLIST構造体の領域に格納されます。返却されたSDBR_CONTENTLIST構造体のメンバに設定される値については，「付録C.1(2)　SDBR_CONTENTLIST構造体（コンテント情報リスト構造体）」を参照してください。

このppContentListに返却されたSBDR_CONTENTLIST構造体は，直接GetContentAndLockメソッドの引数として指定できます。ただし，返却されたSDBR_CONTENTLIST構造体のlCountが0でないことを確認してから，GetContentAndLockメソッドの引数として指定してください。lCountが0であるSDBR_CONTENTLIST構造体をGetContentAndLockメソッドの引数として指定すると，DMARC_BAD_PARAMETERのエラーになります。

引数

pRenditionType（入力）

レンディションのRenditionTypeを表す文字列を指定します。指定したレンディションのコンテントの情報が取得されます。

NULLを指定した場合，マスタレンディションが処理対象になります。

ppContentList（出力）

コンテント情報リスト構造体のポインタを格納する領域を指定します。このポインタが示す領域はクラスライブラリが確保するため，使用後はこのポインタをdbrDelete関数で解放してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を指定してください。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_NONEXISTS_RENDITION | 指定されたRenditionTypeは存在しません。 | RenditionTypeを見直してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrDocument::GetRelationListメソッド

機能

文書のリレーション情報の一覧取得

形式

DmaBoolean GetRelationList(
 pDmaBoolean             pbContinue,
 DmaInteger32            lClassType,
 DmaInteger32            lPropDefListCount,
 SDBR_PROPDEF*           pPropDefList,
 DmaInteger32            lRelPropDefListCount,
 SDBR_PROPDEF*           pRelPropDefList,
 DmaInteger32            lRelationListCount,
 SDBR_RELATIONLIST**     ppRelationList,
 DmaInteger32            lRelationendType,
 DmaInteger32            lRelationendStatus)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
  DmaId             PropId;        //プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;       //Boolean型
    pDmaInteger32    plInteger32;     //Integer32型
    pDmaId           pId;             //ID型
    pDmapv           ppObject;        //Object型
    ppDmaString_T    ppString;        //String型
   } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

// リレーションリスト構造体
struct SDBR_RELATIONLIST {
 DmaInteger32       lCount; //リレーションしている数
 SDBR_RELATIONINFO* pItem;  //リレーション情報構造体へのポインタ
};

// リレーション情報構造体
struct SDBR_RELATIONINFO {
 pDmaString_T   pOIID;       //文書オブジェクトのOIID
 DmaInteger32   lType;       //オブジェクトの種別
 pDmaString_T   pRelId;      //リレーション識別子
 SDBR_PROPLIST  PropList;    //オブジェクトのプロパティリスト
 SDBR_PROPLIST  RelPropList; //リレーションのプロパティリスト
};

詳細

文書間リレーションで関連づけられている文書の一覧情報を取得するメソッドです。

引数lRelationendTypeにDBR_RELATIONEND_HEADを設定することによって，このオブジェクトに関連づけされているリレーション先文書の一覧情報を取得できます。また，lRelationendTypeにDBR_RELATIONEND_TAILを設定することによって，このオブジェクトをリレーション先に持つリレーション元文書の一覧情報を取得できます。

初回取得時は，引数pbContinueにDMA_FALSEを設定してメソッドをコールします。１回のメソッドのコールで一覧の取得が完了しなかった場合，引数pbContinueにDMA_TRUEが設定されます。残りの要素は，引数pbContinueにDMA_TRUEを設定して取得します。引数pbContinueがDMA_FALSEになるまで，繰り返してこのメソッドをコールしてください。

リレーション先のオブジェクトが削除されていて，RemoveRelationメソッドで文書間リレーションが解除されないままの場合，リレーション情報は残っている状態になります。この場合も，引数lRelationendStatusにDBR_RELATIONEND_STATUS_NOT_EXISTまたはDBR_RELATIONEND_STATUS_ALLを設定することによって，削除されたオブジェクトのリレーション情報を取得できます。オブジェクトが削除されていてリレーション情報だけが残っている場合，リレーション情報構造体である，SDBR_RELATIONINFO構造体の内容は，pOIID = NULL，lType = DBR_CLASS_UNKNOWN，PropList.lCount = 0，PropList.pItem = NULLになり，pRelIdとRelPropListだけに正当な値が設定されます。

なお，このメソッドで取得したリレーション識別子は，トランザクションが終了するまで有効とは限りません。ほかのトランザクションから削除されたり，リレーションのプロパティを変更されたりする可能性があります。

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得した要素の残りを破棄して，新たに先頭から取得します。

なお，オブジェクトの生成後初めてメソッドをコールした場合，または前回の読み出しですべて取得した場合は，DMA_FALSEが指定されたものとして動作します。

前回の読み出しと異なる引数を持つメソッドがコールされた場合は，pbContinueの値を無視し，前回取得の残りを破棄して新たに先頭から取得します。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す次の値が設定されます。

DMA_TRUE
継続可能（まだ取得していない残りの要素があります）。

DMA_FALSE
継続不可（すべての要素を取得しました）。

lClassType（入力）

指定されたクラス識別子の要素だけを取得します。ただし，関連づけの対象オブジェクトがすでに削除されていて，リレーションだけが残っているリレーション情報についてはlClassTypeの指定とは無関係にすべて取得されます。

指定できるクラス識別子を次に示します。

クラス識別子 | クラスの種別
DBR_CLASS_VERSIONABLEDOCUMENT | CdbrVersionableDocumentクラス
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_ALL | すべてのクラス

それぞれのクラスの識別子をOR条件とした取得もできます。例えば，CdbrDocumentクラスとCdbrVersionableDocumentクラスの要素を取得したい場合は，次のように指定します。

DBR_CLASS_DOCUMENT | DBR_CLASS_VERSIONABLEDOCUMENT

すべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。

lPropDefListCount（入力）

文書間リレーション情報の一覧と同時に取得するプロパティの個数（引数pPropDefListに指定する配列の要素数）を0以上の値で指定します。プロパティを取得しない場合は0を指定します。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

文書間リレーション情報の一覧と同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。プロパティを取得しない場合はNULLを指定してください。NULLは，lPropDefListCountが0の場合だけ指定できます。lPropDefListCountが正の整数のときにpPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lRelPropDefListCount（入力）

文書間リレーション情報の一覧と同時に取得するリレーションのプロパティの個数（引数pRelPropDefListに指定する配列の要素数）を0以上の値で指定します。プロパティを取得しない場合は0を指定します。負の値を指定した場合は，エラーになります。

pRelPropDefList（入力）

文書間リレーション情報の一覧と同時に取得するリレーションのプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。プロパティを取得しない場合はNULLを指定してください。NULLは，lRelPropDefListCountが0の場合だけ指定できます。lRelPropDefListCountが正の整数のときにpRelPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lRelationListCount（入力）

取得する文書間リレーション情報の数を１以上の値で指定します。0以下の値を指定するとエラーになります。

ppRelationList（出力）

取得した文書間リレーション情報一覧へのポインタである，SDBR_RELATIONLIST構造体が設定されます。ポインタを格納する領域を指定してください。**ppRelationListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，**ppRelationListを指定してメモリを解放すると，構造体のメンバ(**ppRelationList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがってメソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_RELATIONLIST構造体およびSDBR_RELATIONINFO構造体に設定される内容については，「付録C.1(17)　SDBR_RELATIONLIST構造体（リレーションリスト構造体）」および「付録C.1(16)　SDBR_RELATIONINFO構造体（リレーション情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lRelationendType（入力）

このオブジェクトが文書間リレーションで関連づけているリレーション先オブジェクトの一覧を取得するか，このオブジェクトが文書間リレーションで関連づけられているリレーション元オブジェクトの一覧を取得するかを指定します。

次に示す値のどちらかを指定してください。

DBR_RELATIONEND_HEAD
このオブジェクトが文書間リレーションで関連づけているリレーション先オブジェクトの一覧を取得する場合に指定します。

DBR_RELATIONEND_TAIL
このオブジェクトが文書間リレーションで関連づけられているリレーション元オブジェクトの一覧を取得する場合に指定します。

lRelationendStatus（入力）

関連づけの対象オブジェクトが存在しているリレーション情報の一覧を取得するか，すでに関連づけの対象オブジェクトが削除されていて，リレーションだけ残っているリレーション情報の一覧を取得するかを指定します。

次に示す値のどれかを指定してください。

DBR_RELATIONEND_STATUS_EXIST
関連づけの対象オブジェクトが存在しているリレーション情報の一覧を取得する場合に指定します。

DBR_RELATIONEND_STATUS_NOT_EXIST
すでに関連づけの対象オブジェクトが削除されていて，リレーションだけが残っているリレーション情報の一覧を取得する場合に指定します。
この場合，lClassTypeでのクラス種別の指定は無効になります。つまり，lClassTypeでクラス種別を指定しているかどうかに関係なく，関連づけの対象オブジェクトが削除されているリレーション情報はすべて取得されます。

DBR_RELATIONEND_STATUS_ALL
すべてのリレーション情報の一覧を取得する場合に指定します。
この場合，関連づけの対象オブジェクトが存在しているリレーションに関しては，lClassTypeでのクラス種別の指定が有効です。ただし，関連づけの対象オブジェクトが削除されているリレーション情報は，lClassTypeでのクラス種別の指定とは無関係にすべて取得されます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrDocument::GetRelationListAndLockメソッド

機能

文書のリレーション情報の一覧取得と同時に指定したロックの設定

形式

DmaBoolean GetRelationListAndLock(
 pDmaBoolean             pbContinue,
 DmaInteger32            lClassType,
 DmaInteger32            lPropDefListCount,
 SDBR_PROPDEF*           pPropDefList,
 DmaInteger32            lRelPropDefListCount,
 SDBR_PROPDEF*           pRelPropDefList,
 DmaInteger32            lRelationListCount,
 SDBR_RELATIONLIST**     ppRelationList,
 DmaInteger32            lRelationendType,
 DmaInteger32            lRelationendStatus,
 DmaInteger32            lLockType = DMA_LOCK_WRITE)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
  DmaId             PropId;        //プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;       //Boolean型
    pDmaInteger32    plInteger32;     //Integer32型
    pDmaId           pId;             //ID型
    pDmapv           ppObject;        //Object型
    ppDmaString_T    ppString;        //String型
   } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

// リレーションリスト構造体
struct SDBR_RELATIONLIST {
 DmaInteger32       lCount; //リレーションしている数
 SDBR_RELATIONINFO* pItem;  //リレーション情報構造体へのポインタ
};

// リレーション情報構造体
struct SDBR_RELATIONINFO {
 pDmaString_T   pOIID;       //文書オブジェクトのOIID
 DmaInteger32   lType;       //オブジェクトの種別
 pDmaString_T   pRelId;      //リレーション識別子
 SDBR_PROPLIST  PropList;    //オブジェクトのプロパティリスト
 SDBR_PROPLIST  RelPropList; //リレーションのプロパティリスト
};

詳細

ロックタイプを明示的に指定して，文書間リレーションで関連づけられている文書の一覧情報を取得するメソッドです。

引数lRelationendTypeにDBR_RELATIONEND_HEADを設定することによって，このオブジェクトに関連づけされているリレーション先文書の一覧情報を取得します。また，lRelationendTypeにDBR_RELATIONEND_TAILを設定することによって，このオブジェクトをリレーション先に持つリレーション元文書の一覧情報を取得できます。

初回取得時は，引数pbContinueにDMA_FALSEを設定してメソッドをコールします。１回のメソッドのコールで一覧の取得が完了しなかった場合，引数pbContinueにDMA_TRUEが設定されます。残りの要素は，引数pbContinueにDMA_TRUEを設定して取得します。引数pbContinueがDMA_FALSEになるまで，繰り返してこのメソッドをコールしてください。

リレーション先のオブジェクトが削除されていて，RemoveRelationメソッドで文書間リレーションが解除されないままの場合，リレーション情報は残っている状態になります。この場合も，引数lRelationendStatusにDBR_RELATIONEND_STATUS_NOT_EXISTまたはDBR_RELATIONEND_STATUS_ALLを設定することによって，削除されたオブジェクトのリレーション情報を取得できます。オブジェクトが削除されていてリレーション情報だけが残っている場合，リレーション情報構造体である，SDBR_RELATIONINFO構造体の内容は，pOIID = NULL，lType = DBR_CLASS_UNKNOWN，PropList.lCount = 0，PropList.pItem = NULLになり，pRelIdとRelPropListだけに正当な値が設定されます。

なお，このメソッドで取得したリレーション識別子は，トランザクションが終了するまで有効とは限りません。ほかのトランザクションから削除されたり，リレーションのプロパティを変更されたりする可能性があります。

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得した要素の残りを破棄して，新たに先頭から取得します。

なお，オブジェクトの生成後初めてメソッドをコールした場合，または前回の読み出しですべて取得した場合は，DMA_FALSEが指定されたものとして動作します。

前回の読み出しと異なる引数を持つメソッドがコールされた場合は，pbContinueの値無視し，前回取得の残りを破棄して新たに先頭から取得します。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す次の値が設定されます。

DMA_TRUE
継続可能（まだ取得していない残りの要素があります）。

DMA_FALSE
継続不可（すべての要素を取得しました）。

lClassType（入力）

指定されたクラス識別子の要素だけを取得します。ただし，関連づけの対象オブジェクトがすでに削除されていて，リレーションだけが残っているリレーション情報についてはlClassTypeの指定とは無関係にすべて取得されます。

指定できるクラス識別子を次に示します。

クラス識別子 | クラスの種別
DBR_CLASS_VERSIONABLEDOCUMENT | CdbrVersionableDocumentクラス
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_ALL | すべてのクラス

それぞれのクラスの識別子をOR条件とした取得もできます。例えば，CdbrDocumentクラスとCdbrVersionableDocumentクラスの要素を取得したい場合は，次のように指定します。

DBR_CLASS_DOCUMENT | DBR_CLASS_VERSIONABLEDOCUMENT

すべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。

lPropDefListCount（入力）

文書間リレーション情報の一覧と同時に取得するプロパティの個数（引数pPropDefListに指定する配列の要素数）を0以上の値で指定します。プロパティを取得しない場合は0を指定します。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

文書間リレーション情報の一覧と同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。プロパティを取得しない場合はNULLを指定してください。NULLは，lPropDefListCountが0の場合だけ指定できます。lPropDefListCountが正の整数のときにpPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lRelPropDefListCount（入力）

文書間リレーション情報の一覧と同時に取得するリレーションのプロパティの個数（引数pRelPropDefListに指定する配列の要素数）を0以上の値で指定します。プロパティを取得しない場合は0を指定します。負の値を指定した場合は，エラーになります。

pRelPropDefList（入力）

文書間リレーション情報の一覧と同時に取得するリレーションのプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。プロパティを取得しない場合はNULLを指定してください。NULLは，lRelPropDefListCountが0の場合だけ指定できます。lRelPropDefListCountが正の整数のときにpRelPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lRelationListCount（入力）

取得する文書間リレーション情報の数を１以上の値で指定します。0以下の値を指定するとエラーになります。

ppRelationList（出力）

取得した文書間リレーション情報一覧へのポインタである，SDBR_RELATIONLIST構造体が設定されます。ポインタを格納する領域を指定してください。**ppRelationListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，**ppRelationListを指定してメモリを解放すると，構造体のメンバ(**ppRelationList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがってメソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_RELATIONLIST構造体およびSDBR_RELATIONINFO構造体に設定される内容については，「付録C.1(17)　SDBR_RELATIONLIST構造体（リレーションリスト構造体）」および「付録C.1(16)　SDBR_RELATIONINFO構造体（リレーション情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lRelationendType（入力）

このオブジェクトが文書間リレーションで関連づけているリレーション先オブジェクトの一覧を取得するか，このオブジェクトが文書間リレーションで関連づけられているリレーション元オブジェクトの一覧を取得するかを指定します。

次に示す値のどちらかを指定してください。

DBR_RELATIONEND_HEAD
このオブジェクトが文書間リレーションで関連づけているリレーション先オブジェクトの一覧を取得する場合に指定します。

DBR_RELATIONEND_TAIL
このオブジェクトが文書間リレーションで関連づけられているリレーション元オブジェクトの一覧を取得する場合に指定します。

lRelationendStatus（入力）

関連づけの対象オブジェクトが存在しているリレーション情報の一覧を取得するか，すでに関連づけの対象オブジェクトが削除されていて，リレーションだけ残っているリレーション情報の一覧を取得するかを指定します。

次に示す値のどれかを指定してください。

DBR_RELATIONEND_STATUS_EXIST
関連づけの対象オブジェクトが存在しているリレーション情報の一覧を取得する場合に指定します。

DBR_RELATIONEND_STATUS_NOT_EXIST
すでに関連づけの対象オブジェクトが削除されていて，リレーションだけが残っているリレーション情報の一覧を取得する場合に指定します。
この場合，lClassTypeでのクラス種別の指定は無効になります。つまり，lClassTypeでクラス種別を指定しているかどうかに関係なく，関連づけの対象オブジェクトが削除されているリレーション情報はすべて取得されます。

DBR_RELATIONEND_STATUS_ALL
すべてのリレーション情報の一覧を取得する場合に指定します。
この場合，関連づけの対象オブジェクトが存在しているリレーションに関しては，lClassTypeでのクラス種別の指定が有効です。ただし，関連づけの対象オブジェクトが削除されているリレーション情報は，lClassTypeでのクラス種別の指定とは無関係にすべて取得されます。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を指定してください。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrDocument::GetRenditionListメソッド

機能

レンディション一覧の取得

形式

DmaBoolean GetRenditionList(
 DmaInteger32             lPropDefListCount,
 SDBR_PROPDEF*            pPropDefList,
 SDBR_RENDITIONLIST**     ppRenditionList )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
  DmaId             PropId;        //プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;       //Boolean型
    pDmaInteger32    plInteger32;     //Integer32型
    pDmaId           pId;             //ID型
    pDmapv           ppObject;        //Object型
    ppDmaString_T    ppString;        //String型
   } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

// レンディションリスト構造体
struct SDBR_RENDITIONLIST {
 DmaInteger32         lCount;   //レンディション情報の数
 SDBR_RENDITIONINFO*  pItem;    //レンディション情報構造体
};

// レンディション情報構造体
struct SDBR_RENDITIONINFO {
 pDmaString_T   pRenditionType; //RenditionTypeを表す文字列
 SDBR_PROPLIST  PropList;       //プロパティリスト構造体
};

詳細

文書に登録されているレンディションの一覧情報とそのプロパティを取得するメソッドです。

マルチレンディション文書の場合，マスタレンディションの情報は，レンディション情報構造体である，SDBR_RENDITIONINFO構造体の配列要素の1番目に格納され，サブレンディションの情報は2番目以降に格納されます。

引数

lPropDefListCount（入力）

レンディションの一覧と同時に取得するプロパティの数（pPropDefListに指定する配列の要素数）を指定します。0を指定した場合は，プロパティは取得されません。負の値を指定した場合はエラーになります。

pPropDefList（入力）

レンディションの一覧と同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。プロパティを取得しない場合はNULLを指定してください。lPropDefListCountに正の値を指定してpPropDefListにNULLを指定した場合はエラーになります。

指定できるプロパティ識別子を次に示します。

dbrProp_RetrievalName
レンディションのRetrievalNameを取得する場合に指定します。

dbrProp_RenditionStatus
レンディションのRenditionStatusを取得する場合に指定します。なお，設定されるRenditionStatusの値については，「CdbrDocumentクラスの詳細」の「RenditionStatusプロパティの値」を参照してください。

dbrProp_ContentType
レンディションのコンテント種別を取得する場合に指定します。なお，設定されるContentTypeの値については，「CdbrDocumentクラスの詳細」の「ContentTypeプロパティの値とコンテント種別の対応」を参照してください。

SDBR_PROPDEF構造体については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppRenditionList（出力）

取得したレンディション一覧へのポインタである，SDBR_RENDITIONLIST構造体が設定されます。ポインタを格納する領域を指定してください。*ppRenditionListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppRenditionListを指定してメモリを解放すると，構造体のメンバ(*ppRenditionList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがってメソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_RENDITIONLIST構造体およびSDBR_RENDITIONINFO構造体に設定される内容については，「付録C.1(20)　SDBR_RENDITIONLIST構造体（レンディションリスト構造体）」および「付録C.1(19)　SDBR_RENDITIONINFO構造体（レンディション情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrDocument::GetRenditionListAndLockメソッド

機能

レンディション一覧の取得と同時に指定したロックの設定

形式

DmaBoolean GetRenditionListAndLock(
 DmaInteger32             lPropDefListCount,
 SDBR_PROPDEF*            pPropDefList,
 SDBR_RENDITIONLIST**     ppRenditionList,
 DmaInteger32             lLockType = DMA_LOCK_WRITE )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
  DmaId             PropId;        //プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;       //Boolean型
    pDmaInteger32    plInteger32;     //Integer32型
    pDmaId           pId;             //ID型
    pDmapv           ppObject;        //Object型
    ppDmaString_T    ppString;        //String型
   } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

// レンディションリスト構造体
struct SDBR_RENDITIONLIST {
 DmaInteger32         lCount;   //レンディション情報の数
 SDBR_RENDITIONINFO*  pItem;    //レンディション情報構造体
};

// レンディション情報構造体
struct SDBR_RENDITIONINFO {
 pDmaString_T   pRenditionType; //RenditionTypeを表す文字列
 SDBR_PROPLIST  PropList;       //プロパティリスト構造体
};

詳細

ロックタイプを明示的に指定して，文書に登録されているレンディションの一覧情報とそのプロパティを取得するメソッドです。

マルチレンディション文書の場合，マスタレンディションの情報は，レンディション情報構造体である，SDBR_RENDITIONINFO構造体の配列要素の1番目に格納され，サブレンディションの情報は2番目以降に格納されます。

引数

lPropDefListCount（入力）

レンディションの一覧と同時に取得するプロパティの数（pPropDefListに指定する配列の要素数）を指定します。0を指定した場合は，プロパティは取得されません。負の値を指定した場合はエラーになります。

pPropDefList（入力）

レンディションの一覧と同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。プロパティを取得しない場合はNULLを指定してください。lPropDefListCountに正の値を指定してpPropDefListにNULLを指定した場合はエラーになります。

指定できるプロパティ識別子を次に示します。

dbrProp_RetrievalName
レンディションのRetrievalNameを取得する場合に指定します。

dbrProp_RenditionStatus
レンディションのRenditionStatusを取得する場合に指定します。なお，設定されるRenditionStatusの値については，「CdbrDocumentクラスの詳細」の「RenditionStatusプロパティの値」を参照してください。

dbrProp_ContentType
レンディションのコンテント種別を取得する場合に指定します。なお，設定されるContentTypeの値については，「CdbrDocumentクラスの詳細」の「ContentTypeプロパティの値とコンテント種別の対応」を参照してください。

SDBR_PROPDEF構造体については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppRenditionList（出力）

取得したレンディション一覧へのポインタである，SDBR_RENDITIONLIST構造体が設定されます。ポインタを格納する領域を指定してください。*ppRenditionListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppRenditionListを指定してメモリを解放すると，構造体のメンバ(*ppRenditionList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがってメソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_RENDITIONLIST構造体およびSDBR_RENDITIONINFO構造体に設定される内容については，「付録C.1(20)　SDBR_RENDITIONLIST構造体（レンディションリスト構造体）」および「付録C.1(19)　SDBR_RENDITIONINFO構造体（レンディション情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を指定してください。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrDocument::GetVersionableListメソッド

機能

バージョン管理情報一覧の取得

形式

// バージョン識別子なしで取得する場合
DmaBoolean GetVersionableList(
 pDmaBoolean        pbContinue,
 DmaInteger32       lPropDefListCount,
 SDBR_PROPDEF*      pPropDefList,
 DmaInteger32       lObjListCount,
 SDBR_OBJLIST**     ppObjList )

// バージョン識別子付きで取得する場合
DmaBoolean GetVersionableList(
 pDmaBoolean        pbContinue,
 DmaInteger32       lPropDefListCount,
 SDBR_PROPDEF*      pPropDefList,
 DmaInteger32       lObjListCount,
 SDBR_VROBJLIST**   ppVrObjList )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
 DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
 DmaInteger32      lCount;
 SDBR_PROP*        pItem;
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
 pDmaString_T       pOIID;         // オブジェクトのOIID
 DmaInteger32       lType;         // オブジェクトの種別
 SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
 DmaInteger32      lCount;
 SDBR_OBJINFO*     pItem;
};

// バージョン識別子付きオブジェクト情報構造体
struct SDBR_VROBJINFO {
 pDmaString_T       pOIID;         // オブジェクトのOIID
 DmaInteger32       lType;         // オブジェクトの種別
 pDmaString_T       pVersionId;    // バージョン識別子
 SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// バージョン識別子付きオブジェクトリスト構造体
struct SDBR_VROBJLIST {
 DmaInteger32       lCount;
 SDBR_VROBJINFO*    pItem;
};

詳細

CdbrDocumentオブジェクトを1バージョンとして包含しているCdbrVersionableDocumentオブジェクトの一覧を取得するメソッドです。このオブジェクトを表すバージョン識別子も同時に取得できます。その際，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティ値も取得します。ただし，このオブジェクトが仮のバージョンに該当するオブジェクトの場合は，CdbrVersionableDocumentオブジェクトを取得できません。

初回にメソッドをコールした時点ですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて初回にメソッドをコールした時点での状態を示しています。したがって，１回目のメソッドのコール以降に変更した要素数やプロパティ値は，２回目以降のコールに反映されません。

要素の個数に変更がなく，同じオブジェクトに対するコールであっても，取得される情報の順序は常に異なる可能性があります。

使用方法については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」のCdbrContainable::GetContainerListメソッドを参照してください。

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次にある要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得の残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてメソッドをコールした場合または前回の読み出しですべて取得した場合は，すべてDMA_FALSEが指定されたものとして処理されます。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合はDMA_TRUEが設定されます。

2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について，次に示します。

表8-8　ほかの引数の扱われ方（SDBR_OBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppObjList | ○ | ○
ppVrObjList | ○ | ○

（凡例）

○：有効

×：無効

lPropDefListCount（入力）

pPropDefListの要素数を指定します。0を指定した場合は，プロパティを取得しません。負の値を指定した場合はエラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。lPropDefListCountに正の値を指定してpPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppObjList（出力）

取得した情報として，オブジェクト情報リスト構造体である，SDBR_OBJLIST構造体の配列へのポインタが設定されます。*ppObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppObjListを指定したメモリを解放すると，構造体のメンバ(*ppObjList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがってメソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppVrObjList（出力）

取得した情報として，バージョン識別子付きオブジェクトリスト構造体である，SDBR_VROBJLIST構造体の配列へのポインタが設定されます。*ppVrObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppVrObjListを指定したメモリを解放すると，構造体のメンバ(*ppVrObjList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがってメソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_VROBJLIST構造体およびSDBR_VROBJINFO構造体に設定される内容については，「付録C.1(22)　SDBR_VROBJLIST構造体（バージョン識別子付きオブジェクトリスト構造体）」および「付録C.1(21)　SDBR_VROBJINFO構造体（バージョン識別子付きオブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_FAILED | 操作が失敗しました。 | 時間を置いて再度実行するか，処理を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrDocument::GetVersionableListAndLockメソッド

機能

バージョン管理情報一覧の取得と同時に指定したロックの設定

形式

// バージョン識別子なしで取得する場合
DmaBoolean GetVersionableListAndLock(
 pDmaBoolean        pbContinue,
 DmaInteger32       lPropDefListCount,
 SDBR_PROPDEF*      pPropDefList,
 DmaInteger32       lObjListCount,
 SDBR_OBJLIST**     ppObjList,
 DmaInteger32       lLockType = DMA_LOCK_WRITE)

// バージョン識別子付きで取得する場合
DmaBoolean GetVersionableListAndLock(
 pDmaBoolean        pbContinue,
 DmaInteger32       lPropDefListCount,
 SDBR_PROPDEF*      pPropDefList,
 DmaInteger32       lObjListCount,
 SDBR_VROBJLIST**   ppVrObjList,
 DmaInteger32       lLockType = DMA_LOCK_WRITE)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
 DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
 DmaInteger32      lCount;
 SDBR_PROP*        pItem;
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
 pDmaString_T       pOIID;         // オブジェクトのOIID
 DmaInteger32       lType;         // オブジェクトの種別
 SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
 DmaInteger32      lCount;
 SDBR_OBJINFO*     pItem;
};
// バージョン識別子付きオブジェクト情報構造体
struct SDBR_VROBJINFO {
 pDmaString_T       pOIID;         // オブジェクトのOIID
 DmaInteger32       lType;         // オブジェクトの種別
 pDmaString_T       pVersionId;    // バージョン識別子
 SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

//  バージョン識別子付きオブジェクトリスト構造体
struct SDBR_VROBJLIST {
 DmaInteger32      lCount;
 SDBR_VROBJINFO*   pItem;
};

詳細

ロックタイプを明示的に指定して，CdbrDocumentオブジェクトを1バージョンとして包含しているCdbrVersionableDocumentオブジェクトの一覧を取得するメソッドです。このオブジェクトを表すバージョン識別子も同時に取得できます。その際，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティ値も取得します。ただし，このオブジェクトが仮のバージョンに該当するオブジェクトの場合は，CdbrVersionableDocumentオブジェクトを取得できません。

初回にメソッドをコールした時点ですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて初回にメソッドをコールした時点での状態を示しています。したがって，１回目のメソッドのコール以降に変更した要素数やプロパティ値は，２回目以降のコールに反映されません。

要素の個数に変更がなく，同じオブジェクトに対するコールであっても，取得される情報の順序は常に異なる可能性があります。

使用方法については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」のCdbrContainable::GetContainerListメソッドを参照してください。

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次にある要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得の残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてメソッドをコールした場合または前回の読み出しですべて取得した場合は，すべてDMA_FALSEが指定されたものとして処理されます。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合はDMA_TRUEが設定されます。

2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について次に示します。

表8-9　ほかの引数の扱われ方（SDBR_OBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppObjList | ○ | ○
ppVrObjList | ○ | ○
lLockType | × | ○

（凡例）

○：有効

×：無効

lPropDefListCount（入力）

pPropDefListの要素数を指定します。0を指定した場合は，プロパティは取得しません。負の値を指定した場合はエラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。lPropDefListCountに正の値を指定してpPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppObjList（出力）

取得した情報として，オブジェクト情報リスト構造体である，SDBR_OBJLIST構造体へのポインタが設定されます。*ppObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppObjListを指定したメモリを解放すると，構造体のメンバ(*ppObjList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがってメソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppVrObjList（出力）

取得した情報として，バージョン識別子付きオブジェクトリスト構造体である，SDBR_VROBJLIST構造体へのポインタが設定されます。*ppVrObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppObjListを指定したメモリを解放すると，構造体のメンバ(*ppVrObjList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがってメソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_VROBJLIST構造体およびSDBR_VROBJINFO構造体に設定される内容については，「付録C.1(22)　SDBR_VROBJLIST構造体（バージョン識別子付きオブジェクトリスト構造体）」および「付録C.1(21)　SDBR_VROBJINFO構造体（バージョン識別子付きオブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次の値のどれかを設定します。

DMA_LOCK_READ
readロックを設定します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_READ | DBR_RLT_FOR_UPDATE
readロックを設定し，更新・削除用の一覧を取得します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

DMA_LOCK_WRITE | DBR_RLT_FOR_UPDATE
排他的なwriteロックを設定し，更新・削除用の一覧を取得します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_FAILED | 操作が失敗しました。 | 時間を置いて再度実行するか，処理を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrDocument::PutRelationPropertyValuesメソッド

機能

文書間リレーションのプロパティの設定

形式

DmaBoolean PutRelationPropertyValues(
　pDmaString_T            pRelId,
　SDBR_PROPLIST*          pRelPropList)

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;       //Boolean型
    pDmaInteger32    plInteger32;     //Integer32型
    pDmaId           pId;             //ID型
    pDmapv           ppObject;        //Object型
    ppDmaString_T    ppString;        //String型
   } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

詳細

リレーション識別子を指定して，文書間リレーションのプロパティを設定するメソッドです。

引数

pRelId（入力）

プロパティを設定する文書間リレーションのリレーション識別子を指定します。

指定するリレーション識別子は，CreateRelationメソッドの引数ppRelIdで返却される値です。また，GetRelationListメソッドまたはGetRelationListAndLockメソッドを使用しても取得できます。

pRelPropList（入力）

設定するプロパティを格納したプロパティリスト構造体である，SDBR_PROPLIST構造体を指定します。このメソッドで値を設定できる文書間リレーションのプロパティは，ユーザ設定のプロパティだけです。

NULLを指定するとエラーになります。なお，SDBR_PROPLIST構造体に，同じプロパティ識別子を指定したSDBR_PROP構造体を複数指定した場合はエラーになります。

SDBR_PROPLIST構造体およびSDBR_PROP構造体に設定する内容については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_DATATYPE_MISMATCH | プロパティのデータ型に適切ではないメソッドです。 | 正しい型を指定してください。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrDocument::PutRenditionPropertyValuesメソッド

機能

レンディションのプロパティの設定

形式

DmaBoolean PutRenditionPropertyValues(
 pDmaString_T       pRenditionType,
 SDBR_PROPLIST*     pPropList )

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;       //Boolean型
    pDmaInteger32    plInteger32;     //Integer32型
    pDmaId           pId;             //ID型
    pDmapv           ppObject;        //Object型
    ppDmaString_T    ppString;        //String型
   } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

詳細

サブレンディションのプロパティを設定するメソッドです。

マルチレンディション文書のサブレンディションのプロパティ（RenditionType以外）を設定，変更する場合，このメソッドを使用します。

なお，RenditionTypeを変更する場合は，CdbrDocument::UpdateContentAndRenditionTypeメソッドを使用してください。

引数

pRenditionType（入力）

プロパティを設定するレンディションのRenditionTypeを表す文字列を指定します。この引数で指定したRenditionTypeが対象文書のレンディションとして存在しない場合はエラーになります。NULLを指定した場合，マスタレンディションが処理対象になります。空文字列（""）は指定できません。

pPropList（入力）

設定するプロパティを格納したプロパティリスト構造体である，SDBR_PROPLIST構造体を指定します。NULLを指定するとエラーになります。

なお，SDBR_PROPLIST構造体に，同じプロパティ識別子を指定したSDBR_PROP構造体を複数指定した場合はエラーになります。

指定できるプロパティ識別子を次に示します。

dbrProp_RetrievalName
RetrievalNameプロパティを設定する場合に指定します。

dbrProp_RenditionStatus
RenditionStatusプロパティを設定する場合に指定します。なお，RenditionStatusプロパティの値としてユーザが設定できるのは上位2バイトの変換フラグだけで，下位2バイトの状態フラグは設定できません。ユーザが設定できる変換フラグの値を次に示します。

DBR_RENDSTATUS_CONVERT_REQUIRED

レンディション変換機能の対象になる状態，つまり，レンディション変換機能によって，マスタレンディションの内容から，コンテントを自動更新できる状態です。DocumentBroker Rendering Optionが提供するコマンドを実行することで，コンテントが自動更新されます。サブレンディションのコンテント登録後にマスタレンディションを更新した場合のような，マスタレンディションとサブレンディションの内容が不一致のときに，レンディション変換機能を使ってサブレンディションを更新したい場合に指定します。ただし，レンディション変換機能を使うには，DocumentBroker Rendering Optionが必要です。

DBR_RENDSTATUS_CONVERT_NOTREQUIRED

レンディション変換機能の対象にならない状態です。DocumentBroker Rendering Optionが提供するコマンドを実行しても，コンテントは更新されません。

ただし，変換フラグの値の設定に関しては，メソッド実行時のRenditionStatusプロパティの値によって，次に示す制限があります。

メソッド実行時のRenditionStatusプロパティの値 | 変換フラグの値の設定に関する制限の内容
状態フラグがDBR_RENDSTATUS_NO_SUBRENDの場合 | DBR_RENDSTATUS_CONVERT_NOTREQUIREDを設定できません。
変換フラグがDBR_RENDSTATUS_CONVERT_ERRORの場合 | DBR_RENDSTATUS_CONVERT_REQUIREDまたはDBR_RENDSTATUS_CONVERT_NOTREQUIREDに変更できません。

SDBR_PROPLIST構造体およびSDBR_PROP構造体に設定する内容については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_NONEXISTS_RENDITION | 指定されたレンディションは存在しません。 | 正しいRenditionTypeを指定してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_DATATYPE_MISMATCH | プロパティのデータ型に適切ではないメソッドです。 | 正しい型を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrDocument::RemoveIndexメソッド

機能

全文検索インデクスの削除

形式

DmaBoolean     RemoveIndex()

詳細

CdbrDocumentオブジェクトに作成されている全文検索インデクスだけを削除します。インデクスが作成されていないCdbrDocumentオブジェクトに対してこのメソッドをコールした場合は，何もしないで正常終了します。ただし，全文検索機能付き文書クラスから作成されたDMAオブジェクトのDocVersionオブジェクトを構成要素としないCdbrDocumentオブジェクトに対してこのメソッドを実行した場合は，エラーになります。

CdbrDocumentオブジェクトに作成されている全文検索インデクスを削除する例を次に示します。

全文検索インデクスの削除の例

pDbrDoc->RemoveIndex();

引数

なし

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_CLASSID | 指定された識別子は，利用できるオブジェクトのクラスではありません。 | 正しいクラス識別子を指定してください。
ERR_DMA | DMARC_FAILED | 操作が失敗しました。 | 時間を置いて再度実行するか，処理を見直してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrDocument::RemoveRelationメソッド

機能

文書間リレーションの解除

形式

DmaBoolean RemoveRelation(
 DmaInteger32       lRelIdCount,
 ppDmaString_T      ppRelIds)

詳細

リレーションで結び付けられた文書間の関連づけを解除するメソッドです。

引数ppRelIdsのポインタ配列で指定された文書間のリレーションをすべて解除します。

リレーション識別子で示されるリレーション先のオブジェクトを削除しても，このメソッドで文書間リレーションを解除しないかぎり，リレーション情報は削除されないまま残ります。不要なリレーション情報を削除する場合にも，このメソッドをコールしてください。

引数

lRelIdCount（入力）

解除する文書間リレーションの個数を指定します。0以下の値を指定した場合はエラーになります。0より大きい値または次に示す値を指定してください。

DBR_RELATION_ALL
このオブジェクトがリレーション元である文書間リレーションをすべて解除します。

DBR_RELATION_END_NOT_EXIST
リレーション先のオブジェクトが削除されているリレーション情報をすべて削除します。

ppRelIds（入力）

解除する文書間リレーションのリレーション識別子のポインタ配列を指定します。配列の要素で示される文書間リレーションが解除（リレーション情報が削除）されます。

lRelIdCountが１以上の場合に，NULLを指定するとエラーになります。

指定するリレーション識別子は，CreateRelationメソッドの引数ppRelIdで返却される値です。また，GetRelationListメソッドまたはGetRelationListAndLockメソッドを使用しても取得できます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

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の場合，次のことに注意してください。

GetContentAndLockによるコンテントの取得時，大文字と小文字を区別しないと同一になるファイル名がある場合，先に取得したファイルが上書きされます。例えば，先に取得された「AAA.txt」は，あとから取得された「aaa.txt」によって上書きされます。

GetContentAndLockによるコンテントの取得時，ロングファイル名とショートファイル名の関係で同一のファイル名とみなされるファイルがある場合，先に取得したファイルが上書きされます。例えば，先に取得された「AAAAAAAAA.txt」は，あとから取得された「AAAAAA~1.txt」によって上書きされます。

シングルファイル文書の場合（マスタレンディションのファイルの更新）

シングルファイル文書（マルチレンディション文書の場合はマスタレンディションであるシングルファイル文書）を更新する場合は，更新に使用するファイルのパスと全文検索インデクスを作成するかどうかを指定します。

内容を更新するCdbrDocumentオブジェクト（マルチレンディション文書の場合はマスタレンディション）が次の条件に当てはまる場合に，lCreateIndexFlgにDBR_CREATE_INDEXを指定すると，全文検索インデクスを作成できます。

全文検索機能付き文書クラスを基に作成されたDocVersionオブジェクトを構成要素とするCdbrDocumentオブジェクトである。

RenditionTypeがテキスト型（MIME::text/で始まるMIME::text/plain，MIME::text/sgmlまたはMIME::text/html）である。

更新が正常に完了すると，パス名を除いたファイル名がRetrievalNameプロパティに設定されます。例えば，UNIXの場合に，ファイル"/tmp/sample.doc"で更新すると，"sample.doc"が設定されます。Windowsの場合に，ファイル"c:¥temp¥sample.doc"で更新すると，"sample.doc"が設定されます。

UNIXの場合に，文書に登録されたコンテントの内容をファイル"/tmp/sample.doc"で更新する例を次に示します。Windowsの場合は，ファイル"c:¥temp¥sample.doc"で更新する例として，例中の"file:///tmp/sample.doc"を"file:///c:¥temp¥sample.doc"と読み替えてください。

文書の内容（コンテント）を更新する例

pDbrDoc->UpdateContent("file:///tmp/sample.doc");

シングルファイル文書の場合（RenditionTypeを指定したファイルの更新）

マルチレンディション文書のサブレンディションであるシングルファイル文書を更新する場合は，更新に使用するファイルのパスのほかに，更新対象のサブレンディションをpRenditionTypeで指定します。なお，サブレンディションの内容を更新する場合，全文検索インデクスは作成できません。

マルチファイル文書の場合

マルチファイル文書を更新する場合は，更新に使用するコンテントの情報として，SDBR_PATHLIST構造体を指定します。

マルチファイル文書の場合，次のことに注意してください。

CdbrDocumentクラスに格納した複数のファイルを，SDBR_PATHINFO構造体に設定したファイルパスのファイルで，一括して更新します。SDBR_PATHINFO構造体は，引数PathListで指定するSDBR_PATHINFO構造体に設定します。なお，特定のコンテントだけを更新することはできません。また，更新後は，更新前のファイルは使用できません。

更新前のファイルを格納したBLOBのデータが書き換えられるため，BLOBのデータの長さは，更新後のファイルサイズの合計になります。

この形式のUpdateContentを，マルチファイル文書ではないバージョンなし文書に対して実行すると，ERR_NOT_MULTI_CONTENTSのエラーになります。

マルチファイル文書では，テキストファイルの部分が特定できないため，全文検索用インデクスは作成されません。全文検索インデクスを作成する場合，テキスト部分を抽出したファイルを，CreateIndexメソッドの引数に指定して実行してください。なお，マルチファイル文書の場合，CreateIndexメソッドの引数にNULLを指定するとERR_CONTENTTYPE_MISMATCHのエラーになります。

File Link文書の場合

File Link文書を更新する場合は，更新に使用するコンテントの情報として，SDBR_FILELINK_PATHINFO構造体を指定します。この構造体には，更新に使用するコンテントとして，ファイルまたはディレクトリを指定できます。ディレクトリを指定した場合，指定したディレクトリおよびそのサブディレクトリ下のすべてのファイルでコンテントを更新できます。また，すでにHiRDB File Linkで管理されているデータでコンテントを更新することもできます。

File Link文書の場合，次のことに注意してください。

このメソッドは，レンディションのコンテント種別がContentFileLinkオブジェクトの場合（dbrProp_ContentTypeプロパティの値がDBR_CONTENTTYPE_FILELINKの場合）にだけ有効です。そのほかのコンテント種別を持つレンディションに対して実行すると，ERR_CONTENTTYPE_MISMATCHのエラーになります。

このメソッドで，ERR_FILELINK_FAILEDのエラーが発生した場合は，詳細メッセージにHiRDB File Linkが出力するエラー情報が出力されます。HiRDB File Linkが出力するエラーを参照して，対処してください。

File Link文書では，全文検索用インデクスは作成されません。全文検索インデクスを作成する場合，テキスト部分を抽出したファイルを，CreateIndexメソッドの引数に指定して実行してください。なお，File Link文書の場合，CreateIndexメソッドの引数にNULLを指定すると，ERR_CONTENTTYPE_MISMATCHのエラーになります。

引数

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が指定されたものとして処理されます。

DBR_CREATE_INDEX
pFilePathに指定したパス名のファイルから全文検索インデクスが作成されます。

DBR_NOT_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
使用できるファイル転送サービスがありません。

ネットワーク環境を確認してください。

_HIEDMS_FTPMODE=STATICを指定してファイル転送サービスを起動しているかどうかを，確認してください。

時間を置いて，再度実行してください。

ファイル転送サービスのセットアップコマンドを実行しているかどうかを，確認してください。

CdbrDocument::UpdateContentAndRenditionTypeメソッド

機能

ファイルの更新およびRenditionTypeの変更

形式

// シングルファイル文書の場合
// （マスタレンディションのファイルの更新）
DmaBoolean UpdateContentAndRenditionType(
 const pDmaString_T      pFilePath,
 pDmaString_T            pRenditionType,
 DmaInteger32            lCreateIndexFlg = DBR_CREATE_INDEX)

// シングルファイル文書の場合
// （RenditionTypeを指定したファイルの更新）
DmaBoolean UpdateContentAndRenditionType(
 const pDmaString_T      pFilePath,
 pDmaString_T            pBeforeRenditionType,
 pDmaString_T            pAfterRenditionType,
 DmaInteger32            lCreateIndexFlg)

// リファレンスファイル文書の場合
DmaBoolean UpdateContentAndRenditionType(
 SDBR_REFERENCE_PATHINFO&  ReferencePath,
 pDmaString_T              pBeforeRenditionType,
 pDmaString_T              pAfterRenditionType)

// File Link文書の場合
DmaBoolean UpdateContentAndRenditionType(
 SDBR_FILELINK_PATHINFO&   FileLinkPath,
 pDmaString_T              pBeforeRenditionType,
 pDmaString_T              pAfterRenditionType)

// リファレンスパス情報構造体
struct SDBR_REFERENCE_PATHINFO {
 DmaInteger32  lContentOperateMode;    // 操作モード
 pDmaString_T  pEntry;                 // ファイルのパスおよびロケーション
 pDmaString_T  pTargetPath;            // コンテント格納先パス
 pDmaString_T  pDeleteRootPath;        // 削除ディレクトリのルートパス
};

// File Linkパス情報構造体
struct SDBR_FILELINK_PATHINFO {
 pDmaString_T pFilePath;           // 登録ファイルまたはディレクトリのURL
 pDmaString_T  pFamName;           // FAM名
 pDmaString_T  pFamFilePath;       // コンテント保管先パス
 DmaInteger32  lContentDeleteMode; // コンテント削除モード
 DmaInteger32  lFileNamingMode;    // コンテント名自動生成モード
};

詳細

登録されているCdbrDocumentオブジェクトの内容を，指定したパスのファイルで更新するメソッドです。更新するときには，RenditionTypeも変更できます。

シングルファイル文書の場合（マスタレンディションのファイルの更新）

シングルファイル文書（マルチレンディション文書の場合はマスタレンディションであるシングルファイル文書）を更新する場合は，更新に使用するファイルのパスと全文検索インデクスを作成するかどうかを指定できます。RenditionTypeを変更する場合は，pRenditionTypeに変更後のRenditionTypeを指定します。

内容を更新するCdbrDocumentオブジェクト（マルチレンディション文書の場合はマスタレンディション）が次の条件に当てはまる場合に，lCreateIndexFlgにDBR_CREATE_INDEXを指定すると，全文検索インデクスを作成できます。

全文検索機能付き文書クラスを基に作成されたDocVersionオブジェクトを構成要素とするCdbrDocumentオブジェクトである。

RenditionTypeがテキスト型（MIME::text/で始まるMIME::text/plain，MIME::text/sgmlまたはMIME::text/html）である。

更新が正常に完了すると，パス名を除いたファイル名がRetrievalNameプロパティに設定されます。例えば，UNIXの場合に，ファイル"/tmp/sample.doc"で更新すると，"sample.doc"が設定されます。Windowsの場合に，ファイル"c:¥temp¥sample.doc"で更新すると，"sample.doc"が設定されます。

UNIXの場合に，文書に登録されたコンテントの内容をファイル"/tmp/sample.html"で更新してRenditionTypeをhtml形式に変更する例を次に示します。Windowsの場合は，ファイル"c:¥temp¥sample.html"の内容で更新する例として，例中の"file:///tmp/sample.html"を"file:///c:¥temp¥sample.html"と読み替えてください。

文書の内容（コンテント）を更新してRenditionTypeを変更する例

pDbrDoc->UpdateContentAndRenditionType
 ("file:///tmp/sample.html","MIME::text/html");

シングルファイル文書の場合（RenditionTypeを指定したファイルの更新）

マルチレンディション文書のサブレンディションであるシングルファイル文書を更新する場合は，更新に使用するファイルのパスのほかに，更新対象のサブレンディションを引数pBeforeRenditionTypeで指定します。RenditionTypeを変更する場合は，引数pAfterRenditionTypeに変更後のRenditionTypeを指定します。なお，サブレンディションの内容を更新する場合，全文検索インデクスは作成できません。

リファレンスファイル文書の場合

リファレンスファイル文書を更新する場合は，更新に使用するコンテントの情報として，SDBR_REFERENCE_PATHINFO構造体を指定します。

リファレンスファイル文書の場合，次のことに注意してください。

このメソッドは，レンディションのコンテント種別がContentReferenceオブジェクトの場合（dbrProp_ContentTypeプロパティの値がDBR_CONTENTTYPE_REFERENCEの場合）にだけ有効となります。そのほかのコンテント種別を持つレンディションに対して実行すると，ERR_CONTENTTYPE_MISMATCHのエラーになります。

File Link文書の場合

File Link文書を更新する場合は，更新に使用するコンテントの情報として，SDBR_FILELINK_PATHINFO構造体を指定します。この構造体には，更新に使用するコンテントとして，ファイルまたはディレクトリを指定できます。ディレクトリを指定した場合，指定したディレクトリおよびそのサブディレクトリ下のすべてのファイルでコンテントを更新できます。また，すでにHiRDB File Linkで管理されているデータでコンテントを更新することもできます。

File Link文書の場合，次のことに注意してください。

このメソッドは，レンディションのコンテント種別がContentFileLinkオブジェクトの場合（dbrProp_ContentTypeプロパティの値がDBR_CONTENTTYPE_FILELINKの場合）にだけ有効です。そのほかのコンテント種別を持つレンディションに対して実行すると，ERR_CONTENTTYPE_MISMATCHのエラーになります。

このメソッドで，ERR_FILELINK_FAILEDのエラーが発生した場合は，詳細メッセージにHiRDB File Linkが出力するエラー情報が出力されます。HiRDB File Linkが出力するエラーを参照して，対処してください。

File Link文書では，全文検索用インデクスは作成されません。全文検索インデクスを作成する場合，テキスト部分を抽出したファイルを，CreateIndexメソッドの引数に指定して実行してください。なお，File Link文書の場合，CreateIndexメソッドの引数にNULLを指定するとERR_CONTENTTYPE_MISMATCHのエラーになります。

引数

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を表す文字列を指定します。例えばHTML文書の場合は，"MIME::text/html"などとします。NULLを指定した場合，RenditionTypeは変更されません。また，pFilePathに指定したファイルの拡張子からDocumentBrokerがRenditionTypeを決定することはありません。

なお，マルチレンディション文書（レンディションが複数ある文書）の場合，空文字列（""）は指定できません。

pBeforeRenditionType（入力）

RenditionTypeを指定してレンディションの内容を更新する場合，更新対象のレンディションのRenditionTypeを表す文字列を指定します。

この引数で指定したRenditionTypeが，対象文書のサブレンディションとして存在しない場合はエラーになります。

マスタレンディションの内容を更新する場合はNULLを指定するか，「マスタレンディションのファイルを更新する場合」の形式を使用することもできます。

pAfterRenditionType（入力）

RenditionTypeを指定してレンディションの内容を更新すると同時にそのRenditionTypeを変更する場合，変更後のRenditionTypeを表す文字列を指定します。

この引数で指定したRenditionTypeが，対象文書のサブレンディションとしてすでに登録されている場合はエラーになります。ただし，pBeforeRenditionType値とpAfterRenditionType値とが同一値であってもエラーになりません。NULLを指定した場合は，サブレンディションのRenditionTypeは変更されません。また，pFilePathまたはReferencePathのpEntryメンバに指定したファイルの拡張子からDocumentBrokerがRenditionTypeを決定することはありません。

なお，空文字列（""）は指定できません。

lCreateIndexFlg（入力）

全文検索インデクスを作成するかどうかを指定します。

次のどちらかを指定してください。この値を省略した場合は，DBR_CREATE_INDEXが指定されたものとして処理されます。

DBR_CREATE_INDEX
pFilePathに指定したパス名のファイルから全文検索インデクスが作成されます。

DBR_NOT_CREATE_INDEX
全文検索インデクスが作成されません。

なお，CdbrDocumentオブジェクトの構成要素が全文検索機能付きクラス以外から作成されたDocVersionオブジェクトである場合，およびファイルのRenditionTypeがテキスト型でない場合は，lCreateIndexFlgの値は無視されます。

また，マルチレンディション文書の場合，lCreateIndexFlgはマスタレンディションの内容を更新する場合だけ有効です。

ReferencePath（入力）

リファレンスファイル文書を更新するために必要な情報を格納した，SDBR_REFERENCE_PATHINFO構造体を指定します。

コンテントを持たないオブジェクトを更新する場合

SDBR_REFERENCE_PATHINFO構造体のメンバpTargetPathに，コンテント格納先パスを，コンテント格納先ベースパスを基点とした相対パスで指定します。ContentLocationプロパティに格納されるパスは，次のように条件によって異なります。

DocumentSpace構成定義ファイルのReferenceStorageModeエントリにOriginを指定した場合
ContentLocationプロパティには，pTargetPathで指定したコンテント格納先パス，DocumentBrokerがコンテントを管理するためのディレクトリ，およびpEntryで指定したファイル名が連結されて格納されます。

DocumentSpace構成定義ファイルのReferenceStorageModeエントリにDivideを指定した場合
ContentLocationプロパティには，文書登録時にpTargetPathで指定したコンテント格納先パス，DocumentBrokerがコンテントを管理するためのディレクトリ，DocumentBrokerが指定するファイル名が連結されて格納されます。

コンテントを持つオブジェクトを更新する場合

ContentLocationプロパティに格納されるパスは，次のように条件によって異なります。

DocumentSpace構成定義ファイルのReferenceStorageModeエントリにOriginを指定した場合
ContentLocationプロパティには，更新前のContentLocationプロパティのファイル名を除くパスに，SDBR_REFERENCE_PATHINFO構造体のメンバpEntryで指定したファイル名が連結されて格納されます。

DocumentSpace構成定義ファイルのReferenceStorageModeエントリにDivideを指定した場合
ContentLocationプロパティには，文書登録時にpTargetPathで指定したパス，DocumentBrokerがコンテントを管理するためのディレクトリ，DocumentBrokerが指定するファイル名が連結されて格納されます。

なお，次に示すことに注意してください。

DocumentSpace構成定義のReferenceStorageModeエントリにOriginを指定した場合
次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときに，コンテントを持たないオブジェクトにコンテントを登録すると，コンテントロケーションの指定でERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

pTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（35バイト）

pEntryで指定したファイル名

また，次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときに，コンテント登録済みのオブジェクトのコンテントを更新すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

文書登録時にpTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（35バイト）

pEntryで指定したファイル名

DocumentSpace構成定義のReferenceStorageModeエントリにDivideを指定した場合
次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときに，コンテントを持たないオブジェクトにコンテントを登録すると，コンテントロケーションの指定でERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

文書登録時にpTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（6バイト）

DocumentBrokerが指定するファイル名（最大59バイト）

また，次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときに，コンテント登録済みのオブジェクトのコンテントを更新すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

文書登録時にpTargetPathで指定したパス

DocumentBrokerがコンテントを管理するためのディレクトリ（6バイト）

DocumentBrokerが指定するファイル名（最大59バイト）

pTargetPathで指定するコンテント格納先パスの中に，カレントディレクトリの一つ上位のディレクトリを示す".."は指定できません。指定した場合，DMARC_BAD_PARAMETERのエラーになります。

リファレンスファイル文書を更新する場合，SDBR_REFERENCE_PATHINFO構造体のメンバpDeleteRootPathへの値の指定は，無効になります。

SDBR_REFERENCE_PATHINFO構造体に設定する内容については，「付録C.1(15)　SDBR_REFERENCE_PATHINFO構造体（リファレンスパス情報構造体）」を参照してください。

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
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_ACLIB_OBJECT_INVALID
クラスライブラリのオブジェクトは無効です。
有効なクラスライブラリのオブジェクトを指定してください。

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_FILE_REFERENCE_MISMATCH_STATUS
リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生し，オブジェクトとコンテントが不整合な状態となりました。
文書を削除したあと，更新後のコンテントを使用して文書を作成してください。

ERR_DBR
ERR_FILE_REFERENCE_OPERATION_FAILED
リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。
詳細メッセージを基に対処してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_NONEXISTS_RENDITION
指定されたRenditionTypeは存在しません。
RenditionTypeを見直してください。

ERR_DBR
ERR_OBJECT_NOT_CONNECT
オブジェクトは接続されていません。
オブジェクトを接続してください。

ERR_DBR
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドをコールしてから，このメソッドをコールしてください。

ERR_DBR
ERR_REFERENCETYPE_MISMATCH
オブジェクト種別が一致していません。
オブジェクト種別または指定した操作モード（lContentOperateMode）を見直してください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DBR
ERR_TARGETCONTENTPATH_NOT_SET
リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。
コンテント格納先ベースパスを設定してください。

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
使用できるファイル転送サービスがありません。

ネットワーク環境を確認してください。

_HIEDMS_FTPMODE=STATICを指定してファイル転送サービスを起動しているかどうかを，確認してください。

時間を置いて，再度実行してください。

ファイル転送サービスのセットアップコマンドを実行しているかどうかを，確認してください。

9.　CdbrEqlStatementクラス（edmSQL文を操作，実行するクラス）

検索機能として，edmSQLで記述したedmSQL文を操作，実行する機能を提供するクラスです。

＜この章の構成＞

CdbrEqlStatementクラスの詳細

CdbrEqlStatement::~CdbrEqlStatementメソッド

CdbrEqlStatement::CdbrEqlStatementメソッド

CdbrEqlStatement::ChangeACLModeメソッド

CdbrEqlStatement::ChangeGetObjCountメソッド

CdbrEqlStatement::ChangeLockTypeメソッド

CdbrEqlStatement::DeleteResultメソッド

CdbrEqlStatement::Executeメソッド

CdbrEqlStatement::GetACLModeメソッド

CdbrEqlStatement::GetResultメソッド

CdbrEqlStatement::Initializeメソッド

CdbrEqlStatement::Setメソッド

CdbrEqlStatement::SetObjParamメソッド

CdbrEqlStatement::SetOIIDParamメソッド

CdbrEqlStatement::SetParamメソッド

CdbrEqlStatement::Terminateメソッド

CdbrEqlStatementクラスの詳細

スーパークラス

プロパティ一覧

なし

メソッド一覧

CdbrCoreクラスから継承されるメソッド

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

これらのメソッドの詳細については，「6.　CdbrCoreクラス（エラー情報を取得するクラス）」を参照してください。

CdbrEqlStatementクラスで導入されるメソッド

メソッド | 機能
~CdbrEqlStatement | デストラクタ
CdbrEqlStatement | コンストラクタ
ChangeACLMode | アクセス制御モードの変更
ChangeGetObjCount | 検索結果の取得件数の変更
ChangeLockType | ロック種別の変更
DeleteResult | 検索結果の削除
Execute | 設定済みedmSQL文の実行
GetACLMode | アクセス制御モードの取得
GetResult | 検索結果の取得
Initialize | オブジェクトの初期化とセッションオブジェクトへの登録
Set | edmSQL文の設定
SetObjParam | edmSQL文の?パラメタ（DMAオブジェクト）の設定
SetOIIDParam | edmSQL文の?パラメタ（OIID）の設定
SetParam | edmSQL文の?パラメタの設定
Terminate | セッションオブジェクトへの登録抹消

以降，CdbrEqlStatementクラスで導入されるメソッドについて説明します。

CdbrEqlStatement::~CdbrEqlStatementメソッド

機能

デストラクタ

形式

~CdbrEqlStatement()

詳細

CdbrEqlStatementオブジェクトのデストラクタです。

CdbrEqlStatementオブジェクトを削除します。また，CdbrEqlStatementクラスで管理している情報も削除します。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrEqlStatement::CdbrEqlStatementメソッド

機能

コンストラクタ

形式

CdbrEqlStatement()

詳細

CdbrEqlStatementオブジェクトのコンストラクタです。

CdbrEqlStatementオブジェクトを生成します。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrEqlStatement::ChangeACLModeメソッド

機能

アクセス制御モードの変更

形式

DmaBoolean ChangeACLMode(
 DmaInteger32           lACLMode)

詳細

アクセス制御機能付きで検索（edmSQL文）を実行するかどうかを示すアクセス制御モードを変更するメソッドです。

このメソッドで変更したモードは，CdbrEqlStatement::Executeメソッドのコール時に有効になります。

CdbrEqlStatement::Initializeメソッドがコールされていない状態でこのメソッドをコールするとエラーになります。また，戻り値がDMA_FALSEの場合，設定したアクセス制御モードは保証できません。

なお，アクセス制御モードの設定は，文書空間でアクセス制御機能を使用している場合だけ有効になります。

引数

lACLMode（入力）

検索（edmSQL文）実行時のアクセス制御モードを指定します。

次のどちらかを指定してください。ただし，アクセス制御機能をサポートしていない文書空間の使用時にDBR_QUERY_WITH_ACLを指定した場合にはエラーになります。

DBR_QUERY_WITH_ACL
アクセス制御機能付き検索モードで実行します。このモードの場合，ユーザはアクセス権がないオブジェクトを検索結果として取得できません。

DBR_QUERY_WITHOUT_ACL
アクセス制御機能なし検索モードで実行します。このモードの場合，ユーザはアクセス権がないオブジェクトでも検索結果として取得できます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_DBR
ERR_ACCESSCONTROL_NOT_SUPPORTED
アクセス制御対応のデータベースを使用していません。
アクセス制御付き検索の実行モードを変更する場合は，アクセス制御対応のデータベースを使用してください。

ERR_DBR
ERR_EQL_NOT_INITIALIZE
初期化が実行されていません。
初期化を実行してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_NOT_SUPPORTED
このセッションまたはオブジェクトではサポートされていないメソッドです。
または，サポートされていないデータ型です。
この操作は実行できません。

ERR_DMA
DMARC_UNEXPECTED
予期しないエラーが発生しました。
処理を終了してください。

CdbrEqlStatement::ChangeGetObjCountメソッド

機能

検索結果の取得件数の変更

形式

DmaBoolean ChangeGetObjCount(
 DmaInteger32       lGetObjCount)

詳細

一度に取得する検索結果（edmSQL文の実行結果）の件数を変更するメソッドです。

このメソッドで変更した取得件数は，CdbrEqlStatement::Executeメソッドのコール時に有効になります。

CdbrEqlStatement::Initializeメソッドがコールされていない状態でこのメソッドをコールすると，エラーになります。また，戻り値がDMA_FALSEの場合，設定した取得件数は保証できません。

引数

lGetObjCount（入力）

一度のCdbrEqlStatement::GetResultメソッドのコールで取得する検索結果（edmSQL文の実行結果）の取得件数を指定します。0より大きい値か－1を指定してください。－1を指定した場合は，すべての実行結果が取得されます。－1より小さい値，または0を指定した場合にはエラーになります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DBR | ERR_EQL_NOT_INITIALIZE | 初期化が実行されていません。 | 初期化を実行してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。

CdbrEqlStatement::ChangeLockTypeメソッド

機能

ロック種別の変更

形式

DmaBoolean ChangeLockType(
 DmaInteger32       lLockType)

詳細

検索結果（edmSQL文の実行結果）として取得するオブジェクトに設定するロック種別を変更するメソッドです。

このメソッドで変更したロック種別は，CdbrEqlStatement::Executeメソッドのコール時に有効になります。

CdbrEqlStatement::Initializeメソッドがコールされていない状態でこのメソッドをコールすると，エラーになります。また，戻り値がDMA_FALSEの場合，設定したロック種別は保証できません。

引数

lLockType

検索結果（edmSQL文の実行結果）として取得したオブジェクトに設定するロックの種別を指定します。

次に示す値のどれかを指定してください。これら以外のロック種別を指定した場合にはエラーになります。

DBR_WITHOUT_LOCK
ロックを設定しません。

DBR_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。

DBR_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合，ほかのクライアントからreadロックおよびwriteロックを設定できません。

DBR_LOCK_READ_FOR_UPDATE
readロックを設定します。ただしこの場合は，検索結果として取得したオブジェクトを更新または削除できます。
このロックは，次に示すような理由でwriteロックを設定できない場合で，検索結果を分割して取得（CdbrEqlStatement::ChangeGetObjCountメソッドで結果取得件数に－1以外の値を指定し，かつ，CdbrEqlStatement::GetResultメソッドの第1引数bSearchContinueをDMA_TRUEにして実行）し，その取得したオブジェクトを更新または削除するようなときに指定します。

検索対象クラスを結合している

writeロックを設定したくない

注意

DBR_WITHOUT_LOCKを指定した場合，検索（edmSQL文）実行時にデータベースはロックされません。このため，取得した結果のオブジェクトを使用する段階で，すでにデータベースの内容が書き換えられている可能性があります。取得結果のオブジェクトとデータベースのデータの整合性を確保したい場合は，ロックタイプを指定し，明示的にロックを設定するようにしてください。

DBR_LOCK_READ_FOR_UPDATEを指定した場合には，データベース内に作業表（検索結果の整合性を更新作業から守るために検索結果を一時的にコピーしておく作業領域）が作成されます。このため，DBR_LOCK_READを指定した場合より処理速度が遅くなる可能性があります。したがって，このロックタイプは，検索対象クラスを結合していて，かつ，取得した結果のオブジェクトを更新または削除する場合に限って使用するようにしてください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DBR | ERR_EQL_NOT_INITIALIZE | 初期化が実行されていません。 | 初期化を実行してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。

CdbrEqlStatement::DeleteResultメソッド

機能

検索結果の削除

形式

DmaBoolean DeleteResult()

詳細

保持している検索結果（edmSQL文の実行結果）を削除するメソッドです。

CdbrEqlStatement::Initializeメソッドがコールされていない状態でこのメソッドをコールすると，エラーになります。CdbrEqlStatement::Initializeメソッドをコールしたあとであれば，検索結果（edmSQL文の実行結果）が存在しない状態でこのメソッドをコールしてもエラーにはなりません。何もせずに正常終了します。

戻り値がDMA_FALSEの場合，検索結果（edmSQL文の実行結果）は正常に削除できていません。

引数

なし

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_EQL_NOT_INITIALIZE | 初期化が実行されていません。 | 初期化を実行してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrEqlStatement::Executeメソッド

機能

設定済みedmSQL文の実行

形式

DmaBoolean Execute (
 ppDmaString_T     ppParseMessage = NULL)

詳細

検索（edmSQL文）を実行するメソッドです。CdbrEqlStatement::Setメソッドで登録されているedmSQL文に，CdbrEqlStatement::SetObjParamメソッド，CdbrEqlStatement::SetOIIDParamメソッドまたはCdbrEqlStatement::SetParamメソッドで設定された?パラメタの値を設定してSQL文を生成し，実行します。

edmSQL文が正常に実行できた場合，CdbrEqlStatement::Initializeメソッドの初期値（デフォルト値は－1で全件取得するという意味）またはCdbrEqlStatement::ChangeGetObjCountメソッドで設定される件数分の検索結果を取得して，クライアントに保持します。ただし，この時点では検索結果をクライアントに保持するだけ※なので，その取得にはCdbrEqlStatement::GetResultメソッドを使用してください。

注※

このような処理をするのは，CdbrEqlStatement::GetResultメソッドの1回目のコール時に，サーバと通信しなくても結果を取得できるようにするためです（通信によるオーバヘッドを１回分削減できる）。2回目以降（結果の継続取得時）はサーバと通信して，結果を取得します。

次に示すメソッドがコールされていない状態でこのメソッドをコールした場合は，エラーになります。

CdbrEqlStatement::Initializeメソッド

CdbrEqlStatement::Setメソッド

戻り値がDMA_FALSEの場合，検索（edmSQL文）実行後の内容は保証できません。

edmSQL文中の?パラメタに関する注意

edmSQL文中に?パラメタが存在する場合，CdbrEqlStatement::SetObjParamメソッド，CdbrEqlStatement::SetOIIDParamメソッドまたはCdbrEqlStatement::SetParamメソッドで設定された値でSQL文を実行しますが，edmSQL文中の?パラメタと設定された?パラメタの情報に不整合がある場合の動作を次に示します。

edmSQL文中の?パラメタの値が未設定の場合
NULLを仮定して動作します。

edmSQL文中の?パラメタの個数より大きいインデクス（出現順）で値が設定されている場合
エラーになり，major_codeとしてERR_DMA，minor_codeとしてEDMRC_QPARAM_INDEX_OUT_OF_RANGEが返却されます。

指定できるデータ型以外の値が設定されている場合
エラーになり，major_codeとしてERR_DMA，minor_codeとしてEDMRC_QPARAM_BAD_VALUEが返却されます。

edmSQL文のエラーチェックについて

構文解析中にedmSQL文のエラーを検出した場合には，major_codeとしてERR_DBR，minor_codeとしてERR_EQL_BAD_STATEMENTが返却され，edmSQL文の構文解析の実行結果メッセージがppParseMessageに設定されます。ただし，ppParseMessageが指定されていない（省略したまたはNULLを指定した）場合は，メッセージは設定されません。ppParseMessageが指定されていて，構文解析が正常に終了した場合にはNULLが設定されます。なお，ppParseMessageがポイントするメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

構文にエラーがあった場合の対処については，マニュアル「DocumentBroker Version 3　クラスライブラリ　C++　解説」の「4.　オブジェクトの検索」を参照してください。

edmSQLのキャッシュ機能について

一度実行したedmSQL文の構文解析の実行結果は，キャッシュされます。そして，次に実行するedmSQL文と照合され，すでにキャッシュされている情報と同内容であると，解析済みの情報が再利用されます。このため，一度構文解析したedmSQL文を再度，構文解析するときには処理が高速になります。キャッシュされた情報は，同一のセッション内で保持されます。

edmSQLの制限について

「dbrProp_」で始まるクラスライブラリ固有のプロパティは，edmSQL文に指定できません。また，Binary型，Float型，DataTime型のデータに関する処理は未サポートです。このようなedmSQLの制限については，マニュアル「DocumentBroker Version 3　クラスライブラリ　C++　解説」の「4.　オブジェクトの検索」を参照してください。また，最終的に実行されるSQLのバイト長制限など，実行可能なSQL文については，データベースの仕様に従います。データベース仕様の詳細については，マニュアル「HiRDB　SQLリファレンス」を参照してください。

アクセス制御機能に関する注意

アクセス制御機能を利用するかどうかは，設定されているアクセス制御モードに従います。

アクセス制御機能付き検索モードで実行する場合，アクセス制御に必要な情報が，内部的に検索条件のSELECT句に追加されます。このため，取得できるプロパティ数は，アクセス制御機能なし検索を実行する場合よりも少なくなります。

オブジェクトを削除するメソッドと同時に実行する場合の注意

RemoveObjectメソッドやDeleteVersionメソッドなどのオブジェクトを削除するメソッドと同時に実行する場合，次の点に注意してください。

オブジェクトを削除するメソッドを実行してそのトランザクションが完了する前に，削除したオブジェクトに対しこのメソッドを実行すると，major_codeとしてERR_DMA，minor_codeとしてDMARC_NOT_FOUNDが返却されます。

引数

ppParseMessage

edmSQL文の構文解析の実行結果メッセージを格納する領域へのアドレスを指定します。

アドレスが指定されていない場合（NULLを指定した場合）には，構文解析でedmSQL文のエラーが検出されてもメッセージは設定されません。

省略した場合にはNULLを指定したときと同じ動作をします。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_EQL_BAD_STATEMENT
不正なedmSQL文を実行しようとしました。
edmSQL文を見直してください。必要に応じて構文解析結果情報を取得してください。

ERR_DBR
ERR_EQL_NOT_INITIALIZE
初期化が実行されていません。
初期化を実行してください。

ERR_DBR
ERR_EQL_STATEMENT_NOT_SET
実行するedmSQL文が登録されていません。
CdbrEqlStatement::Setメソッドで実行するedmSQL文を登録してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NOT_SUPPORTED
このセッションまたはオブジェクトではサポートされていないメソッドです。
または，サポートされていないデータ型です。
この操作は実行できません。

ERR_DMA
DMARC_TIMEOUT
制限時間を超過しました。
タイムアウトしました。

ERR_DMA
DMARC_UNEXPECTED
予期しないエラーが発生しました。
処理を終了してください。

ERR_DMA
EDMRC_NOT_INTRANSACTION
トランザクション外でメソッドが呼ばれました。
Beginメソッドの呼び出し後に，この操作を実行してください。

ERR_DMA
EDMRC_QPARAM_BAD_VALUE
?パラメタの設定で指定した値が，不正である可能性があります。
設定した?パラメタの値，データ型を見直してください。

ERR_DMA
EDMRC_QPARAM_INDEX_OUT_OF_RANGE
?パラメタの設定で指定した値の個数を超える出現順序が指定されています。
?パラメタの設定を見直して，正しい出現順序を指定してください。

CdbrEqlStatement::GetACLModeメソッド

機能

アクセス制御モードの取得

形式

DmaBoolean GetACLMode(
 pDmaInteger32          plACLMode)

詳細

アクセス制御機能付きで検索（edmSQL文）を実行するかどうかを示すアクセス制御モードを取得するメソッドです。

このメソッドで取得するモードは，CdbrEqlStatement::Executeメソッド実行時に確定したモード（実際に動作しているモード）です。CdbrEqlStatement::Executeメソッド実行前にCdbrEqlStatement::ChangeACLModeメソッドで指定したモードは返却されないので注意してください。

なお，一度もCdbrEqlStatement::Executeメソッドを実行していない状態でこのメソッドを実行した場合，DBR_QUERY_WITHOUT_ACLが返却されます。CdbrEqlStatement::Initializeメソッドがコールされていない状態でこのメソッドをコールすると，エラーになります。また，アクセス制御機能を使用していない文書空間に接続しているときにこのメソッドをコールするとエラーになります。

戻り値がDMA_FALSEの場合は，取得したアクセス制御モードは保証できません。

引数

plACLMode（出力）

取得したアクセス制御モードが設定されます。モードが設定される領域を指定してください。領域が指定されていない場合（NULLである場合）にはエラーになります。

次のどちらかが設定されます。

DBR_QUERY_WITH_ACL
アクセス制御機能付きで検索（edmSQL文）を実行するモードが設定されていることを示します。

DBR_QUERY_WITHOUT_ACL
アクセス制御機能なしで検索（edmSQL文）を実行するモードが設定されていることを示します。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御対応のデータベースを使用していません。 | アクセス制御付き検索の実行モードを変更する場合は，アクセス制御対応のデータベースを使用してください。
ERR_DBR | ERR_EQL_NOT_INITIALIZE | 初期化が実行されていません。 | 初期化を実行してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。

CdbrEqlStatement::GetResultメソッド

機能

検索結果の取得

形式

DmaBoolean GetResult(
 DmaBoolean              bSearchContinue,
 pDmaInteger32           plSearchCount,
 SDBR_QUERYRESULT**      ppQueryResult)

 struct SDBR_PROPERTIES {
   DmaInteger32          lType;           //データ型
   DmaInteger32          lCardinality;    //基本単位
   DmaInteger32          lCount;          //プロパティ値の個数
   union {                                //プロパティ値を
                                          //　格納する共用体
     pDmaBoolean         pbBoolean;       //Boolean
     pDmaId              pId;             //ID
     pDmaInteger32       plInteger;       //Integer
     pDmapv              pplObject;       //Object
     ppDmaString_T       ppString;        //String
   } uValue;
 };

// 検索結果構造体
 struct SDBR_QUERYRESULT {
   DmaInteger32          lPropCount;     //プロパティ個数
   SDBR_PROPERTIES*      pProperties;    //プロパティ情報
 };

詳細

直前に実行したCdbrEqlStatement::Executeメソッドで得られた検索結果（edmSQL文の実行結果）を取得するメソッドです。

取得できたデータの件数はplSearchCountに，データを格納した検索結果構造体の配列のポインタ値はppQueryResultに，それぞれ設定されます。

検索結果データを格納するための構造体のメモリは，このメソッド内で確保されます。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，このメソッドをコールするたびにメモリは確保されるので，コールするごとにメモリを解放する必要があります。

検索結果が0件の場合には，検索結果データの構造体はNULLです。ただし，途中でエラーが発生した場合には，実行結果データの構造体のアドレスはユーザが指定した値のままで，NULLは設定されません。

SDBR_QUERYRESULT構造体のメンバであるSDBR_PROPERTIES構造体のuValue（プロパティ値を格納する共用体）には，Boolean型・ID型・Integer型・Object型・String型の値が格納されます。

検索結果が可変長配列の場合は，CdbrVariableArrayクラスのオブジェクト（Object型）が格納されます。このときlTypeにはデータ型としてDMA_DATATYPE_OBJECTが，lCardinalityには基本単位としてEDM_DMA_CARDINALITY_VARRAYが格納されます。

戻り値がDMA_FALSEの場合，ppQueryResultのポインタ値およびそのポインタ値が示す検索結果データの構造体の内容は保証できません。

なお，アクセス制御機能付きで検索（edmSQL文）を実行した場合は，検索結果集合のうち，アクセス権がある検索結果だけが取得できます。

次に示すメソッドがコールされていない状態でこのメソッドをコールした場合は，エラーになります。

CdbrEqlStatement::Initializeメソッド

CdbrEqlStatement::Executeメソッド

引数

bSearchContinue（入力）

検索結果の取得方法を指定します。次に示す値のどちらかを指定してください。ただし，検索実行後，初めて検索結果を取得する場合は，どちらの値を指定しても検索結果の先頭から取得されます。

DMA_FALSE
検索結果の先頭から取得します。

DMA_TRUE
前回取得した検索結果の次の検索結果から取得します。

plSearchCount（出力）

実際に取得した検索結果の件数が設定されます。件数が設定される領域を指定してください。この値が，CdbrEqlStatement::ChangeGetObjCountメソッドで設定した取得件数よりも小さい場合は，その値を超える検索結果は存在しません。つまり，検索結果の最終行の取り出しが終了しています。

件数が設定される領域が指定されていない場合（NULLを指定した場合）はエラーになります。

ppQueryResult（出力）

検索結果を格納する検索結果構造体である，SDBR_QUERYRESULT構造体へのポインタが設定されます。SDBR_QUERYRESULT構造体およびそのプロパティ情報が設定されるSDBR_PROPERTIES構造体については，「付録C.2(1)　検索結果として取得する構造体」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_EQL_NOT_INITIALIZE | 初期化が実行されていません。 | 初期化を実行してください。
ERR_DBR | ERR_EQL_STATEMENT_NOT_EXEC | edmSQL文が実行されていません。 | CdbrEqlStatement::Executeメソッドを実行し，edmSQL文を実行してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrEqlStatement::Initializeメソッド

機能

オブジェクトの初期化とセッションオブジェクトへの登録

形式

DmaBoolean Initialize(
 CdbrSession*  pDbrSession)

詳細

CdbrEqlStatementクラスを初期化処理し，CdbrSessionオブジェクトとの関連づけをするメソッドです。

初期化処理の内容を次に示します。

クラスの要素 | 初期値 | 内容
ロック種別 | DBR_WITHOUT_LOCK | ロックを設定しない
検索結果の取得件数 | -1 | 全行取得
アクセス制御モード | 接続した文書空間に依存したモード | アクセス制御機能をサポートしている文書空間の場合にはDBR_QUERY_WITH_ACL，サポートしていない文書空間の場合にはDBR_QUERY_WITHOUT_ACL

戻り値がDMA_FALSEの場合，クラスの初期化は正常に終了していません。

引数

pDbrSession（入力）

CdbrSessionオブジェクトを指定します。CdbrSessionオブジェクトが指定されていない場合（NULLを指定した場合）はエラーになります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DBR | ERR_EQL_ALREADY_INITIALIZED | すでに初期化されています。 | この操作は実行できません。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。

CdbrEqlStatement::Setメソッド

機能

edmSQL文の設定

形式

DmaBoolean Set (
 pDmaString_T       pEqlStatement)

詳細

実行予定のedmSQL文を設定するメソッドです。

このメソッドで設定したedmSQL文は，CdbrEqlStatement::Executeメソッドのコール時に有効になります。

なお，このメソッドでは設定されたedmSQL文のチェックはしません。このメソッドは実行予定のedmSQL文を設定するだけです。edmSQL文のチェックはCdbrEqlStatement::Executeメソッドで実施されます。したがって，edmSQL文の構文に関するエラーはCdbrEqlStatement::Executeメソッドで返却されます。

CdbrEqlStatement::Initializeメソッドがコールされていない状態でこのメソッドをコールした場合は，エラーになります。

戻り値がDMA_FALSEの場合，設定されたedmSQL文は保証できません。

edmSQL文の仕様と文法については，マニュアル「DocumentBroker Version 3　クラスライブラリ　C++　解説」の「4.　オブジェクトの検索」を参照してください。

引数

pEqlStatement（入力）

実行予定のedmSQL文を指定します。edmSQL文が指定されていない場合（NULLを指定した場合）はエラーになります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DBR | ERR_EQL_NOT_INITIALIZE | 初期化が実行されていません。 | 初期化を実行してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrEqlStatement::SetObjParamメソッド

機能

edmSQL文の?パラメタ（DMAオブジェクト）の設定

形式

DmaBoolean SetObjParam (
 DmaInteger32      lParamIndex,
 pDmaString_T      pOIID)

詳細

edmSQL文中の?パラメタにDMAオブジェクトを設定するメソッドです。なお，DMAオブジェクトは直接指定できないため，オブジェクトの識別子であるOIIDを指定します。

このメソッドで設定した?パラメタの値（DMAオブジェクト）は，CdbrEqlStatement::Executeメソッドのコール時に有効になります。?パラメタが存在しないedmSQL文，または?パラメタにDMAオブジェクトを設定しないedmSQL文を実行する場合は，このメソッドをコールする必要はありません。

?パラメタの値（DMAオブジェクト）は，最後に設定した値が有効になります。設定し直していない?パラメタの値は有効なままです。ただし，CdbrEqlStatement::Setメソッドがコールされた場合には，すでに設定されている?パラメタのすべての値が無効になります。つまり，CdbrEqlStatement::Setメソッドで設定したedmSQL文の，すべての?パラメタについて値を設定し直す必要があります。

なお，?パラメタにOIIDを設定する場合にはCdbrEqlStatement::SetOIIDParamメソッドを使用し，OIIDでもDMAオブジェクトでもない値を設定する場合にはCdbrEqlStatement::SetParamメソッドを使用してください。

CdbrEqlStatement::Initializeメソッドがコールされていない状態でこのメソッドをコールした場合は，エラーになります。

戻り値がDMA_FALSEの場合，設定された?パラメタの値（DMAオブジェクト）は保証できません。

引数

lParamIndex（入力）

edmSQL文中のDMAオブジェクトを設定する?パラメタの出現順序を指定します。

1～（edmSQL文中の?パラメタの数）の範囲で指定してください。0以下の値を指定した場合には，エラーになります。0より大きい値で範囲外の値を指定した場合は，CdbrEqlStatement::Executeメソッドのコール時にエラーになります。

また，同一の?パラメタに対して，複数回，値を設定した場合には，最後に設定した値が有効になります。

pOIID（入力）

edmSQL文中の?パラメタに設定する値を指定します。DMAオブジェクトのOIIDを指定してください。

指定した値がOIIDでない場合およびNULLの場合にはエラーになります。OIIDかどうかは，次に示す観点からチェックされます。

指定された文字列が「dma:///」で始まっているかどうか

指定された文字列長が正しい（133バイト）かどうか

指定した値が，構文不正な値となる場合は，CdbrEqlStatement::Executeメソッドのコール時にエラーになります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DBR | ERR_EQL_NOT_INITIALIZE | 初期化が実行されていません。 | 初期化を実行してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrEqlStatement::SetOIIDParamメソッド

機能

edmSQL文の?パラメタ（OIID）の設定

形式

DmaBoolean SetOIIDParam (
 DmaInteger32       lParamIndex,
 pDmaString_T       pOIID)

詳細

edmSQL文中の?パラメタにOIIDを設定するメソッドです。

このメソッドで設定した?パラメタの値（OIID）は，CdbrEqlStatement::Executeメソッドのコール時に有効になります。?パラメタが存在しないedmSQL文，または?パラメタにOIIDを設定しないedmSQL文を実行する場合は，このメソッドをコールする必要はありません。

設定した?パラメタの値（OIID）は，最後に設定した値が有効になります。設定し直していない?パラメタの値は有効なままです。ただし，CdbrEqlStatement::Setメソッドがコールされた場合には，すでに設定されている?パラメタのすべての値が無効になります。つまり，CdbrEqlStatement::Setメソッドで設定したedmSQL文の，すべての?パラメタについて値を設定し直す必要があります。

なお，?パラメタにDMAオブジェクトを設定する場合にはCdbrEqlStatement::SetObjParamメソッドを使用し，OIIDでもDMAオブジェクトでもない値を設定する場合にはCdbrEqlStatement::SetParamメソッドを使用してください。

CdbrEqlStatement::Initializeメソッドがコールされていない状態でこのメソッドをコールした場合は，エラーになります。

戻り値がDMA_FALSEの場合，設定された?パラメタの値（OIID）は保証できません。

引数

lParamIndex（入力）

edmSQL文中のOIIDを設定する?パラメタの出現順序を指定します。

1～（edmSQL文中の?パラメタの数）の範囲で指定してください。0以下の値を指定した場合には，エラーになります。0より大きい値で範囲外の値を指定した場合は，CdbrEqlStatement::Executeメソッドのコール時にエラーになります。

また，同一の?パラメタに対して，複数回，値を設定した場合には，最後に設定した値が有効になります。

pOIID（入力）

edmSQL文中の?パラメタに設定する値を指定します。OIIDを指定してください。

指定した値がOIIDでない場合およびNULLの場合にはエラーになります。OIIDかどうかは，次に示す観点からチェックされます。

指定された文字列が「dma:///」で始まっているかどうか

指定された文字列長が正しい（133バイト）かどうか

指定した値が，構文不正な値となる場合は，CdbrEqlStatement::Executeメソッドのコール時にエラーになります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DBR | ERR_EQL_NOT_INITIALIZE | 初期化が実行されていません。 | 初期化を実行してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrEqlStatement::SetParamメソッド

機能

edmSQL文の?パラメタの設定

形式

// Boolean型の値を設定する場合
DmaBoolean SetParam (
 DmaInteger32     lParamIndex,
 DmaBoolean       bParam)

// Integer32型の値を設定する場合
DmaBoolean SetParam (
 DmaInteger32     lParamIndex,
 DmaInteger32     lParam)

// String型の値を設定する場合
DmaBoolean SetParam (
 DmaInteger32     lParamIndex,
 pDmaString_T     pParam)

// BinaryValue型の値を設定する場合
DmaBoolean SetParam (
 DmaInteger32     lParamIndex,
 DmaBinaryValue*  pbvParamParam)

struct DmaBinaryValue{
 DmaUInteger32    cbBytes;
 pDmaBinary       pbBytes;
};

詳細

edmSQL文中の?パラメタの値を設定するメソッドです。

このメソッドで設定できる値を次に示します。

Boolean型の定数

Integer型の定数

String型の定数

BinaryValue型の定数

このメソッドで設定した?パラメタの値は，CdbrEqlStatement::Executeメソッドのコール時に有効になります。?パラメタが存在しないedmSQL文を実行する場合は，このメソッドをコールする必要はありません。

?パラメタの値は，最後に設定した値が有効になります。設定し直していない?パラメタの値は有効なままです。ただし，CdbrEqlStatement::Setメソッドがコールされた場合には，すでに設定されている?パラメタのすべての値が無効になります。つまり，CdbrEqlStatement::Setメソッドで設定したedmSQL文の，すべての?パラメタについて値を設定し直す必要があります。

なお，?パラメタにOIIDを設定する場合にはCdbrEqlStatement::SetOIIDParamメソッドを使用し，DMAオブジェクトを設定する場合にはCdbrEqlStatement::SetObjParamメソッドを使用してください。

CdbrEqlStatement::Initializeメソッドがコールされていない状態でこのメソッドをコールした場合は，エラーになります。

戻り値がDMA_FALSEの場合，設定された?パラメタの値は保証できません。

edmSQL文中の?パラメタにBinaryValue型の値を設定する例を次に示します。

BinaryValue型の値を設定する例

//// 実行するedmSQL文をセット
brc = cEql->Set( (pDmaString_T)
  "Select score_concept(edmProp_ConceptStIndex)"
  " From usrClass_ContentSearchDV"
  " Where concept_with_score"
   "( edmProp_ConceptStIndex, ? AS BINARY(5M)) IS TRUE" );
if ( DMA_TRUE != brc ) {
  //エラー処理
}
//？パラメタをセット（？：{"この文字列を検索します"}）
DmaBinaryValue pbvBinary;
char sCondition[1024];
strcpy(sCondition, "{¥"この文字列を検索します¥"}");
pbvBinary.cbBytes =
     (DmaUInteger32)sizeof("{¥"この文字列を検索します¥"}");
pbvBinary.pbBytes = (pDmaBinary)sCondition;
brc = cEql.SetParam(1, &pbvBinary);
if ( DMA_TRUE != brc ) {
  //エラー処理
}
//// edmSQL文の実行
brc = cEql->Execute();
if ( DMA_TRUE != brc ) {
  //エラー処理
}

引数

lParamIndex（入力）

edmSQL文中の?パラメタの出現順序を指定します。

1～（edmSQL文中の?パラメタの数）の範囲で指定してください。0以下の値を指定した場合には，エラーになります。0より大きい値で範囲外の値を指定した場合は，CdbrEqlStatement::Executeメソッドのコール時にエラーになります。

また，同一の?パラメタに対して，複数回，値を設定した場合には，最後に設定した値が有効になります。

bParam，lParam，pParam，pbvParamParam（入力）

edmSQL文中の?パラメタに設定する値を指定します。

指定した値の型と要素の型が一致しないなどで構文不正となる場合には，CdbrEqlStatement::Executeメソッドのコール時にエラーになります。

なお，このメソッドでは，この引数で指定された値が妥当かどうかのチェックはしません。ただし，String型の値を設定するときに値としてNULLを指定した場合は，エラーになります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DBR | ERR_EQL_NOT_INITIALIZE | 初期化が実行されていません。 | 初期化を実行してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrEqlStatement::Terminateメソッド

機能

セッションオブジェクトへの登録抹消

形式

Terminate()

詳細

CdbrEqlStatementクラスの終了処理をするメソッドです。CdbrEqlStatementオブジェクトで管理している情報を削除し，CdbrSessionオブジェクトとCdbrEqlStatementオブジェクトとの関連を切り離します。したがって，このメソッドをコールしたあとは，CdbrEqlStatement::Initializeメソッドをコールし，CdbrSessionオブジェクトとの関連づけをしないと，CdbrEqlStatementクラスのそのほかのメソッドが使用できなくなります。

CdbrEqlStatement::Initializeメソッドがコールされていない状態でこのメソッドをコールした場合は，エラーになります。

戻り値がDMA_FALSEの場合，CdbrSessionオブジェクトへの登録抹消処理は保証できません。

引数

なし

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_EQL_NOT_INITIALIZE | 初期化が実行されていません。 | 初期化を実行してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

10.　CdbrIndependentPersistenceクラス（独立データを扱うクラス）

独立したデータを扱う機能を提供するクラスです。

＜この章の構成＞

CdbrIndependentPersistenceクラスの詳細

CdbrIndependentPersistence::~CdbrIndependentPersistenceメソッド

CdbrIndependentPersistence::BindPublicACLメソッド

CdbrIndependentPersistence::CdbrIndependentPersistenceメソッド

CdbrIndependentPersistence::CreateObjectメソッド

CdbrIndependentPersistence::GetPublicACLListメソッド

CdbrIndependentPersistence::GetPublicACLListAndLockメソッド

CdbrIndependentPersistence::UnbindPublicACLメソッド

CdbrIndependentPersistenceクラスの詳細

スーパークラス

プロパティ一覧

プロパティの一覧を次に示します。

表10-1　CdbrIndependentPersistenceクラスのプロパティ

プロパティ名 | プロパティ識別子 | データ型 | 読み取り専用
OIID | dmaProp_OIID | String型 | ○

アクセス制御機能を使用している場合は，次のクラスライブラリの固有のプロパティが追加されます。

表10-2　CdbrIndependentPersistenceクラスのプロパティ（アクセス制御機能を使用する場合に追加されるクラスライブラリ固有のプロパティ）

プロパティ名
プロパティ識別子
データ型※¹
読み取り専用

OwnerId
dbrProp_OwnerId
String型
－※²

UserPermission
dbrProp_UserPermission
Integer32型
○

PrimaryGroupId
dbrProp_PrimaryGroupId
String型
－※³

ACL
dbrProp_ACL
Object型
（VariableArray型）
－※³

SACL
dbrProp_SACL
Object型
（VariableArray型）
－※²

OwnerPermission
dbrProp_OwnerPermission
Integer32型
－※³

PrimaryGroupPermission
dbrProp_PrimaryGroupPermission
Integer32型
－※³

EveryonePermission
dbrProp_EveryonePermission
Integer32型
－※³

PublicACLCount
dbrProp_PublicACLCount
Integer32型
○

PublicACLIds
dbrProp_PublicACLIds
Object型
（VariableArray型）
－※³

注※1

基本単位がScalar型以外の場合は，（　）に基本単位を示します。

注※2

変更は，そのオブジェクトの所有者およびセキュリティ管理者だけが実行できます。

注※3

変更は，そのオブジェクトの所有者，セキュリティACLでアクセス制御情報変更権を与えられたユーザおよびセキュリティ管理者だけが実行できます。

プロパティ詳細

DMAで規定されているプロパティ

OIID
オブジェクトを識別するGUID文字列です。実体はDMAオブジェクトのOIIDです。

CdbrDMAクラスから継承されるプロパティ（アクセス制御機能を使用する場合）

OwnerId

UserPermission

これらのプロパティの詳細については，「CdbrDMAクラスの詳細」のプロパティ詳細を参照してください。

CdbrIndependentPersistenceクラスで導入されるプロパティ（アクセス制御機能を使用する場合）

PrimaryGroupId
プライマリグループのグループ識別子を表します。

ACL
オブジェクトのローカルACLを表します。

SACL
オブジェクトのセキュリティACLを表します。

OwnerPermission
ACFlagのうち，所有者のパーミッションを表します。

PrimaryGroupPermission
ACFlagのうち，プライマリグループのパーミッションを表します。

EveryonePermission
ACFlagのうち，全ユーザのパーミッションを表します。

PublicACLCount
オブジェクトがバインドしているパブリックACLの数を表します。

PublicACLIds
オブジェクトがバインドしているパブリックACLのOIIDのリストを表します。
パブリックACLのOIIDのリストは，OIIDを構成要素としたVariableArray型プロパティとして作成します。まず，CdbrCompoundクラスのメソッドを使用して，バインドするパブリックACLのOIIDをCdbrCompoundクラスのオブジェクトのdbrProp_ACLIdElemプロパティに設定します。これを，CdbrVariableArrayクラスのメソッドを使用してVariableArray型プロパティの構成要素とします。このプロパティの値をSDBR_PROP構造体に設定してから，バインドするオブジェクトのCreateObjectメソッドやPutPropertyValuesメソッドの引数に指定してメソッドをコールします。これによって，パブリックACLはオブジェクトにバインドできます。
なお，すでにパブリックACLをバインドしているオブジェクトに対してパブリックACLを追加したい場合は，BindPublicACLメソッドを使用してください。

なお，CdbrIndependentPersistenceクラスでは，構成要素であるDMAオブジェクトを作成する基になるDMAのクラスのedmClass_IndependentPersistenceクラスおよびサブクラスのプロパティを参照，設定できます。DMAのクラスのプロパティについては，「付録B　DMAオブジェクトのプロパティ」を参照してください。

メソッド一覧

CdbrCoreクラスから継承されるメソッド

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

これらのメソッドの詳細については，「6.　CdbrCoreクラス（エラー情報を取得するクラス）」を参照してください。

CdbrDMAクラスから継承されるメソッド

メソッド | 機能
~CdbrDMA | デストラクタ
CdbrDMA | コンストラクタ
ConnectObject | オブジェクトを指定したモードでロックして接続
GetOIID | OIIDの取得
GetPropertyValues | プロパティの取得
GetPropertyValuesAndLock | プロパティの取得と同時に指定したロックの設定
GetType | オブジェクトの種別の取得
PutPropertyValues | プロパティの設定
ReleaseObject | オブジェクトとの接続の解除
RemoveObject | オブジェクトの削除
SetOIID | OIIDの設定

これらのメソッドの詳細については，「7.　CdbrDMAクラス（OIIDの設定やプロパティを扱うクラス）」を参照してください。

CdbrIndependentPersistenceクラスで導入されるメソッド

メソッド | 機能
~CdbrIndependentPersistence | デストラクタ
BindPublicACL | パブリックACLのバインド
CdbrIndependentPersistence | コンストラクタ
CreateObject | オブジェクトの新規作成
GetPublicACLList | バインドしているパブリックACL一覧情報の取得
GetPublicACLListAndLock | バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定
UnbindPublicACL | パブリックACLのアンバインド

以降，CdbrIndependentPersistenceクラスで導入されるメソッドについて説明します。

CdbrIndependentPersistence::~CdbrIndependentPersistenceメソッド

機能

デストラクタ

形式

virtual ~CdbrIndependentPersistence()

詳細

CdbrIndependentPersistenceオブジェクトのデストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrIndependentPersistence::BindPublicACLメソッド

機能

パブリックACLのバインド

形式

DmaBoolean BindPublicACL(
 DmaInteger32       lIdListCount,
 ppDmaString_T      ppIdList)

詳細

パブリックACLをバインドするメソッドです。

ppIdListに複数のパブリックACLを指定することで，一度に複数のパブリックACLをバインドできます。

存在しないOIIDを指定した場合，重複したOIIDを指定した場合，すでにバインドしているパブリックACLのOIIDを指定した場合，およびバインド数の制限値を超えて指定した場合はエラーになります。

引数

lIdListCount（入力）

バインドするパブリックACLの個数を指定します。0以下の数を指定するとエラーになります。

ppIdList（入力）

バインドするパブリックACLのOIID文字列のポインタ配列を指定します。NULLを指定するとエラーになります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御機能が未サポートです。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_PUBLICACL_COUNT | バインドするパブリックACLの個数が制限値を超えています。 | パブリックACLは，10個以内で指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_NONEXISTS_PUBLICACL | 指定されたパブリックACLは存在しません。 | 存在しないパブリックACLを指定しないで処理を再実行してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドでOIIDを設定するか，ConnectObjectメソッドでオブジェクトを接続してください。
ERR_DBR | ERR_PUBLICACL_ALREADY_BOUND | 指定されたパブリックACLはすでにバインドされています。 | すでにバインドされているパブリックACLを指定しないで処理を再実行してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。または，メモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrIndependentPersistence::CdbrIndependentPersistenceメソッド

機能

コンストラクタ

形式

CdbrIndependentPersistence()

詳細

CdbrIndependentPersistenceオブジェクトのコンストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrIndependentPersistence::CreateObjectメソッド

機能

オブジェクトの新規作成

形式

CdbrIndependentPersistence::CreateObject(
 CdbrSession*       pDbrSession,
 DmaInteger32       lDMAInfoListCount,
 SDBR_DMAINFO*      pDMAInfoList,
 ppDmaString_T      ppOIID)

// プロパティ構造体
struct SDBR_PROP {
 DmaId         PropId;       // プロパティ識別子
 DmaInteger32  lType;        // データ型
 DmaInteger32  lCardinality; // 基本単位
 DmaInteger32  lCount;       // 要素数
 union {                     // プロパティの値
   pDmaBoolean        pbBoolean;       // Boolean型
   pDmaInteger32      plInteger32;     // Integer32型
   pDmaId             pId;             // ID型
   pDmapv             ppObject;        // Object型
   ppDmaString_T      ppString;        // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32       lCount;
   SDBR_PROP*         pItem;
};

// DMAオブジェクト生成用の構造体
struct SDBR_DMAINFO {
 DmaId               ClassId;
 SDBR_PROPLIST       PropList;
};

詳細

オブジェクトを新規に作成するメソッドです。

SetOIIDメソッドもしくはConnectObjectメソッドによってオブジェクトとすでに接続されている場合，またはこのメソッドがすでにコールされている場合は，既存の接続は変更されずに，このメソッドのコールがエラーになります。接続を終了するには，ReleaseObjectメソッドを実行してください。

引数

pDbrSession（入力）

CdbrSessionオブジェクトを指定します。

lDMAInfoListCount（入力）

pDMAInfoListで指定した配列の個数を指定します。負の値を指定した場合は，エラーになります。

pDMAInfoList（入力）

オブジェクトの構成要素として新規に作成するDMAオブジェクトの情報を格納した構造体である，SDBR_DMAINFO構造体の配列を指定します。DMAオブジェクトの情報としてSDBR_DMAINFO構造体には，edmClass_IndependentPersistenceクラスまたはそのサブクラスの情報を指定してください。NULLを指定した場合は，edmClass_IndependentPersistenceクラスを使用してDMAオブジェクトが作成されます。

lDMAInfoListCountが正の整数のときにpDMAInfoListにNULLを指定すると，エラーになります。

SDBR_DMAINFO構造体については，「付録C.1(3)　SDBR_DMAINFO構造体（DMAオブジェクト生成用の構造体）」を参照してください。

プロパティ情報を指定するSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

なお，VariableArray型プロパティを設定するとき，次の場合はエラーになります。このとき，major_codeとしてERR_DMA，minor_codeとしてDMARC_BAD_VALUEが返却されます。

DocumentBrokerサーバのメタ情報ファイル（edms.ini）のdmaProp_MaximumElementsエントリの値に2以上の値を設定しているときに，このエントリの値を超えてVariableArray型プロパティの要素を指定した場合

DocumentSpace構成定義ファイルdocspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義があるときに，VariableArray型プロパティの要素の値として，範囲外の値や最大値を超えた値を指定した場合

それぞれのデータ型に対応する値の範囲については，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

ppOIID（出力）

作成した独立データのオブジェクトのOIIDへのポインタが設定されます。ポインタを格納する領域を指定してください。

*ppOIIDがポイントするメモリを，ユーザプログラムで解放しないでください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_ACLIB_OBJECT_INVALID
クラスライブラリのオブジェクトは無効です。
有効なクラスライブラリのオブジェクトを指定してください。

ERR_DBR
ERR_BAD_PERMISSION
不正なパーミッションが指定されました。
正しいパーミッションを指定してください。

ERR_DBR
ERR_BAD_SUBJECT_TYPE
不正なサブジェクト種別が指定されました。
正しいサブジェクト種別を指定してください。

ERR_DBR
ERR_INVALID_ACE
不正なアクセス制御エレメント（ACE）が指定されました。
ACEとして正しいCdbrCompoundオブジェクトを指定してください。

ERR_DBR
ERR_INVALID_ACE_COUNT
設定するアクセス制御エレメント（ACE）の個数が制限値を超えています。
ACEは64個以内で指定してください。

ERR_DBR
ERR_INVALID_PUBLICACL_COUNT
バインドするパブリックACLの個数が制限値を超えています。
パブリックACLは10個以内で指定してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_INVALID_SUBJECT_LENGTH
サブジェクトの長さが不正です。
次に示す範囲内でサブジェクトを指定してください。

サブジェクトの種別がユーザ識別子の場合，1文字以上，ユーザ識別子の最大長以下の文字列を指定してください。
ユーザ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がグループ識別子の場合，1文字以上，グループ識別子の最大長以下の文字列を指定してください。
グループ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がシステムサブジェクトの場合，1文字以上，254文字以下の文字列を指定してください。

ユーザ識別子とグループ識別子の最大長を拡張する方法の詳細は，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

ERR_DBR
ERR_NONEXISTS_PUBLICACL
指定されたパブリックACLは存在しません。
存在しないパブリックACLを指定しないで処理を再実行してください。

ERR_DBR
ERR_OBJECT_ALREADY_CONNECTED
オブジェクトはすでに接続されています。
この操作は実行できません。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DMA
DMARC_BAD_CLASSID
指定された識別子は，利用できるオブジェクトのクラスではありません。
正しいクラス識別子を指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_BAD_PROPID
プロパティの識別子が不正です。
正しいプロパティ識別子を指定してください。

ERR_DMA
DMARC_BAD_VALUE
次のどれかの要因が考えられます。

プロパティやリストの値が，許容範囲外の値であるか，または最大値を超えました。

VariableArray型プロパティに設定する可変長配列の要素数が最大値を超えました。

docspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義がある場合に，VariableArray型プロパティの要素の値が，許容範囲外の値であるか，または最大値を超えました。

次のどれかの方法で対処してください。

プロパティやリストの値の範囲を見直してください。

VariableArray型プロパティに設定する可変長配列の要素数を見直してください。

VariableArray型プロパティの要素の値の範囲を見直してください。

ERR_DMA
DMARC_DATATYPE_MISMATCH
プロパティのデータ型に適切ではないメソッドです。
正しい型を指定してください。

ERR_DMA
DMARC_LOST_CONNECTION
現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。
文書空間に再接続してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NOT_FOUND
要求された要素が見つかりません。
正しいオブジェクトを設定してください。

ERR_DMA
DMARC_NOT_SUPPORTED
このセッションまたはオブジェクトではサポートされていないメソッドです。
この操作は実行できません。

ERR_DMA
DMARC_READ_ONLY
読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。
このプロパティの値は更新できません。

ERR_DMA
DMARC_TIMEOUT
制限時間を超過しました。
タイムアウトしました。

ERR_DMA
DMARC_UNEXPECTED
予期しないエラーが発生しました。
処理を終了してください。

ERR_DMA
EDMRC_NOT_INTRANSACTION
トランザクション外でメソッドが呼ばれました。
Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrIndependentPersistence::GetPublicACLListメソッド

機能

バインドしているパブリックACL一覧情報の取得

形式

DmaBoolean GetPublicACLList(
 DmaInteger32       lPropDefListCount,
 SDBR_PROPDEF*      pPropDefList,
 SDBR_OBJLIST**     ppObjList)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
  DmaId             PropId;        //プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;     //Boolean型
    pDmaInteger32    plInteger32;   //Integer32型
    pDmaId           pId;           //ID型
    pDmapv           ppObject;      //Object型
    ppDmaString_T    ppString;      //String型
  } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
 pDmaString_T       pOIID;         // オブジェクトのOIID
 DmaInteger32       lType;         // オブジェクトの種別
 SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
  DmaInteger32      lCount;
  SDBR_OBJINFO*     pItem;
};

詳細

オブジェクトがバインドしているパブリックACLの一覧情報を取得するメソッドです。その際，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティ値も取得します。

オブジェクトがバインドしているパブリックACLの一覧情報はppObjListに設定されます。

引数

lPropDefListCount（入力）

pPropDefListの要素数を指定します。

プロパティを取得しない場合は0を指定してください。負の値を指定した場合はエラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。NULLはlPropDefListCountが0の場合に指定できます。lPropDefListCountが正の整数のときにpPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppObjList（出力）

取得した情報を格納するオブジェクトリスト構造体である，SDBR_OBJLIST構造体へのポインタが設定されます。NULLを指定した場合はエラーになります。

*ppObjListがポイントするメモリは，クラスライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。ただし，SDBR_OBJINFO構造体のpOIIDにはパブリックACLのOIIDが設定されます。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御機能が未サポートです。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドでOIIDを設定するか，ConnectObjectメソッドでオブジェクトを接続してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrIndependentPersistence::GetPublicACLListAndLockメソッド

機能

バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定

形式

DmaBoolean GetPublicACLListAndLock(
 DmaInteger32       lPropDefListCount,
 SDBR_PROPDEF*      pPropDefList,
 SDBR_OBJLIST**     ppObjList,
 DmaInteger32       lLockType = DMA_LOCK_WRITE)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
  DmaId             PropId;        //プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;     //Boolean型
    pDmaInteger32    plInteger32;   //Integer32型
    pDmaId           pId;           //ID型
    pDmapv           ppObject;      //Object型
    ppDmaString_T    ppString;      //String型
  } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
 pDmaString_T       pOIID;         // オブジェクトのOIID
 DmaInteger32       lType;         // オブジェクトの種別
 SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
  DmaInteger32      lCount;
  SDBR_OBJINFO*     pItem;
};

詳細

ロックタイプを明示的に指定して，オブジェクトがバインドしているパブリックACLの一覧情報を取得するメソッドです。その際，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティ値も取得します。

オブジェクトがバインドしているパブリックACLの一覧情報はppObjListに設定されます。

引数

lPropDefListCount（入力）

pPropDefListの要素数を指定します。

プロパティを取得しない場合は0を指定してください。負の値を指定した場合はエラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。NULLはlPropDefListCountが0の場合に指定できます。lPropDefListCountが正の整数のときにpPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppObjList（出力）

取得した情報を格納するオブジェクトリスト構造体である，SDBR_OBJLIST構造体へのポインタが設定されます。NULLを指定した場合はエラーになります。

*ppObjListがポイントするメモリは，クラスライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。ただし，SDBR_OBJINFO構造体のpOIIDにはパブリックACLのOIIDが設定されます。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御機能が未サポートです。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドでOIIDを設定するか，ConnectObjectメソッドでオブジェクトを接続してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrIndependentPersistence::UnbindPublicACLメソッド

機能

パブリックACLのアンバインド

形式

//指定したパブリックACLをアンバインドする場合
DmaBoolean UnbindPublicACL(
 DmaInteger32       lIdListCount,
 ppDmaString_T      ppIdList)

//すべてのパブリックACLをアンバインドする場合
DmaBoolean UnbindPublicACL()

詳細

オブジェクトからパブリックACLをアンバインドするメソッドです。

複数のパブリックACLを一度にアンバインドしたり，すべてのパブリックACLを一度にアンバインドしたりできます。

指定したOIIDのパブリックACLがバインドされていない場合，および重複したOIIDを指定した場合はエラーになります。

引数

lIdListCount（入力）

アンバインドするパブリックACLの個数を指定します。0以下の数を指定するとエラーになります。

ppIdList（入力）

アンバインドするパブリックACLのOIIDのポインタ配列を指定します。

NULLを指定するとエラーになります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御機能が未サポートです。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_NONEXISTS_PUBLICACL | 指定されたパブリックACLは存在しません。 | 存在しないパブリックACLを指定しないで処理を再実行してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドでOIIDを設定するか，ConnectObjectメソッドでオブジェクトを接続してください。
ERR_DBR | ERR_PUBLICACL_NOT_BOUND | 指定されたパブリックACLはバインドされていません。 | バインドされているパブリックACLを指定して処理を再実行してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

11.　CdbrPublicACLクラス（パブリックACLを扱うクラス）

アクセス制御リストを管理して，これを複数の文書やコンテナで共有して使用する機能を提供するクラスです。

＜この章の構成＞

CdbrPublicACLクラスの詳細

CdbrPublicACL::~CdbrPublicACLメソッド

CdbrPublicACL::CdbrPublicACLメソッド

CdbrPublicACL::CreateObjectメソッド

CdbrPublicACL::GetBindObjectListメソッド

CdbrPublicACL::GetBindObjectListAndLockメソッド

CdbrPublicACLクラスの詳細

スーパークラス

プロパティ一覧

プロパティの一覧を次に示します。

表11-1　CdbrPublicACLクラスのプロパティ

プロパティ名
プロパティ識別子
データ型※¹
読み取り専用

OIID
dmaProp_OIID
String型
○

OwnerId
dbrProp_OwnerId
String型
－※²

UserPermission
dbrProp_UserPermission
Integer32型
○

ACL
dbrProp_ACL
Object型
（VariableArray型）
－※³

SACL
dbrProp_SACL
Object型
（VariableArray型）
－※²

BindObjectCount
dbrProp_BindObjectCount
Integer32型
○

注※1

基本単位がScalar型以外の場合は，（　）に基本単位を示します。

注※2

変更は，そのオブジェクトの所有者およびセキュリティ管理者だけが実行できます。

注※3

変更は，そのオブジェクトの所有者，セキュリティACLでアクセス制御情報変更権を与えられたユーザおよびセキュリティ管理者だけが実行できます。

プロパティ詳細

DMAで規定されているプロパティ

OIID
オブジェクトを識別するGUID文字列です。実体はDMAオブジェクトのOIIDです。

CdbrDMAクラスから継承されるプロパティ

OwnerId

UserPermission

これらのプロパティの詳細については，「CdbrDMAクラスの詳細」のプロパティ詳細を参照してください。

CdbrPublicACLクラスで導入されるプロパティ

SACL
オブジェクトのセキュリティACLを表します。

ACL
オブジェクトのアクセス制御リスト（ACL）を表します。

BindObjectCount
パブリックACLをバインドしているクラスライブラリのオブジェクトの数を表します。

なおこのほかに，CdbrPublicACLクラスでは，構成要素であるDMAオブジェクトを作成する基になるDMAクラスのedmClass_PublicACLクラスのプロパティが使用できます。edmClass_PublicACLクラスで定義されているプロパティについては，「付録B　DMAオブジェクトのプロパティ」を参照してください。

また，CdbrPublicACLクラスのオブジェクトには，ユーザ定義プロパティも設定できます。ただし，ユーザ定義プロパティの値の変更は，そのパブリックACLの所有者か，セキュリティ管理者だけが実行できます。

メソッド一覧

CdbrCoreクラスから継承されるメソッド

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

これらのメソッドの詳細については，「6.　CdbrCoreクラス（エラー情報を取得するクラス）」を参照してください。

CdbrDMAクラスから継承されるメソッド

メソッド | 機能
~CdbrDMA | デストラクタ
CdbrDMA | コンストラクタ
ConnectObject | オブジェクトを指定したモードでロックして接続
GetOIID | OIIDの取得
GetPropertyValues | プロパティの取得
GetPropertyValuesAndLock | プロパティの取得と同時に指定したロックの設定
GetType | オブジェクトの種別の取得
PutPropertyValues | プロパティの設定
ReleaseObject | オブジェクトとの接続の解除
RemoveObject | オブジェクトの削除
SetOIID | OIIDの設定

これらのメソッドの詳細については，「7.　CdbrDMAクラス（OIIDの設定やプロパティを扱うクラス）」を参照してください。

CdbrPublicACLクラスで導入されるメソッド

メソッド | 機能
~CdbrPublicACL | デストラクタ
CdbrPublicACL | コンストラクタ
CreateObject | パブリックACLの新規作成
GetBindObjectList | バインドしているオブジェクトの一覧情報の取得
GetBindObjectListAndLock | バインドしているオブジェクトの一覧情報の取得と同時に指定したロックの設定

以降，CdbrPublicACLクラスで導入されるメソッドについて説明します。

CdbrPublicACL::~CdbrPublicACLメソッド

機能

デストラクタ

形式

~CdbrPublicACL()

詳細

CdbrPublicACLオブジェクトのデストラクタです。

インスタンスが文書空間中のパブリックACLオブジェクトに接続中の場合，接続を解除します。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrPublicACL::CdbrPublicACLメソッド

機能

コンストラクタ

形式

CdbrPublicACL()

詳細

CdbrPublicACLオブジェクトのコンストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrPublicACL::CreateObjectメソッド

機能

パブリックACLの新規作成

形式

DmaBoolean CreateObject(
 CdbrSession*       pDbrSession,
 DmaInteger32       lDMAInfoListCount,
 SDBR_DMAINFO*      pDMAInfoList,
 ppDmaString_T      ppOIID )

// プロパティ構造体
struct SDBR_PROP {
 DmaId         PropId;                 // プロパティ識別子
 DmaInteger32  lType;                  // データ型
 DmaInteger32  lCardinality;           // 基本単位
 DmaInteger32  lCount;                 // 要素数
 union {                               // プロパティの値
   pDmaBoolean        pbBoolean;       // Boolean型
   pDmaInteger32      plInteger32;     // Integer32型
   pDmaId             pId;             // ID型
   pDmapv             ppObject;        // Object型
   ppDmaString_T      ppString;        // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32       lCount;
   SDBR_PROP*         pItem;
};

// DMAオブジェクト生成用の構造体
struct SDBR_DMAINFO {
 DmaId               ClassId;
 SDBR_PROPLIST       PropList;
};

詳細

パブリックACLを新規に作成するメソッドです。

SetOIIDメソッドもしくはConnectObjectメソッドによってオブジェクトとすでに接続されている場合，またはこのメソッドがすでにコールされている場合は，既存の接続は変更されずに，このメソッドのコールがエラーになります。接続を終了するには，ReleaseObjectメソッドを実行してください。

引数

pDbrSession（入力）

CdbrSessionオブジェクトを指定します。NULLを指定するとエラーになります。

lDMAInfoListCount（入力）

pDMAInfoListで指定した配列の個数を指定します。負の値を指定した場合は，エラーになります。

pDMAInfoList（入力）

オブジェクトの構成要素として新規に作成するDMAオブジェクトの情報を格納した構造体である，SDBR_DMAINFO構造体の配列を指定します。DMAオブジェクトの情報としてSDBR_DMAINFO構造体には，edmClass_PublicACLクラスの情報を指定してください。NULLを指定した場合，edmClass_PublicACLクラスを使用してDMAオブジェクトが作成されます。

また，lDMAInfoListCountが正の整数のときにpDMAInfoListにNULLを指定すると，エラーになります。

SDBR_DMAINFO構造体については，「付録C.1(3)　SDBR_DMAINFO構造体（DMAオブジェクト生成用の構造体）」を参照してください。

また，プロパティ情報を指定するSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppOIID（出力）

作成したCdbrPublicACLオブジェクトのOIIDへのポインタが設定されます。ポインタを格納する領域を指定してください。

*ppOIIDがポイントするメモリを，ユーザプログラムで解放しないでください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_ACCESSCONTROL_NOT_SUPPORTED
アクセス制御機能が未サポートです。
この操作は実行できません。

ERR_DBR
ERR_ACLIB_OBJECT_INVALID
クラスライブラリのオブジェクトは無効です。
有効なクラスライブラリのオブジェクトを指定してください。

ERR_DBR
ERR_BAD_PERMISSION
パーミッションの指定が不正です。
正しいパーミッションを指定してください。

ERR_DBR
ERR_BAD_SUBJECT_TYPE
不正なサブジェクト種別が指定されました。
正しいサブジェクト種別を指定してください。

ERR_DBR
ERR_INVALID_ACE
不正なアクセス制御エレメント（ACE）が指定されました。
ACEとして正しいCdbrCompoundオブジェクトを指定してください。

ERR_DBR
ERR_INVALID_ACE_COUNT
設定するアクセス制御エレメント（ACE）の個数が制限値を超えています。
ACEは64個以内で指定してください。

ERR_DBR
ERR_INVALID_PUBLICACL_COUNT
バインドするパブリックACLの個数が制限値を超えています。
パブリックACLは10個以内で指定してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_INVALID_SUBJECT_LENGTH
サブジェクトの長さが不正です。
次に示す範囲内でサブジェクトを指定してください。

サブジェクトの種別がユーザ識別子の場合，1文字以上，ユーザ識別子の最大長以下の文字列を指定してください。
ユーザ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がグループ識別子の場合，1文字以上，グループ識別子の最大長以下の文字列を指定してください。
グループ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がシステムサブジェクトの場合，1文字以上，254文字以下の文字列を指定してください。

ユーザ識別子とグループ識別子の最大長を拡張する方法の詳細は，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

ERR_DBR
ERR_OBJECT_ALREADY_CONNECTED
オブジェクトはすでに接続されています。
この操作は実行できません。

ERR_DBR
ERR_OBJECT_REMOVED
オブジェクトはすでに削除されています。
正しいオブジェクトを指定してください。

ERR_DBR
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドでOIIDを設定するか，ConnectObjectメソッドでオブジェクトを接続してください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DMA
DMARC_BAD_CLASSID
指定された識別子は，利用できるオブジェクトのクラスではありません。
正しいクラス識別子を指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_BAD_PROPID
プロパティの識別子が不正です。
正しいプロパティ識別子を指定してください。

ERR_DMA
DMARC_BAD_VALUE
プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。
値の範囲を見直してください。

ERR_DMA
DMARC_LOST_CONNECTION
現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。
文書空間に再接続してください。

ERR_DMA
DMARC_DATATYPE_MISMATCH
プロパティのデータ型に適切ではないメソッドです。
正しい型を指定してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NOT_SUPPORTED
このセッションまたはオブジェクトではサポートされていないメソッドです。
この操作は実行できません。

ERR_DMA
DMARC_READ_ONLY
読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。
このプロパティの値は更新できません。

ERR_DMA
DMARC_TIMEOUT
制限時間を超過しました。
タイムアウトしました。

ERR_DMA
DMARC_UNEXPECTED
予期しないエラーが発生しました。
処理を終了してください。

ERR_DMA
EDMRC_NOT_INTRANSACTION
トランザクション外でメソッドが呼ばれました。
Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrPublicACL::GetBindObjectListメソッド

機能

バインドしているオブジェクトの一覧情報の取得

形式

DmaBoolean GetBindObjectList(
   pDmaBoolean        pbContinue,
   DmaInteger32       lClassType,
   DmaInteger32       lPropDefListCount,
   SDBR_PROPDEF*      pPropDefList,
   DmaInteger32       lObjListCount,
   SDBR_OBJLIST**     ppObjList )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;            // プロパティ情報の個数
   SDBR_PROP*        pItem;             // プロパティ情報
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
   pDmaString_T       pOIID;         // オブジェクトのOIID
   DmaInteger32       lType;         // オブジェクトの種別
   SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
    DmaInteger32      lCount;
    SDBR_OBJINFO*     pItem;
};

詳細

パブリックACLオブジェクトをバインドしているオブジェクトに関する一覧情報を取得するメソッドです。また，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティ値も取得します。

１回のメソッドのコールで一覧の取得が完了しなかった場合，引数pbContinueにDMA_TRUEが設定されるので，引数pbContinueがDMA_FALSEになるまで繰り返しメソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて，１回目のメソッドのコール時点の状態に依存します。したがって，１回目のメソッドのコール以降に変更した要素数やプロパティ値は，２回目以降のコールに反映されません。

また，要素の個数に変更がなく，同じオブジェクトに対するメソッドのコールであっても，取得される情報の順序は常に異なる可能性があります。

このメソッドの使用方法については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」のCdbrContainable::GetContainerListメソッドを参照してください。

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得の残りを破棄し，新たに先頭から取得します。

なお，オブジェクトの作成後初めてメソッドをコールした場合，または前回の読み出しですべて取得した場合は，DMA_FALSEが指定されたものとして動作します。

前回メソッドをコールした時と引数が異なるメソッドをコールした場合は，pbContinueの値は無視され，前回取得の残りを破棄して新たに先頭から取得します。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す次の値が設定されます。

DMA_TRUE
継続可能（まだ取得していない残りの要素があります）。

DMA_FALSE
継続不可（すべての要素を取得しました）。

lClassType（入力）

対象となるオブジェクトのクラス種別を，クラス識別子によって指定します。これによって，指定されたクラス識別子の要素だけが取得できます。

クラス識別子の一覧を次に示します。

表11-2　クラス識別子の一覧

クラス識別子 | クラスの種別
DBR_CLASS_CONFIGURATEDREFERENTIALCONTAINER | CdbrConfiguratedReferentialContainerクラス
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_INDEPENDENTPERSISTENCE | CdbrIndependentPersistenceクラス
DBR_CLASS_REFERENTIALCONTAINER | CdbrReferentialContainerクラス
DBR_CLASS_RFCT_OR_VTCT | CdbrReferentialContainerクラスとCdbrVersionTraceableContainerクラスのOR条件
DBR_CLASS_VERSIONABLEDOCUMENT | CdbrVersionableDocumentクラス
DBR_CLASS_VERSIONTRACEABLECONTAINER | CdbrVersionTraceableContainerクラス
DBR_CLASS_ALL | すべてのクラス

それぞれのクラスの識別子をOR条件として指定した取得もできます。例えば，CdbrReferentialContainerクラスの要素とCdbrDocumentクラスの要素を取得したい場合は，次のように指定します。

DBR_CLASS_REFERENTIALCONTAINER | DBR_CLASS_DOCUMENT

ただし，CdbrReferentialContainerクラスとCdbrVersionTraceableContainerクラスの要素を取得したい場合は，DBR_CLASS_RFCT_OR_VTCTを指定してください。DBR_CLASS_RFCT_OR_VTCTとほかのクラスのクラス識別子をORで指定することもできます。

すべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。

なお，特定のクラス種別を指定すると，内部で該当するオブジェクトの選別が実行されるため処理が遅くなります。このため，クラス種別はできるだけDBR_CLASS_ALLを指定するようにしてください。例えば，パブリックACLをバインドしているのがCdbrReferentialContainerオブジェクトだけだとわかっている場合，クラス種別としてDBR_CLASS_REFERENTIALCONTAINERを指定するのではなく，DBR_CLASS_ALLを指定してください。

lPropDefListCount（入力）

同時に取得するプロパティの個数（引数pPropDefListに指定する配列の要素数）を0以上の値で指定します。0を指定した場合，プロパティは取得されません。負の値を指定した場合はエラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。lPropDefCountが0の場合，この引数は無視されます。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

情報を取得するオブジェクトの数を指定します。１以上の値を指定してください。0以下の値を指定するとエラーになります。

ppObjList（出力）

取得したオブジェクト情報を格納するリストである，SDBR_OBJLIST構造体へのポインタが設定されます。ポインタを格納する領域を指定してください。

*ppObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御機能が未サポートです。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドでOIIDを設定するか，ConnectObjectメソッドでオブジェクトを接続してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrPublicACL::GetBindObjectListAndLockメソッド

機能

バインドしているオブジェクトの一覧情報の取得と同時に指定したロックの設定

形式

DmaBoolean GetBindObjectListAndLock(
   pDmaBoolean        pbContinue,
   DmaInteger32       lClassType,
   DmaInteger32       lPropDefListCount,
   SDBR_PROPDEF*      pPropDefList,
   DmaInteger32       lObjListCount,
   SDBR_OBJLIST**     ppObjList,
   DmaInteger32       lLockType = DMA_LOCK_WRITE )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;            // プロパティ情報の個数
   SDBR_PROP*        pItem;             // プロパティ情報
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
   pDmaString_T       pOIID;         // オブジェクトのOIID
   DmaInteger32       lType;         // オブジェクトの種別
   SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
    DmaInteger32      lCount;
    SDBR_OBJINFO*     pItem;
};

詳細

ロックタイプを明示的に指定して，パブリックACLオブジェクトをバインドしているオブジェクトに関する一覧情報を取得するメソッドです。また，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティ値も取得します。

１回のメソッドのコールで一覧の取得が完了しなかった場合，引数pbContinueにDMA_TRUEが設定されるので，引数pbContinueがDMA_FALSEになるまで繰り返しメソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて，１回目のメソッドのコール時点の状態に依存します。したがって，１回目のメソッドのコール以降に変更した要素数やプロパティ値は，２回目以降のコールに反映されません。

また，要素の個数に変更がなく，同じオブジェクトに対するメソッドのコールであっても，取得される情報の順序は常に異なる可能性があります。

このメソッドの使用方法については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」のCdbrContainable::GetContainerListメソッドを参照してください。

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得の残りを破棄し，新たに先頭から取得します。

なお，オブジェクトの作成後初めてメソッドをコールした場合，または前回の読み出しですべて取得した場合は，DMA_FALSEが指定されたものとして動作します。

前回メソッドをコールした時と引数が異なるメソッドがコールされた場合は，pbContinueの値を無視し，前回取得の残りを破棄して新たに先頭から取得します。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す次の値が設定されます。

DMA_TRUE
継続可能（まだ取得していない残りの要素があります）。

DMA_FALSE
継続不可（すべての要素を取得しました）。

lClassType（入力）

対象となるオブジェクトを，クラス識別子によって指定します。これによって，指定されたクラス識別子の要素だけが取得できます。

クラス識別子の一覧を次に示します。

表11-3　クラス識別子の一覧

クラス識別子 | クラスの種別
DBR_CLASS_CONFIGURATEDREFERENTIALCONTAINER | CdbrConfiguratedReferentialContainerクラス
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_INDEPENDENTPERSISTENCE | CdbrIndependentPersistenceクラス
DBR_CLASS_REFERENTIALCONTAINER | CdbrReferentialContainerクラス
DBR_CLASS_VERSIONABLEDOCUMENT | CdbrVersionableDocumentクラス
DBR_CLASS_VERSIONTRACEABLECONTAINER | CdbrVersionTraceableContainerクラス
DBR_CLASS_RFCT_OR_VTCT | CdbrReferentialContainerクラスとCdbrVersionTraceableContainerクラスのOR条件
DBR_CLASS_ALL | すべてのクラス

それぞれのクラスの識別子をOR条件を指定した取得もできます。例えば，CdbrReferentialContainerクラスの要素とCdbrDocumentクラスの要素を取得したい場合は，次のように指定します。

DBR_CLASS_REFERENTIALCONTAINER | DBR_CLASS_DOCUMENT

ただし，CdbrReferentialContainerクラスとCdbrVersionTraceableContainerクラスの要素を取得したい場合は，DBR_CLASS_RFCT_OR_VTCTを指定してください。DBR_CLASS_RFCT_OR_VTCTとほかのクラスのクラス識別子をORで指定することもできます。

すべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。

なお，特定のクラス種別を指定すると，内部で該当するオブジェクトの選別を行なうため処理が遅くなります。このため，クラス種別はできるだけDBR_CLASS_ALLを指定するようにしてください。例えば，パブリックACLをバインドしているのがCdbrReferentialContainerオブジェクトだけだとわかっている場合，クラス種別としてDBR_CLASS_REFERENTIALCONTAINERを指定するのではなく，DBR_CLASS_ALLを指定してください。

lPropDefListCount（入力）

同時に取得するプロパティの個数（引数pPropDefListに指定する配列の要素数）を0以上の値で指定します。0を指定した場合，プロパティを取得しません。負の値を指定した場合はエラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。lPropDefCountが0の場合，この引数は無視されます。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

情報を取得するオブジェクトの数を指定します。１以上の値を指定してください。0以下の値を指定するとエラーになります。

ppObjList（出力）

取得したオブジェクト情報を格納するリストである，SDBR_OBJLIST構造体へのポインタが設定されます。ポインタを格納する領域を指定してください。

*ppObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を指定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御機能が未サポートです。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドでOIIDを設定するか，ConnectObjectメソッドでオブジェクトを接続してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

12.　CdbrReferentialContainerクラス（バージョンなしコンテナを扱うクラス）

文書をコンテナによって包含して管理する機能を提供するクラスです。

＜この章の構成＞

CdbrReferentialContainerクラスの詳細

CdbrReferentialContainer::~CdbrReferentialContainerメソッド

CdbrReferentialContainer::CdbrReferentialContainerメソッド

CdbrReferentialContainer::CreateObjectメソッド

CdbrReferentialContainer::GetContainableListメソッド

CdbrReferentialContainer::GetContainableListAndLockメソッド

CdbrReferentialContainer::GetLinkPropertyValuesメソッド

CdbrReferentialContainer::GetLinkPropertyValuesAndLockメソッド

CdbrReferentialContainer::Linkメソッド

CdbrReferentialContainer::LinkAndLockメソッド

CdbrReferentialContainer::PutLinkPropertyValuesメソッド

CdbrReferentialContainer::Unlinkメソッド

CdbrReferentialContainer::UnlinkAndLockメソッド

CdbrReferentialContainerクラスの詳細

スーパークラス

プロパティ一覧

プロパティの一覧を次に示します。

表12-1　CdbrReferentialContainerクラスのプロパティ

プロパティ名 | プロパティ識別子 | データ型 | 読み取り専用
OIID | dmaProp_OIID | String型 | ○
ParentCount | dbrProp_ParentCount | Integer32型 | ○
ContainersCount | dbrProp_ContainersCount | Integer32型 | ○
ContaineesCount | dbrProp_ContaineesCount | Integer32型 | ○
ChildrenCount | dbrProp_ChildrenCount | Integer32型 | ○

アクセス制御機能を使用している場合は，次のクラスライブラリの固有のプロパティが追加されます。

表12-2　CdbrReferentialContainerクラスのプロパティ（アクセス制御機能を使用する場合に追加されるクラスライブラリ固有のプロパティ）

プロパティ名
プロパティ識別子
データ型※¹
読み取り専用

OwnerId
dbrProp_OwnerId
String型
－※²

UserPermission
dbrProp_UserPermission
Integer32型
○

PrimaryGroupId
dbrProp_PrimaryGroupId
String型
－※³

ACL
dbrProp_ACL
Object型
（VariableArray型）
－※³

SACL
dbrProp_SACL
Object型
（VariableArray型）
－※²

OwnerPermission
dbrProp_OwnerPermission
Integer32型
－※³

PrimaryGroupPermission
dbrProp_PrimaryGroupPermission
Integer32型
－※³

EveryonePermission
dbrProp_EveryonePermission
Integer32型
－※³

PublicACLCount
dbrProp_PublicACLCount
Integer32型
○

PublicACLIds
dbrProp_PublicACLIds
Object型
（VariableArray型）
－※³

注※1

基本単位がScalar型以外の場合は，（　）に基本単位を示します。

注※2

変更は，そのオブジェクトの所有者およびセキュリティ管理者だけが実行できます。

注※3

変更は，そのオブジェクトの所有者，セキュリティACLでアクセス制御情報変更権を与えられたユーザ，およびセキュリティ管理者だけが実行できます。

プロパティ詳細

DMAで規定されているプロパティ

OIID

オブジェクトを識別するGUID文字列です。実体はDMAオブジェクトのOIIDです。

CdbrDMAクラスから継承されるプロパティ（アクセス制御機能を使用する場合）

OwnerId

UserPermission

これらのプロパティの詳細については，「CdbrDMAクラスの詳細」のプロパティ詳細を参照してください。

CdbrContainableクラスから継承されるプロパティ

ParentCount

ContainersCount

これらのプロパティの詳細については，「CdbrContainableクラスの詳細」のプロパティ詳細を参照してください。

CdbrContainableクラスから継承されるプロパティ（アクセス制御機能を使用する場合）

PrimaryGroupId

ACL

SACL

OwnerPermission

PrimaryGroupPermission

EveryonePermission

PublicACLCount

PublicACLIds

このプロパティの詳細については，「CdbrContainableクラスの詳細」のプロパティ詳細を参照してください。

CdbrReferentialContainerクラスで導入されるプロパティ

ContaineesCount
参照型のコンテインメントで包含しているContainableオブジェクト（CdbrContainableクラスのサブクラスのオブジェクト）の個数を表します。
参照型のコンテインメントとは，DMAオブジェクトのReferentialContainmentRelationshipオブジェクトによって設定された関連づけです。

ChildrenCount
直接型のコンテインメントで包含しているContainableオブジェクト（CdbrContainableクラスのサブクラスのオブジェクト）の個数を表します。直接型のコンテインメントとは，DMAオブジェクトのDirectContainmentRelationshipオブジェクトによって設定された関連づけです。

なおこのほかに，CdbrReferentialContainerクラスでは，構成要素であるDMAオブジェクトを作成する基になるDMAのクラスのdmaClass_Containerクラスおよびそのサブクラスのプロパティを参照，設定できます。DMAのクラスのプロパティについては，「付録B　DMAオブジェクトのプロパティ」を参照してください。

メソッド一覧

CdbrCoreクラスから継承されるメソッド

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

これらのメソッドの詳細については，「6.　CdbrCoreクラス（エラー情報を取得するクラス）」を参照してください。

CdbrDMAクラスから継承されるメソッド

メソッド | 機能
~CdbrDMA | デストラクタ
CdbrDMA | コンストラクタ
ConnectObject | オブジェクトを指定したモードでロックして接続
GetOIID | OIIDの取得
GetPropertyValues | プロパティの取得
GetPropertyValuesAndLock | プロパティの取得と同時に指定したロックの設定
GetType | オブジェクトの種別の取得
PutPropertyValues | プロパティの設定
ReleaseObject | オブジェクトとの接続の解除
RemoveObject | オブジェクトの削除
SetOIID | OIIDの設定

これらのメソッドの詳細については，「7.　CdbrDMAクラス（OIIDの設定やプロパティを扱うクラス）」を参照してください。

CdbrContainableクラスから継承されるメソッド

メソッド | 機能
~CdbrContainable | デストラクタ
BindPublicACL | パブリックACLのバインド
CdbrContainable | コンストラクタ
GetContainerList | コンテナの一覧取得
GetContainerListAndLock | コンテナの一覧取得と同時に指定したロックの設定
GetPublicACLList | バインドしているパブリックACL一覧情報の取得
GetPublicACLListAndLock | バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定
UnbindPublicACL | パブリックACLのアンバインド

これらのメソッドの詳細については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」を参照してください。

CdbrReferentialContainerクラスで導入されるメソッド

メソッド | 機能
~CdbrReferentialContainer | デストラクタ
CdbrReferentialContainer | コンストラクタ
CreateObject | オブジェクトの新規作成
GetContainableList | 包含要素の一覧取得
GetContainableListAndLock | 包含要素の一覧取得と同時に指定したロックの設定
GetLinkPropertyValues | リンクのプロパティの取得
GetLinkPropertyValuesAndLock | リンクのプロパティの取得と同時に指定したロックの設定
Link | 関連づけの設定
LinkAndLock | 関連づけの設定と同時に指定したロックの設定
PutLinkPropertyValues | リンクのプロパティの設定
Unlink | 関連づけの解除
UnlinkAndLock | 関連づけの解除と同時に指定したロックの設定

以降，CdbrReferentialContainerクラスで導入されるメソッドについて説明します。

CdbrReferentialContainer::~CdbrReferentialContainerメソッド

機能

デストラクタ

形式

virtual ~CdbrReferentialContainer()

詳細

CdbrReferentialContainerオブジェクトのデストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrReferentialContainer::CdbrReferentialContainerメソッド

機能

コンストラクタ

形式

CdbrReferentialContainer ()

詳細

CdbrReferentialContainerオブジェクトのコンストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrReferentialContainer::CreateObjectメソッド

機能

オブジェクトの新規作成

形式

DmaBoolean CreateObject (
CdbrSession*            pDbrSession,
DmaInteger32            lDMAInfoListCount,
SDBR_DMAINFO*           pDMAInfoList,
ppDmaString_T           ppOIID)

// プロパティ構造体
struct SDBR_PROP {
 DmaId         PropId;       // プロパティ識別子
 DmaInteger32  lType;        // データ型
 DmaInteger32  lCardinality; // 基本単位
 DmaInteger32  lCount;       // 要素数
 union {                     // プロパティの値
   pDmaBoolean        pbBoolean;       // Boolean型
   pDmaInteger32      plInteger32;     // Integer32型
   pDmaId             pId;             // ID型
   pDmapv             ppObject;        // Object型
   ppDmaString_T      ppString;        // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32       lCount;
   SDBR_PROP*         pItem;
};

// DMAオブジェクト生成用の構造体
struct SDBR_DMAINFO {
 DmaId                 ClassId;
 SDBR_PROPLIST         PropList;
};

詳細

オブジェクトを新規に作成するメソッドです。

SetOIIDメソッドもしくはConnectObjectメソッドによってオブジェクトとすでに接続されている場合，またはこのメソッドがすでにコールされている場合は，既存の接続は変更せずに，このメソッドのコールがエラーになります。接続を終了するには，ReleaseObjectメソッドを実行してください。

次に，CdbrReferentialContainerオブジェクトを新規に作成して接続する例を示します。この例では，変数ClassId_Sampleで指定されたクラス識別子でCdbrReferentialContainerオブジェクトを新規に作成して，そのポインタを取得します。

CdbrReferentialContainerオブジェクトを新規に作成して接続する例

//変数宣言
SDBR_DMAINFO  DMAInfoList;
pDmaString_T  pOIID;

//テンプレートの作成
DMAInfoList.ClassId = ClassId_Sample;
DMAInfoList.PropList.pItem = NULL;
DMAInfoList.PropList.lCount = 0;
//オブジェクトの新規作成
DbrRfct.CreateObject(pDbrSession, 1, &DMAInfoList ,
 &pOIID);

引数

pDbrSession（入力）

CdbrSessionオブジェクトを指定します。

lDMAInfoListCount （入力）

pDMAInfoListで指定した配列の個数を指定します。負の数を指定した場合は，エラーになります。

pDMAInfoList（入力）

オブジェクトの構成要素として新規に作成するDMAオブジェクトの情報を格納した構造体の配列を指定します。DMAオブジェクトの情報としてSDBR_DMAINFO構造体には，dmaClass_Containerクラスまたはそのサブクラスの情報を指定してください。NULLを指定した場合は，dmaClass_Containerクラスを使用してDMAオブジェクトが作成されます。

lDMAInfoListCountが正の整数のときにpDMAInfoListにNULLを指定すると，エラーになります。

SDBR_DMAINFO構造体については，「付録C.1(3)　SDBR_DMAINFO構造体（DMAオブジェクト生成用の構造体）」を参照してください。

プロパティ情報を指定するSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」参照してください。

なお，VariableArray型プロパティを設定するとき，次の場合はエラーになります。このとき，major_codeとしてERR_DMA，minor_codeとしてDMARC_BAD_VALUEが返却されます。

DocumentBrokerサーバのメタ情報ファイル（edms.ini）のdmaProp_MaximumElementsエントリの値に2以上の値を設定しているときに，このエントリの値を超えてVariableArray型プロパティの要素を指定した場合

DocumentSpace構成定義ファイルdocspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義があるときに，VariableArray型プロパティの要素の値として，範囲外の値や最大値を超えた値を指定した場合

それぞれのデータ型に対応する値の範囲については，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

ppOIID（出力）

作成されたCdbrReferentialContainerオブジェクトのOIIDへのポインタが設定されます。なお，*ppOIIDがポイントするメモリは，ユーザプログラムでは解放しないでください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_ACLIB_OBJECT_INVALID
クラスライブラリのオブジェクトは無効です。
有効なクラスライブラリのオブジェクトを指定してください。

ERR_DBR
ERR_BAD_PERMISSION
不正なパーミッションが指定されました。
正しいパーミッションを指定してください。

ERR_DBR
ERR_BAD_SUBJECT_TYPE
不正なサブジェクト種別が指定されました。
正しいサブジェクト種別を指定してください。

ERR_DBR
ERR_INVALID_ACE
不正なアクセス制御エレメント（ACE）が指定されました。
ACEとして正しいCdbrCompoundオブジェクトを指定してください。

ERR_DBR
ERR_INVALID_ACE_COUNT
設定するアクセス制御エレメント（ACE）の個数が制限値を超えています。
ACEは64個以内で指定してください。

ERR_DBR
ERR_INVALID_PUBLICACL_COUNT
バインドするパブリックACLの個数が制限値を超えています。
パブリックACLは10個以内で指定してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_INVALID_SUBJECT_LENGTH
サブジェクトの長さが不正です。
次に示す範囲内でサブジェクトを指定してください。

サブジェクトの種別がユーザ識別子の場合，1文字以上，ユーザ識別子の最大長以下の文字列を指定してください。
ユーザ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がグループ識別子の場合，1文字以上，グループ識別子の最大長以下の文字列を指定してください。
グループ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がシステムサブジェクトの場合，1文字以上，254文字以下の文字列を指定してください。

ユーザ識別子とグループ識別子の最大長を拡張する方法の詳細は，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

ERR_DBR
ERR_NONEXISTS_PUBLICACL
指定されたパブリックACLは存在しません。
存在しないパブリックACLを指定しないで処理を再実行してください。

ERR_DBR
ERR_OBJECT_ALREADY_CONNECTED
オブジェクトはすでに接続されています。
この操作は実行できません。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DMA
DMARC_BAD_CLASSID
指定された識別子は，利用できるオブジェクトのクラスではありません。
正しいクラス識別子を指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_BAD_PROPID
プロパティの識別子が不正です。
正しいプロパティ識別子を指定してください。

ERR_DMA
DMARC_BAD_VALUE
次のどれかの要因が考えられます。

プロパティやリストの値が，許容範囲外の値であるか，または最大値を超えました。

VariableArray型プロパティに設定する可変長配列の要素数が最大値を超えました。

docspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義がある場合に，VariableArray型プロパティの要素の値が，許容範囲外の値であるか，または最大値を超えました。

次のどれかの方法で対処してください。

プロパティやリストの値の範囲を見直してください。

VariableArray型プロパティに設定する可変長配列の要素数を見直してください。

VariableArray型プロパティの要素の値の範囲を見直してください。

ERR_DMA
DMARC_DATATYPE_MISMATCH
プロパティのデータ型に適切ではないメソッドです。
正しい型を指定してください。

ERR_DMA
DMARC_LOST_CONNECTION
現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。
文書空間に再接続してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NOT_FOUND
要求された要素が見つかりません。
正しいオブジェクトを設定してください。

ERR_DMA
DMARC_NOT_SUPPORTED
このセッションまたはオブジェクトではサポートされていないメソッドです。
この操作は実行できません。

ERR_DMA
DMARC_READ_ONLY
読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。
このプロパティの値は更新できません。

ERR_DMA
DMARC_TIMEOUT
制限時間を超過しました。
タイムアウトしました。

ERR_DMA
DMARC_UNEXPECTED
予期しないエラーが発生しました。
処理を終了してください。

ERR_DMA
EDMRC_NOT_INTRANSACTION
トランザクション外でメソッドが呼ばれました。
Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrReferentialContainer::GetContainableListメソッド

機能

包含要素の一覧取得

形式

//包含要素の一覧を取得する場合
DmaBoolean GetContainableList(
 pDmaBoolean       pbContinue,
 DmaInteger32      lContainmentType,
 DmaInteger32      lPropDefListCount,
 SDBR_PROPDEF*     pPropDefList,
 DmaInteger32      lObjListCount,
 SDBR_OBJLIST**    ppObjList )

//種類別の包含要素の一覧とリンク情報を取得する場合
DmaBoolean GetContainableList(
 pDmaBoolean           pbContinue,
 DmaInteger32          lContainmentType,
 DmaInteger32          lClassType,
 DmaInteger32          lPropDefListCount,
 SDBR_PROPDEF*         pPropDefList,
 DmaInteger32          lLinkPropDefListCount,
 SDBR_PROPDEF*         pLinkPropDefList,
 DmaInteger32          lObjListCount,
 SDBR_LINKEDOBJLIST**  ppLinkedObjList )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;            // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;            // プロパティ識別子
 DmaInteger32       lType;             // データ型
 DmaInteger32       lCardinality;      // 基本単位
 DmaInteger32       lCount;            // 要素数
 union {                               // プロパティの値
   pDmaBoolean      pbBoolean;         // Boolean型
   pDmaInteger32    plInteger32;       // Integer32型
   pDmaId           pId;               // ID型
   pDmapv           ppObject;          // Object型
   ppDmaString_T    ppString;          // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
 DmaInteger32      lCount;
 SDBR_PROP*        pItem;
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
 pDmaString_T    pOIID;         // オブジェクトのOIID
 DmaInteger32    lType;         // オブジェクトの種別
 SDBR_PROPLIST   PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
 DmaInteger32     lCount;
 SDBR_OBJINFO*    pItem;
};

// リンク付きオブジェクト情報構造体
struct SDBR_LINKEDOBJINFO {
 pDmaString_T   pOIID;        // オブジェクトのOIID
 DmaInteger32   lType;        // オブジェクトの種別
 pDmaString_T   pLinkId;      // リンク識別子
 SDBR_PROPLIST  PropList;     // オブジェクトのプロパティリスト
 SDBR_PROPLIST  LinkPropList; // リンクのプロパティリスト
};

// リンク付きオブジェクトリスト構造体
struct SDBR_LINKEDOBJLIST {
 DmaInteger32        lCount; // リンク付きオブジェクト情報の個数
 SDBR_LINKEDOBJINFO* pItem;  // リンク付きオブジェクト情報
};

詳細

このオブジェクトが包含している，CdbrContainableクラスのサブクラスのオブジェクトの一覧を取得するメソッドです。その際，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティの値も取得します。また，pLinkPropDefListで指定したプロパティを持つリンクについては，そのプロパティの値も取得します。

初回のメソッドのコールですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて初回にコールした時点での状態が反映されます。したがって，１回目のメソッドのコール以降に変更した要素数やプロパティ値は，２回目以降のコールに反映されません。

要素の個数に変更がなく，同じオブジェクトに対してこのメソッドをコールしても，取得される情報の順序は常に異なる可能性があります。

このメソッドの使用方法については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」のCdbrContainable::GetContainerListメソッドを参照してください。

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得したものの次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得した値の残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてメソッドをコールする場合，または前回の読み出しですべて取得した場合は，すべてDMA_FALSEが指定されたものとして処理されます。

また，前回と異なる引数を指定してメソッドをコールした場合は，前回取得した値の残りを破棄して，新たに先頭から取得します。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合はDMA_TRUEが設定されます。

2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について，次に示します。

表12-3　ほかの引数の扱われ方（SDBR_OBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
lContainmentType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppVTObjList | ○ | ○

（凡例）

○：有効

×：無効

注※　前回と異なる値を指定した場合は，DMA_TRUEの指定が無効になり，DMA_FALSEを指定したものとして処理されます。

表12-4　ほかの引数の扱われ方（SDBR_LINKEDOBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
lContainmentType | × | ○
lClassType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lLinkPropDefListCount | × | ○
pLinkPropDefList | × | ○
lObjListCount | ○ | ○
ppLinkedObjList | ○ | ○

（凡例）

○：有効

×：無効

注※　前回と異なる値を指定した場合は，DMA_TRUEの指定が無効になり，DMA_FALSEを指定したものとして処理されます。

lContainmentType（入力）

対象となるコンテインメントの種類を指定します。次のどちらかの値を指定します。

DBR_CONTAINMENT_DIRECT：
直接型のコンテインメントを設定します。DMAオブジェクトのDirectContainmentRelationshipオブジェクトを使用した関連づけです。

DBR_CONTAINMENT_REFERENTIAL：
参照型のコンテインメントを設定します。DMAオブジェクトのReferentialContainmentRelationshipオブジェクトを使用した関連づけです。

*pbContinueにDMA_TRUEを指定して継続して取得する場合は，1回目の取得の開始時に指定された種類のコンテインメントが対象となり，この値は無視されます。

lPropDefListCount（入力）

pPropDefListの要素数を指定します。0を指定した場合は，プロパティを取得しません。負の数を指定した場合は，エラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppObjList（出力）

取得した情報を格納するオブジェクト情報リスト構造体である，SDBR_OBJLIST構造体へのポインタが設定されます。*ppObjListがポイントするメモリは，クラスライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppObjListを指定したメモリの解放によって，構造体のメンバ(*ppObjList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがって，メソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lClassType(入力)

指定されたクラス識別子の要素だけを取得します。指定できる識別子を次に示します。

表12-5　クラス識別子の一覧

クラス識別子 | クラスの種別
DBR_CLASS_CONFIGURATEDREFERENTIALCONTAINER | CdbrConfiguratedReferentialContainerクラス
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_REFERENTIALCONTAINER | CdbrReferentialContainerクラス
DBR_CLASS_RFCT_OR_VTCT | CdbrReferentialContainerクラスとCdbrVersionTraceableContainerクラスのOR条件
DBR_CLASS_VERSIONABLEDOCUMENT | CdbrVersionableDocumentクラス
DBR_CLASS_VERSIONTRACEABLECONTAINER | CdbrVersionTraceableContainerクラス
DBR_CLASS_ALL | すべてのクラス

それぞれのクラスの識別子をOR条件を指定した取得もできます。例えば，CdbrReferentialContainerクラスの要素とCdbrDocumentクラスの要素を取得したい場合は，次のように指定します。

DBR_CLASS_REFERENTIALCONTAINER | DBR_CLASS_DOCUMENT

ただし，CdbrReferentialContainerクラスとCdbrVersionTraceableContainerクラスの要素を取得したい場合は，DBR_CLASS_RFCT_OR_VTCTを指定してください。DBR_CLASS_RFCT_OR_VTCTとほかのクラスのクラス識別子をORで指定することもできます。

すべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。

lLinkPropDefListCount（入力）

pLinkPropDefListの要素数を指定します。0を指定した場合は，プロパティを取得しません。負の数を指定した場合は，エラーになります。

pLinkPropDefList（入力）

同時に取得するリンクのプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。リンクのプロパティとして指定できる識別子は，ユーザが定義したプロパティの識別子だけです。

プロパティを取得しない場合はNULLを指定します。なお，lLinkPropDefListCountが正の整数のときにpLinkPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppLinkedObjList（出力）

取得した情報を格納するリンク付きオブジェクトリスト構造体である，SDBR_LINKEDOBJLIST構造体へのポインタが設定されます。**ppLinkedObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_LINKEDOBJLIST構造体およびSDBR_LINKEDOBJINFO構造体に設定される内容については，「付録C.1(7)　SDBR_LINKEDOBJLIST構造体（リンク付きオブジェクトリスト構造体）」および「付録C.1(6)　SDBR_LINKEDOBJINFO構造体（リンク付きオブジェクト情報構造体）」を参照してください。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrReferentialContainer::GetContainableListAndLockメソッド

機能

包含要素の一覧取得と同時に指定したロックの設定

形式

// 包含要素の一覧を取得する場合
DmaBoolean GetContainableListAndLock(
 pDmaBoolean       pbContinue,
 DmaInteger32      lContainmentType,
 DmaInteger32      lPropDefListCount,
 SDBR_PROPDEF*     pPropDefList,
 DmaInteger32      lObjListCount,
 SDBR_OBJLIST**    ppObjList,
 DmaInteger32      lLockType = DMA_LOCK_WRITE )

//種類別の包含要素の一覧とリンク情報を取得する場合
DmaBoolean GetContainableListAndLock(
 pDmaBoolean           pbContinue,
 DmaInteger32          lContainmentType,
 DmaInteger32          lClassType,
 DmaInteger32          lPropDefListCount,
 SDBR_PROPDEF*         pPropDefList,
 DmaInteger32          lLinkPropDefListCount,
 SDBR_PROPDEF*         pLinkPropDefList,
 DmaInteger32          lObjListCount,
 SDBR_LINKEDOBJLIST**  ppLinkedObjList,
 DmaInteger32      lLockType = DMA_LOCK_WRITE )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
 DmaId            PropId;            // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;            // プロパティ識別子
 DmaInteger32       lType;             // データ型
 DmaInteger32       lCardinality;      // 基本単位
 DmaInteger32       lCount;            // 要素数
 union {                               // プロパティの値
   pDmaBoolean      pbBoolean;         // Boolean型
   pDmaInteger32    plInteger32;       // Integer32型
   pDmaId           pId;               // ID型
   pDmapv           ppObject;          // Object型
   ppDmaString_T    ppString;          // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
 DmaInteger32      lCount;
 SDBR_PROP*        pItem;
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
 pDmaString_T      pOIID;         // オブジェクトのOIID
 DmaInteger32      lType;         // オブジェクトの種別
 SDBR_PROPLIST     PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
 DmaInteger32      lCount;
 SDBR_OBJINFO*     pItem;
};

// リンク付きオブジェクト情報構造体
struct SDBR_LINKEDOBJINFO {
 pDmaString_T   pOIID;        // オブジェクトのOIID
 DmaInteger32   lType;        // オブジェクトの種別
 pDmaString_T   pLinkId;      // リンク識別子
 SDBR_PROPLIST  PropList;     // オブジェクトのプロパティリスト
 SDBR_PROPLIST  LinkPropList; // リンクのプロパティリスト
};

// リンク付きオブジェクトリスト構造体
struct SDBR_LINKEDOBJLIST {
 DmaInteger32        lCount; // リンク付きオブジェクト情報の個数
 SDBR_LINKEDOBJINFO* pItem;  // リンク付きオブジェクト情報
};

詳細

ロックタイプを明示的に指定して，このオブジェクトが包含しているCdbrContainableクラスのサブクラスのオブジェクトの一覧を取得するメソッドです。その際，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティの値も取得します。また，pLinkPropDefListで指定したプロパティを持つリンクについては，そのプロパティの値も取得します。

初回のメソッドのコールですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて初回にコールした時点での状態が反映されます。したがって，１回目のメソッドのコール以降に変更した要素数やプロパティ値は，２回目以降のコールに反映されません。

要素の個数に変更がなく，同じオブジェクトに対してこのメソッドをコールしても，取得される情報の順序は常に異なる可能性があります。

使用方法については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」のCdbrContainable::GetContainerListメソッドを参照してください。

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得したものの次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得した値の残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてメソッドをコールする場合，または前回の読み出しですべて取得した場合は，すべてDMA_FALSEが指定されたものとして処理されます。

また，前回と異なる引数を指定してメソッドをコールした場合は，前回取得した値の残りを破棄して，新たに先頭から取得します。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合はDMA_TRUEが設定されます。

2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について，次に示します。

表12-6　ほかの引数の扱われ方（SDBR_OBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
lContainmentType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppVTObjList | ○ | ○
lLockType | × | ○

（凡例）

○：有効

×：無効

表12-7　ほかの引数の扱われ方（SDBR_LINKEDOBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
lContainmentType | × | ○
lClassType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lLinkPropDefListCount | × | ○
pLinkPropDefList | × | ○
lObjListCount | ○ | ○
ppLinkedObjList | ○ | ○
lLockType | × | ○

（凡例）

○：有効

×：無効

lContainmentType（入力）

対象となるコンテインメントの種類を指定します。次のどちらかの値を指定します。

DBR_CONTAINMENT_DIRECT：
直接型のコンテインメントを設定します。DMAオブジェクトのDirectContainmentRelationshipオブジェクトを使用した関連づけです。

DBR_CONTAINMENT_REFERENTIAL：
参照型のコンテインメントを設定します。DMAオブジェクトのReferentialContainmentRelationshipオブジェクトを使用した関連づけです。

*pbContinueにDMA_TRUEを指定して継続して取得する場合は，1回目の取得の開始時に指定された種類のコンテインメントが対象となり，この値は無視されます。

lPropDefListCount（入力）

pPropDefListの要素数を指定します。0を指定した場合はプロパティを取得しません。負の数を指定した場合は，エラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報の配列を指定します。

プロパティを取得しない場合はNULLを指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppObjList（出力）

取得した情報を格納するオブジェクト情報リスト構造体である，SDBR_OBJLIST構造体へのポインタが設定されます。*ppObjListがポイントするメモリは，クラスライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppObjListを指定したメモリの解放によって，構造体のメンバ(*ppObjList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがって，メソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lClassType(入力)

指定されたクラス識別子の要素だけを取得します。指定できる識別子を次に示します。

表12-8　クラス識別子の一覧

クラス識別子 | クラスの種別
DBR_CLASS_CONFIGURATEDREFERENTIALCONTAINER | CdbrConfiguratedReferentialContainerクラス
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_REFERENTIALCONTAINER | CdbrReferentialContainerクラス
DBR_CLASS_RFCT_OR_VTCT | CdbrReferentialContainerクラスとCdbrVersionTraceableContainerクラスのOR条件
DBR_CLASS_VERSIONABLEDOCUMENT | CdbrVersionableDocumentクラス
DBR_CLASS_VERSIONTRACEABLECONTAINER | CdbrVersionTraceableContainerクラス
DBR_CLASS_ALL | すべてのクラス

それぞれのクラスの識別子をOR条件を指定した取得もできます。例えば，CdbrReferentialContainerクラスの要素とCdbrDocumentクラスの要素を取得したい場合は，次のように指定します。

DBR_CLASS_REFERENTIALCONTAINER | DBR_CLASS_DOCUMENT

ただし，CdbrReferentialContainerクラスとCdbrVersionTraceableContainerクラスの要素を取得したい場合は，DBR_CLASS_RFCT_OR_VTCTを指定してください。DBR_CLASS_RFCT_OR_VTCTとほかのクラスのクラス識別子をORで指定することもできます。

すべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。

lLinkPropDefListCount（入力）

pLinkPropDefListの要素数を指定します。0を指定した場合，プロパティを取得しません。負の数を指定した場合は，エラーになります。

pLinkPropDefList（入力）

同時に取得するリンクのプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。リンクのプロパティとして指定できる識別子は，ユーザが定義したプロパティの識別子だけです。

プロパティを取得しない場合はNULLを指定します。なお，lLinkPropDefListCountが正の整数のときにpLinkPropDefListにNULLを指定した場合も，エラーになります。

SDBR_PROPDEF構造体については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppLinkedObjList（出力）

取得した情報を格納するリンク付きオブジェクトリスト構造体である，SDBR_LINKEDOBJLIST構造体へのポインタが設定されます。**ppLinkedObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_LINKEDOBJLIST構造体およびSDBR_LINKEDOBJINFO構造体に設定される内容については，「付録C.1(7)　SDBR_LINKEDOBJLIST構造体（リンク付きオブジェクトリスト構造体）」および「付録C.1(6)　SDBR_LINKEDOBJINFO構造体（リンク付きオブジェクト情報構造体）」を参照してください。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次の値のどれかを設定します。

DMA_LOCK_READ
readロックを設定します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_READ | DBR_RLT_FOR_UPDATE
readロックを設定し，更新・削除用の一覧を取得します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

DMA_LOCK_WRITE | DBR_RLT_FOR_UPDATE
排他的なwriteロックを設定し，更新・削除用の一覧を取得します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrReferentialContainer::GetLinkPropertyValuesメソッド

機能

リンクのプロパティの取得

形式

DmaBoolean CdbrReferentialContainer::GetLinkPropertyValues(
 pDmaString_T       pLinkId,
 DmaInteger32       lLinkPropDefListCount,
 SDBR_PROPDEF*      pLinkPropDefList,
 SDBR_PROPLIST**    ppLinkPropList)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

リンク識別子を指定して，リンクのプロパティを取得します。

引数

pLinkId（入力）

リンク識別子を指定します。

lLinkPropDefListCount（入力）

取得するpLinkPropDefListの要素数を指定します。なお，負の数を指定した場合は，エラーになります。

pLinkPropDefList（入力）

取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

指定できるリンクのプロパティの識別子はユーザが定義したプロパティ識別子だけです。なお，lLinkPropDefListCountが正の整数のときにpLinkPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppLinkPropList（出力）

取得したプロパティリスト構造体である，SDBR_PROPLIST構造体へのポインタを格納する領域を指定します。

*ppLinkPropListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体に設定される内容については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrReferentialContainer::GetLinkPropertyValuesAndLockメソッド

機能

リンクのプロパティの取得と同時に指定したロックの設定

形式

DmaBoolean CdbrReferentialContainer::GetLinkPropertyValuesAndLock(
 pDmaString_T       pLinkId,
 DmaInteger32       lLinkPropDefListCount,
 SDBR_PROPDEF*      pLinkPropDefList,
 SDBR_PROPLIST**    ppLinkPropList,
 DmaInteger32 lLockType = DMA_LOCK_WRITE)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

ロックタイプを明示的に指定し，リンク識別子を指定して，リンクのプロパティを取得するメソッドです。

引数

pLinkId（入力）

リンク識別子を指定します。

lLinkPropDefListCount（入力）

取得するpLinkPropDefListの要素数を指定します。負の数を指定した場合は，エラーになります。

pLinkPropDefList（入力）

取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

指定できるリンクのプロパティ識別子はユーザが定義したプロパティだけです。なお，lLinkPropDefListCountが正の整数のときにpLinkPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容ついては，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppLinkPropList（出力）

取得したプロパティリスト構造体である，SDBR_PROPLIST構造体へのポインタを格納する領域を指定します。

*ppLinkPropListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体に設定される内容については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrReferentialContainer::Linkメソッド

機能

関連づけの設定

形式

// オブジェクトを指定して関連づける場合
DmaBoolean  Link(
 CdbrContainable*      pDbrContainable,
 DmaInteger32          lContainmentType
                        = DBR_CONTAINMENT_REFERENTIAL )

// 関連づけと同時にリンクのプロパティを設定する場合
DmaBoolean  Link(
 CdbrContainable*      pDbrContainable,
 SDBR_PROPLIST*        pPropList,
 ppDmaString_T         ppLinkId,
 DmaInteger32          lContainmentType
                        = DBR_CONTAINMENT_REFERENTIAL )

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

CdbrReferentialContainerオブジェクト自身を上位のオブジェクトとして，CdbrContainableクラスのサブクラスのオブジェクトを下位のオブジェクトとして関連づけを設定するメソッドです。その際，リンクにプロパティを設定することもできます。なお，リンクとは，DMAオブジェクトのDirectContainmentRelationshipオブジェクトおよびReferentialContainmentRelationshipオブジェクトです。

引数

pDbrContainable（入力）

関連づけるContainableオブジェクト（CdbrContainableクラスのサブクラスのオブジェクト）を指定します。

lContainmentType（入力）

関連づけで設定するコンテインメントの種類を指定します。次のどちらかを指定してください。

DBR_CONTAINMENT_DIRECT：
直接型のコンテインメントを設定します。DMAオブジェクトのDirectContainmentRelationshipオブジェクトを使用した関連づけです。
なお，上位のコンテナを下位以下のコンテナの下位のオブジェクトとして関連づけることはできません。

DBR_CONTAINMENT_REFERENTIAL：
参照型のコンテインメントを設定します。DMAオブジェクトのReferentialContainmentRelationshipオブジェクトを使用した関連づけです。

pPropList（入力）

リンクに設定するプロパティのリストを指定します。なお，リンクに値を設定できるプロパティは，ユーザが定義したプロパティだけです。プロパティ識別子には，ユーザが定義したプロパティの識別子を指定してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体に指定する内容については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppLinkId（出力）

リンク識別子へのポインタが設定されます。このリンク識別子は，CdbrReferentialContainer::GetLinkPropertyValuesメソッド，CdbrReferentialContainer::GetLinkPropertyValuesAndLockメソッドおよびCdbrReferentialContainer::PutLinkPropertyValuesメソッドなどによって，リンクのプロパティを参照，設定するときに使用します。また，CdbrReferentialContainer::Unlinkメソッドによってリンクによる関連づけを解除する場合も使用できます。

*ppLinkIdがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_DATATYPE_MISMATCH | プロパティのデータ型に適切ではないメソッドです。 | 正しい型を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrReferentialContainer::LinkAndLockメソッド

機能

関連づけの設定と同時に指定したロックの設定

形式

// オブジェクトを指定して関連づける場合
DmaBoolean  LinkAndLock(
 CdbrContainable*      pDbrContainable,
 DmaInteger32          lContainmentType
                        = DBR_CONTAINMENT_REFERENTIAL,
 DmaInteger32          lLockType = DMA_LOCK_WRITE)

// 関連づけと同時にリンクのプロパティを設定する場合
DmaBoolean  LinkAndLock(
 CdbrContainable*      pDbrContainable,
 SDBR_PROPLIST*        pPropList,
 ppDmaString_T         ppLinkId,
 DmaInteger32          lContainmentType
                        = DBR_CONTAINMENT_REFERENTIAL,
 DmaInteger32          lLockType = DMA_LOCK_WRITE)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

ロックタイプを明示的に指定して，CdbrReferentialContainerオブジェクト自身を上位のオブジェクトとして，CdbrContainableクラスのサブクラスのオブジェクトを下位のオブジェクトとして関連づけを設定するメソッドです。

また，その際，リンクにプロパティを設定することもできます。なお，リンクとは，DMAオブジェクトのDirectContainmentRelationshipオブジェクトおよびReferentialContainmentRelationshipオブジェクトです。

引数

pDbrContainable（入力）

関連づけるContainableオブジェクト（CdbrContainableクラスのサブクラスのオブジェクト）を指定します。

lContainmentType（入力）

関連づけで設定するコンテインメントの種類を指定します。次のどちらかを指定してください。

DBR_CONTAINMENT_DIRECT：
直接型のコンテインメントを設定します。DMAオブジェクトのDirectContainmentRelationshipオブジェクトを使用した関連づけです。

DBR_CONTAINMENT_REFERENTIAL：
参照型のコンテインメントを設定します。DMAオブジェクトのReferentialContainmentRelationshipオブジェクトを使用した関連づけです。

なお，上位のコンテナを下位以下のコンテナの下位のオブジェクトとして関連づけることはできません。

pPropList（入力）

リンクに設定するプロパティのリストを指定します。なお，リンクに値を設定できるプロパティは，ユーザが定義したプロパティだけです。プロパティ識別子には，ユーザが定義したプロパティの識別子を指定してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体に指定する内容については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppLinkId（出力）

リンク識別子へのポインタが設定されます。このリンク識別子は，CdbrReferentialContainer::GetLinkPropertyValuesメソッド，CdbrReferentialContainer::GetLinkPropertyValuesAndLockメソッドおよびCdbrReferentialContainer::PutLinkPropertyValuesメソッドなどによって，リンクのプロパティを参照，設定するときに使用します。また，CdbrReferentialContainer::Unlinkメソッドによってリンクによる関連づけを解除する場合も使用できます。

*ppLinkIdがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_DATATYPE_MISMATCH | プロパティのデータ型に適切ではないメソッドです。 | 正しい型を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrReferentialContainer::PutLinkPropertyValuesメソッド

機能

リンクのプロパティの設定

形式

DmaBoolean CdbrReferentialContainer::PutLinkPropertyValues(
 pDmaString_T     pLinkId,
 SDBR_PROPLIST*   pLinkPropList)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

リンク識別子を指定してプロパティを設定するメソッドです。

引数

pLinkId（入力）

リンク識別子を指定します。

pLinkPropList（入力）

リンクに設定するプロパティ情報をプロパティリスト構造体である，SDBR_PROPLIST構造体として指定します。

なお，リンクに値を設定できるプロパティは，ユーザが定義したプロパティだけです。プロパティ識別子には，ユーザが定義したプロパティの識別子を指定してください。同じプロパティ識別子を指定したプロパティ構造体を複数指定した場合は，エラーになります。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_DATATYPE_MISMATCH | プロパティのデータ型に適切ではないメソッドです。 | 正しい型を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrReferentialContainer::Unlinkメソッド

機能

関連づけの解除

形式

// Containableオブジェクトを指定して解除する場合
DmaBoolean Unlink(
 CdbrContainable*      pDbrContainable)

// リンク識別子を指定して解除する場合
DmaBoolean Unlink(
 pDmaString_T      pLinkId)

詳細

CdbrReferentialContainerオブジェクトが包含しているContainableオブジェクト（CdbrContainableクラスのサブクラスのオブジェクト）を指定して，CdbrReferentialContainerオブジェクトとの関連づけを解除するメソッドです。また，リンク識別子を指定して関連づけを解除することもできます。

指定したオブジェクトと関連づけがされていない場合は，何もしないで正常終了します。

なお，包含しているContainableオブジェクトやそのリンク識別子は，CdbrReferentialContainer::GetContainableListメソッドまたはCdbrReferentialContainer::GetContainableListAndLockメソッドによって取得できます。

引数

pDbrContainable（入力）

関連づけを解除するオブジェクトを指定します。CdbrContainableクラスのサブクラスのオブジェクトを指定します。

pLinkId（入力）

関連づけを解除するオブジェクトのリンク識別子を指定します。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrReferentialContainer::UnlinkAndLockメソッド

機能

関連づけの解除と同時に指定したロックの設定

形式

// Containableオブジェクトを指定して解除する場合
DmaBoolean UnlinkAndLock(
 CdbrContainable*      pDbrContainable,
 DmaInteger32          lLockType = DMA_LOCK_WRITE)

// リンク識別子を指定して解除する場合
DmaBoolean UnlinkAndLock(
 DmaInteger32*         pLinkId,
 DmaInteger32          lLockType = DMA_LOCK_WRITE)

詳細

ロックタイプを明示的に指定し，Containableオブジェクト（CdbrContainableクラスのサブクラスのオブジェクト）を指定して，CdbrReferentialContainerオブジェクトとの関連づけを解除するメソッドです。

また，リンク識別子を指定して関連づけを解除することもできます。

指定したオブジェクトと関連づけがされていない場合は，何もしないで正常終了します。

なお，包含しているContainableオブジェクトやそのリンク識別子は，CdbrReferentialContainer::GetContainableListメソッドまたはCdbrReferentialContainer::GetContainableListAndLockメソッドによって取得できます。

引数

pDbrContainable（入力）

関連づけを解除するオブジェクトを指定します。CdbrContainableクラスのサブクラスのオブジェクトを指定します。

pLinkId（入力）

関連づけを解除するオブジェクトのリンク識別子を指定します。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

13.　CdbrSessionクラス（セッションを確立するクラス）

クライアント実行環境と文書空間とのセッションを確立する機能を提供するクラスです。また，セッションを確立した時，与えられたユーザ名，パスワードでログイン管理します。

CdbrReferentialContainerクラス，CdbrConfiguratedReferentialContainerクラス，CdbrVersionableDocumentクラスなどの機能を使用するときにCdbrSessionクラスのポインタを設定することによって，これらのクラスのインスタンスは接続されたセッションを使用することができます。

＜この章の構成＞

CdbrSessionクラスの詳細

CdbrSession::~CdbrSessionメソッド

CdbrSession::Beginメソッド

CdbrSession::CdbrSessionメソッド

CdbrSession::Commitメソッド

CdbrSession::Connectメソッド

CdbrSession::Disconnectメソッド

CdbrSession::GetClassTypeメソッド

CdbrSession::GetDocSpaceCharacterSetメソッド

CdbrSession::GetLastDetailErrorメソッド

CdbrSession::GetReferencePathメソッド

CdbrSession::GetUserInfoメソッド

CdbrSession::OrbComponentShutdownメソッド

CdbrSession::OrbComponentStartメソッド

CdbrSession::Rollbackメソッド

CdbrSession::SetReferencePathメソッド

CdbrSessionクラスの詳細

スーパークラス

プロパティ一覧

なし

メソッド一覧

CdbrCoreクラスから継承されるメソッド

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

これらのメソッドの詳細については，「6.　CdbrCoreクラス（エラー情報を取得するクラス）」を参照してください。

CdbrSessionクラスで導入されるメソッド

メソッド | 機能
~CdbrSession | デストラクタ
Begin | トランザクションの開始
CdbrSession | コンストラクタ
Commit | 永続オブジェクトの確定
Connect | DocSpaceとの接続
Disconnect | セッションの切断
GetClassType | 指定したOIIDのクラスの判定
GetDocSpaceCharacterSet | 接続する文書空間の文字コード種別の取得
GetLastDetailError | 詳細エラー情報の取得
GetReferencePath | コンテント格納先ベースパスの取得
GetUserInfo | ユーザ情報の取得
OrbComponentShutdown | TPBrokerのORBコンポーネントの終了
OrbComponentStart | TPBrokerのORBコンポーネントの開始
Rollback | 最後にCdbrSession::Commitメソッドがコールされた状態まで戻す
SetReferencePath | コンテント格納先ベースパスの設定

以降，CdbrSessionクラスで導入されるメソッドについて説明します。

CdbrSession::~CdbrSessionメソッド

機能

デストラクタ

形式

CdbrSession::~CdbrSession()

詳細

CdbrSessionオブジェクトのデストラクタです。

セッションが接続されている場合は，CdbrSession::Disconnectメソッドで切断してから，オブジェクトを破棄してください。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrSession::Beginメソッド

機能

トランザクションの開始

形式

DmaBoolean CdbrSession::Begin()

詳細

トランザクションを開始するメソッドです。CdbrSession::Connectメソッドで文書空間と接続したあとでこのメソッドをコールします。永続オブジェクトへのアクセス，作成，変更，削除，および問い合わせは，トランザクション中に実行する必要があります。

引数

なし

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_ILLEGAL_OPERATION | DMA規約で禁止されている操作です。 | この操作は実行できません。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの倫理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrSession::CdbrSessionメソッド

機能

コンストラクタ

形式

CdbrSession::CdbrSession()

詳細

CdbrSessionオブジェクトのコンストラクタです。

このオブジェクトを作成しただけでは，セッションは接続されません。セッションを接続するためには，CdbrSession::Connectメソッドをコールする必要があります。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrSession::Commitメソッド

機能

永続オブジェクトの確定

形式

DmaBoolean CdbrSession::Commit()

詳細

更新したオブジェクトを確定するメソッドです。

CdbrSession::Rollbackメソッドをコールして回復する場合は，最後にCdbrSession::Commitメソッドをコールした時点まで回復されます。

引数

なし

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_ILLEGAL_OPERATION | DMA規約で禁止されている操作です。 | この操作は実行できません。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrSession::Connectメソッド

機能

DocSpaceとの接続

形式

// 接続先の実行環境識別子を指定しない場合
DmaBoolean CdbrSession::Connect(
 pDmaId        pDocSpaceID,
 pDmaString_T  username,
 pDmaString_T  password
)

// 接続先の実行環境識別子を指定する場合
DmaBoolean CdbrSession::Connect(
 pDmaId        pDocSpaceID,
 pDmaString_T  username,
 pDmaString_T  password,
 DmaInteger32  lServerEnvId
)

詳細

pDocSpaceIdに指定した文書空間に接続するメソッドです。一つの文書空間に複数の実行環境を構築している場合は，接続先の実行環境を選択できます。

タイムアウトによってセッションが切断されたあとでCdbrSession::Connectメソッドを実行すると，major_codeがERR_DMA，minor_codeがDMARC_NETWORK_UNAVAILABLEのエラーになります。また，CdbrSession::Connectメソッド以外のメソッドをコールすると，major_codeがERR_DBR，minor_codeがERR_SESSION_NOT_CONNECTのエラーになります。これらのエラーになったあと，切断されたCdbrSessionオブジェクトを再接続する場合は，CdbrSession::Disconnectメソッドを実行してからCdbrSession::Connectメソッドを実行してください。

引数

pDocSpaceId（入力）

文書空間識別子を指定します。

pUserName（入力）

ユーザ名を指定します。

pPassword（入力）

パスワードを指定します。

lServerEnvId（入力）

接続先の実行環境識別子を指定します。

一つの文書空間に複数の実行環境を作成して同時に稼働させている場合に，クライアントでどの実行環境下のサーバに接続するかを選択します。

指定できる値は，0～254です。

指定できる値以外を指定した場合は，接続先の実行環境識別子を指定しない場合の形式と同じ動作になります。

なお，接続先の選択方法には，接続先の実行環境識別子を環境変数DBR_CONNECTSV_ENVIDに指定する方法もあります。環境変数の設定については，マニュアル「DocumentBroker Version 3　クラスライブラリ　C++　解説」を参照してください。

クライアントで接続先を選択する場合は，接続先のDocumentSpace構成定義ファイルのSelectServerInMultiServerエントリにYesを指定して起動しておく必要があります。指定していない場合，major_codeがERR_DMA，minor_codeがDMARC_NETWORK_UNAVAILABLEのエラーになります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DBR
ERR_NO_SERVICE
使用できるサービスプロセスがありません。
時間を置いて再度実行してください。

ERR_DBR
ERR_NOTSUPPORT_CLIENT_VERSION
互換性のないサーバに接続しようとしました。
サーバのバージョンに対応したクライアントライブラリを利用してください。

ERR_DBR
ERR_SESSION_ALREADY_CONNECTED
セッションがすでに接続されています。
処理を継続してください。または，いったん切断してから，再度このメソッドをコールしてください。

ERR_DBR
ERR_SESSION_OVERFLOW
制限を超えてConnectしようとしました。
時間を置いて，Connectユーザ数が減ったあと，再度実行してください。または，DocumentSpace構成定義ファイルのSessionMaxエントリを見直してください。

ERR_DMA
DMARC_BAD_DOC_SPACE
指定された識別子の文書空間は存在しません。
正しい文書空間を指定してください。

ERR_DMA
DMARC_FAILED
DocumentSpace構成定義ファイルのProcessOrbBoaOptionエントリに，-OAthreadMaxオプションを129以上の値で指定している環境で，同時に129以上のクライアントからCdbrSession::Connectメソッドが発行されました。
時間を置いて再度実行するか，-OAthreadMaxオプションの値を128以下にしてください。

ERR_DMA
DMARC_NETWORK_ERROR
ネットワーク環境でエラーが発生しました。
ネットワーク環境を確認してください。

ERR_DMA
DMARC_NETWORK_UNAVAILABLE
この操作を実行するために必要なネットワークが利用できません。

ネットワーク環境を確認してください。

クライアント側で接続するDocument Brokerサーバを選択している場合は，接続先のDocument Brokerサーバのdocspace.iniの[Entry0001]セクションに「SelectServerInMultiServer=Yes」の定義があるか確認してください。クライアント側で接続するDocumentBrokerサーバを選択していない場合は，「SelectServerInMultiServer=No」と定義しているか確認してください。

DocumentBrokerサーバが起動しているか確認してください。

EDMRefresherコマンドが実行中の場合は，コマンド終了後，再度実行してください。

ERR_DMA
DMARC_LOST_CONNECTION
現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。
文書空間に再接続してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NOT_AUTHENTICATED
ユーザは認証されていません。
正しいユーザIDおよびパスワードを指定してください。

ERR_DMA
DMARC_UNEXPECTED
予期しないエラーが発生しました。
処理を終了してください。

CdbrSession::Disconnectメソッド

機能

セッションの切断

形式

DmaBoolean CdbrSession::Disconnect()

詳細

セッションを切断するメソッドです。接続していないオブジェクトに対してこのメソッドをコールした場合は，エラーになります。

引数

なし

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrSession::GetClassTypeメソッド

機能

指定したOIIDのクラスの判定

形式

DmaBoolean CdbrSession::GetClassType(
 pDmaString_T   pOIID,
 pDmaInteger32  plClassType )

詳細

オブジェクトのOIIDを指定して，クラスライブラリのクラスを判定するメソッドです。

オブジェクトを削除するメソッドと同時に実行する場合の注意

RemoveObjectメソッドやDeleteVersionメソッドなどのオブジェクトを削除するメソッドと同時に実行する場合，次の点に注意してください。

オブジェクトを削除するメソッドを実行してそのトランザクションが完了する前に，削除したオブジェクトに対しこのメソッドを実行すると，major_codeとしてERR_DMA，minor_codeとしてDMARC_NOT_FOUNDが返却されます。

引数

pOIID（入力）

オブジェクトのOIIDを指定します。

plClassType（出力）

クラスライブラリのクラス識別子が設定されます。

設定されるクラス識別子とクラスライブラリのクラスの対応を次に示します。

表13-1　クラス識別子とクラスライブラリのクラスの対応

クラス識別子 | クラスライブラリのクラス
DBR_CLASS_CONFIGURATEDREFERENTIALCONTAINER | CdbrConfiguratedReferentialContainerクラス
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_INDEPENDENTPERSISTENCE | CdbrIndependentPersistenceクラス
DBR_CLASS_PUBLICACL | CdbrPublicACLクラス
DBR_CLASS_REFERENTIALCONTAINER | CdbrReferentialContainerクラス
DBR_CLASS_UNKNOWN | クラスの種別が不明
DBR_CLASS_VERSIONABLEDOCUMENT | CdbrVersionableDocumentクラス
DBR_CLASS_VERSIONTRACEABLECONTAINER | CdbrVersionTraceableContainerクラス

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DMA | DMARC_BAD_OIID | 引数で指定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrSession::GetDocSpaceCharacterSetメソッド

機能

接続する文書空間の文字コード種別の取得

形式

DmaBoolean GetDocSpaceCharacterSet (
 pDmaInteger32   plDocSpaceCharacterSet )

詳細

セッションが接続している文書空間で使用している文字コード種別を取得するメソッドです。

一つのユーザプログラムで文字コード種別の異なる複数のDocumentBrokerサーバに接続する場合に，このメソッドをコールすることで動的に接続先のDocumentBrokerサーバの文字コード種別に合わせた処理の分岐が可能となります。

引数

plDocSpaceCharacterSet（出力）

セッションが接続している文書空間の文字コード種別を格納する領域を指定します。NULLを指定するとDMARC_BAD_PARAMETERのエラーになります。

正常終了すると次のいずれかの値になります。

接続先文書空間の文字コード種別がSJISの場合
DBR_DOCSPACE_CHARACTERSET_SJIS

接続先文書空間の文字コード種別がUTF-8の場合
DBR_DOCSPACE_ CHARACTERSET_UTF8

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrSession::GetLastDetailErrorメソッド

機能

詳細エラー情報の取得

形式

void GetLastDetailError(
 ppDmaString_T    ppDetailErrorMessage)

詳細

エラーが発生した場合に，詳細なエラーメッセージを取得するメソッドです。

エラーになったメソッドの情報と，CdbrCore::GetLastErrorメソッドで得たmajor_codeおよびminor_codeの情報に加えて，このメソッドをコールしてさらに詳しい情報を得ることで，アプリケーション開発でのデバッグ時や実行時のエラーに適切に対処できます。

このメソッドによって取得できる詳細なエラーメッセージについては，マニュアル「DocumentBroker Version 3　メッセージ」を参照してください。

このメソッドはCdbrCore::GetLastErrorメソッドをコールしたあとで，必要に応じてコールしてください。エラーが発生していない場合にはコールしないでください。

なお，このメソッドによって取得できるメッセージは，環境変数DBR_DETAIL_ERRORLOGをONにしている場合に，環境変数DBR_DETAIL_ERRORLOG_DIRで指定したパスのファイルに出力されるログメッセージと同じものです。

引数

ppDetailErrorMessage（出力）

詳細エラーメッセージが設定されます。該当するメッセージが存在しない場合は，NULLが設定されます。

メッセージの内容については，マニュアル「DocumentBroker Version 3　メッセージ」を参照してください。

なお，ppDetailErrorMessageの領域は，dbrDelete関数を使ってユーザプログラムで解放してください。

戻り値

なし

戻り値の詳細

なし

CdbrSession::GetReferencePathメソッド

機能

コンテント格納先ベースパスの取得

形式

DmaBoolean GetReferencePath(
 ppDmaString_T     ppTargetContentPath)

詳細

リファレンスファイル管理機能を使用して，コンテントを任意の領域に格納する場合，CdbrSession::SetReferencePathメソッドで設定したコンテント格納先ベースパスを取得します。

この文字列領域は，オブジェクト内に確保されて，オブジェクトを削除するときに同時に削除されます。したがって，メソッドをコールしたユーザが削除する必要はありません。オブジェクトの削除後も，この値を使用したい場合は，内容をほかの領域にコピーしてください。

引数

ppTargetContentPath（出力）

リファレンスファイル管理機能でコンテントの格納先として設定したベースパスへのポインタを格納する領域を指定します。NULLを指定した場合，DMARC_BAD_PARAMETERのエラーになります。値が設定されていない場合は，NULLが返却されます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrSession::GetUserInfoメソッド

機能

ユーザ情報の取得

形式

DmaBoolean GetUserInfo(
 DmaInteger32       lPropDefListCount,
 SDBR_PROPDEF*      pPropDefList,
 SDBR_PROPLIST**    ppPropList)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

セッションが保持するユーザに関する情報を一括取得するメソッドです。

情報は次に示すプロパティとして取得できます。pPropDefListにプロパティの識別子を指定すると，ppPropListに値が設定されます。

なお，アクセス制御機能に対応していない文書空間でこのメソッドをコールするとエラーになります。

表13-2　取得できるプロパティ

プロパティ名 | プロパティ識別子 | データ型 | 基本単位 | 説明
UserId | dbrProp_UserId | String | Scalar | ユーザ識別子
GroupCount | dbrProp_GroupCount | Integer32 | Scalar | グループ数
GroupList | dbrProp_GroupList | String※¹ | Enumeration | グループ識別子の配列
UserPrivilege | dbrProp_UserPrivilege | Integer32 | Scalar | 文書空間に対するユーザの特権※²
UserPermission | dbrProp_UserPermission | Integer32 | Scalar | ユーザ権限※³

注※1

String型でEnumeration型のデータは，SDBR_PROP構造体のlCountに要素数，共用体uniValueのppStringに文字列ポインタ配列が設定されます。

注※2

ユーザの特権は，次に示す定数で返却されます。

表13-3　ユーザ情報に設定された特権を表す定数

定　数 | 意　味
DBR_PRIV_SECURITY_ADMINISTRATOR | セキュリティ管理者である
DBR_PRIV_NONE | セキュリティ管理者ではない

注※3

ユーザ権限を表すパーミッションは次に示す定数の論理和で返却されます。

表13-4　ユーザ権限を表すパーミッション定数

定　数 | 意　味
DBR_PERM_CREATE | オブジェクト作成権
DBR_PERM_PRIM_READ_PROPS | 基本プロパティ参照権
DBR_PERM_PRIM_WRITE_PROPS | 基本プロパティ更新権
DBR_PERM_PRIM_READ_CONTENTS | 基本コンテント参照権
DBR_PERM_PRIM_WRITE_CONTENTS | 基本コンテント更新権
DBR_PERM_PRIM_LINK | 基本リンク権
DBR_PERM_PRIM_VERSION | 基本バージョン管理権
DBR_PERM_PRIM_DELETE | 基本オブジェクト削除権

引数

lPropDefListCount（入力）

pPropDefListに指定する配列の要素数を指定します。0以下を指定するとエラーになります。

pPropDefList（入力）

取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。NULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppPropList（出力）

取得したプロパティ値を格納した構造体である，SDBR_PROPLIST構造体へのポインタが設定されます。ポインタを格納する領域を指定してください。NULLを指定した場合は，エラーになります。

*ppPropListがポイントする領域は，ライブラリが新たに確保したものです。不要になった場合，この領域はメソッドをコールした側がdbrDelete関数によって解放してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体に設定される内容については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御機能が未サポートです。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrSession::OrbComponentShutdownメソッド

機能

TPBrokerのORBコンポーネントの終了

形式

DmaBoolean CdbrSession::OrbComponentShutdown()

詳細

TPBrokerのORBコンポーネントを終了するメソッドです。

このメソッドは，DocumentBrokerのクラスライブラリを使用したWebアプリケーション（J2EEアプリケーションの場合）を終了するときに必ずコールする必要があります。

また，同様にWebアプリケーション（J2EEアプリケーションの場合）を開始するときにCdbrSession::OrbComponentStartメソッドをコールする必要があります。

メソッド実行時の注意事項

このメソッドとCdbrSession::OrbComponentStartメソッドは，必ず対でコールしてください。対でコールしないと，Webアプリケーションの停止時にJ2EEサーバが停止しない場合があります。

このメソッドのコール回数が，CdbrSession::OrbComponentStartメソッドのコール回数より多い場合はエラーになります。このとき，major_codeとしてERR_DMA，minor_codeとしてDMARC_FAILEDが返却されます。

このメソッドは，マルチスレッド対応のクライアントアプリケーションを作成するときだけ使用できます。シングルスレッド対応のクライアントアプリケーションからコールされた場合はエラーになります。このとき，major_codeとしてERR_DMA，minor_codeとしてDMARC_NOT_SUPPORTEDが返却されます。

引数

なし

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_SUPPORTED | シングルスレッド対応のクライアントアプリケーションから発行されました。 | マルチスレッド対応のクライアントアプリケーションから発行してください。
ERR_DMA | DMARC_NETWORK_UNAVAILABLE | この操作を実行するために必要なネットワークが利用できません。 | ネットワーク環境を確認してください。
ERR_DMA | DMARC_FAILED | メソッド発行順序が不正です。 | メソッド発行順序を見直してください。

CdbrSession::OrbComponentStartメソッド

機能

TPBrokerのORBコンポーネントの開始

形式

DmaBoolean CdbrSession::OrbComponentStart()

詳細

TPBrokerのORBコンポーネントを開始するメソッドです。

このメソッドは，DocumentBrokerのクラスライブラリを使用したWebアプリケーション（J2EEアプリケーションの場合）を開始するときに必ずコールする必要があります。

また，同様にWebアプリケーション（J2EEアプリケーションの場合）を終了するときにCdbrSession::OrbComponentShutdownメソッドをコールする必要があります。

メソッド実行時の注意事項

このメソッドとCdbrSession::OrbComponentShutdownメソッドは，必ず対でコールしてください。対でコールしないと，Webアプリケーションの停止時にJ2EEサーバが停止しない場合があります。

このメソッドのコール回数が，CdbrSession::OrbComponentShutdownメソッドのコール回数より少ない場合は，CdbrSession::OrbComponentShutdownメソッドコール時にエラーになります。このとき，major_codeとしてERR_DMA，minor_codeとしてDMARC_FAILEDが返却されます。

このメソッドは，CdbrSession::OrbComponentShutdownメソッドをコールしたあとは，実行できません。実行した場合，major_codeとしてERR_DMA，minor_codeとしてDMARC_FAILEDが返却されます。

このメソッドは，マルチスレッド対応のクライアントアプリケーションを作成するときだけ使用できます。シングルスレッド対応のクライアントアプリケーションからコールされた場合はエラーになります。このとき，major_codeとしてERR_DMA，minor_codeとしてDMARC_NOT_SUPPORTEDが返却されます。

引数

なし

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_SUPPORTED | シングルスレッド対応のクライアントアプリケーションから発行されました。 | マルチスレッド対応のクライアントアプリケーションから発行してください。
ERR_DMA | DMARC_NETWORK_UNAVAILABLE | この操作を実行するために必要なネットワークが利用できません。 | ネットワーク環境を確認してください。
ERR_DMA | DMARC_FAILED | メソッド発行順序が不正です。 | メソッド発行順序を見直してください。

CdbrSession::Rollbackメソッド

機能

最後にCdbrSession::Commitメソッドがコールされた状態まで戻す

形式

DmaBoolean CdbrSession::Rollback()

詳細

最後にCdbrSession::Commitメソッドをコールした時点以降の更新を，無効にするメソッドです。

引数

なし

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_CONSTRAINT_VIOLATED | 制約違反の操作です。 | この操作は実行できません。
ERR_DMA | DMARC_ILLEGAL_OPERATION | DMA規約で禁止されている操作です。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrSession::SetReferencePathメソッド

機能

コンテント格納先ベースパスの設定

形式

DmaBoolean SetReferencePath(
 pDmaString_T      pTargetContentPath)

詳細

リファレンスファイル管理機能を使用して，コンテントを任意の領域に格納する場合に，コンテント格納先ベースパスを指定します。

コンテントロケーションを相対パスで管理するオブジェクトに対して，このメソッドでコンテント格納先ベースパスが設定されていない場合，エラーになります。

コンテント格納先ベースパスとSDBR_REFERENCE_PATHINFO構造体のメンバpTargetPathで指定するコンテント格納先パスは，結合して絶対パスとして使用されます。このとき，DocumentBrokerがパスの区切り文字として"/"（半角）を設定します。ただし，ユーザがコンテント格納先ベースパスの末尾またはpTargetPathで指定するコンテント格納先パスの先頭にパスの区切り文字を指定している場合は，パスの区切り文字は設定されません。

引数

pTargetContentPath（入力）

リファレンスファイル管理機能でコンテントの格納先となるベースパスを指定します。

この引数は，DocumentBrokerサーバがWindowsの場合UNC形式のパスで指定することもできます。ただし，設定するコンテント格納先ベースパスにコンピュータ名またはIPアドレスだけを指定することはできません。

次に示す場合は，DMARC_BAD_PARAMETERのエラーになります。

コンピュータ名またはIPアドレスだけを指定した場合

AIXのDocumentBrokerサーバに対してUNC形式で指定した場合

設定した値を削除する場合は，NULLを指定します。

この引数に指定した文字列長が，Windowsの場合260バイト以上，AIXの場合1023バイト以上であるとDMARC_BAD_PARAMETERのエラーになります。また，指定するパスの中に，カレントディレクトリの一つ上位のディレクトリを示す".."は指定できません。指定した場合，DMARC_BAD_PARAMETERのエラーになります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_OUTTRANSACTION | トランザクション内でメソッドが呼ばれました。 | CdbrSession::Begin()メソッドを呼び出す前に，この操作を実行してください。

14.　CdbrVariableArrayクラス（可変長配列を扱うクラス）

同じ型の複数の要素から構成される可変長の配列を扱う機能を提供するクラスです。

主に，VariableArray型のプロパティの値を参照，設定するときに使用します。

＜この章の構成＞

CdbrVariableArrayクラスの詳細

CdbrVariableArray::~CdbrVariableArrayメソッド

CdbrVariableArray::Addメソッド

CdbrVariableArray::CdbrVariableArrayメソッド

CdbrVariableArray::Deleteメソッド

CdbrVariableArray::GetCountメソッド

CdbrVariableArray::GetDataTypeメソッド

CdbrVariableArray::GetValueメソッド

CdbrVariableArray::Resizeメソッド

CdbrVariableArray::SetValueメソッド

CdbrVariableArrayクラスの詳細

スーパークラス

なし

プロパティ一覧

なし

メソッド一覧

CdbrVariableArrayクラスで導入されるメソッド

メソッド | 機能
~CdbrVariableArray | デストラクタ
Add | 要素の追加
CdbrVariableArray | コンストラクタ
Delete | 要素の削除
GetCount | 要素数の取得
GetDataType | 要素の型の取得
GetValue | 値の取得
Resize | 要素数の変更
SetValue | 値の設定

以降，CdbrVariableArrayクラスで導入されるメソッドについて説明します。

CdbrVariableArray::~CdbrVariableArrayメソッド

機能

デストラクタ

形式

~CdbrVariableArray()

詳細

CdbrVariableArrayオブジェクトのデストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrVariableArray::Addメソッド

機能

要素の追加

形式

//Boolean型の場合
DmaBoolean Add(DmaBoolean      bNewValue)
//ID型の場合
DmaBoolean Add(DmaId&          rNewValue)
//Integer32型の場合
DmaBoolean Add(DmaInteger32    lNewValue)
//String型の場合
DmaBoolean Add(pDmaString_T    pNewValue)
//複合データの場合
DmaBoolean Add(CdbrCompound&   rNewValue)

詳細

可変長配列の配列の末尾に要素を追加して，bNewValue，lNewValue，pNewValueまたはrNewValueに指定した値を設定するメソッドです。

引数

bNewValue，lNewValue，pNewValue，rNewValue（入力）

追加する要素に設定する値を指定します。指定した値の型と要素の型が一致しない場合，エラーになります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

なし

CdbrVariableArray::CdbrVariableArrayメソッド

機能

コンストラクタ

形式

CdbrVariableArray(
   DmaInteger32  lDataType )

詳細

CdbrVariableArrayオブジェクトのコンストラクタです。

lDataTypeに指定した型の要素を持つ可変長配列を作成します。指定した型は変更できません。

作成した直後の，配列の要素数は0です。配列の要素数はResizeメソッドで変更してください。

要素の型が複合データの場合，一つの要素に対して複数の型のデータを格納することができます。

可変長配列クラスは，主にVariableArray型のプロパティの参照および設定に使用します。その場合に使用できる型は，DBR_DATATYPE_COMPOUND（複合データ）だけです。クラスライブラリでは，VariableArray型のプロパティの要素を，複合データとして参照および設定します。

引数

lDataType（入力）

要素の型を指定します。指定できる値は次のとおりです。

DMA_DATATYPE_BOOLEAN：Boolean型

DMA_DATATYPE_ID：ID型

DMA_DATATYPE_INTEGER32：Integer32型

DMA_DATATYPE_STRING：String型

DBR_DATATYPE_COMPOUND：複合データ

戻り値

なし

戻り値の詳細

なし

CdbrVariableArray::Deleteメソッド

機能

要素の削除

形式

DmaBoolean Delete(
   DmaInteger32  lIndex)

詳細

lIndexに指定した位置の要素を削除するメソッドです。指定位置以降の要素は，削除後，前に詰まります。

引数

lIndex（入力）

削除する要素の位置を，0～（要素数-1）の値で指定します。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

なし

CdbrVariableArray::GetCountメソッド

機能

要素数の取得

形式

DmaInteger32 GetCount()

詳細

要素の個数を取得するメソッドです。要素がまったくない場合および要素の個数が算出できない場合は，戻り値に0が返ります。

引数

なし

戻り値

配列の要素数が返ります。

戻り値の詳細

なし

CdbrVariableArray::GetDataTypeメソッド

機能

要素の型の取得

形式

DmaInteger32 GetDataType()

詳細

要素の型を取得するメソッドです。なお，CdbrVariableArrayクラスで作成した可変長配列のすべての要素の型は同じです。

引数

なし

戻り値

取得した要素の型として，次のどれかが返ります。

DMA_DATATYPE_BOOLEAN：Boolean型

DMA_DATATYPE_ID：ID型

DMA_DATATYPE_INTEGER32：Integer32型

DMA_DATATYPE_STRING：String型

DBR_DATATYPE_COMPOUND：複合データ

0：未設定。

戻り値の詳細

なし

CdbrVariableArray::GetValueメソッド

機能

値の取得

形式

// Boolean型の場合
DmaBoolean GetValue(DmaIndex32 iIndex, pDmaBoolean    pbRetValue)
// ID型の場合
DmaBoolean GetValue(DmaIndex32 iIndex, pDmaId        pRetValue)
// Integer32型の場合
DmaBoolean GetValue(DmaIndex32 iIndex, pDmaInteger32 plRetValue)
// String型の場合
DmaBoolean GetValue(DmaIndex32 iIndex, ppDmaString_T ppRetValue)
// 複合データの場合
DmaBoolean GetValue(DmaIndex32 iIndex, CdbrCompound* pRetValue)

詳細

iIndexに指定した位置の要素の値を取得するメソッドです。指定した要素が存在し，かつ値が設定されていない場合は，戻り値にDMA_UNKNOWNが返ります。

引数

iIndex（入力）

取得する要素の位置を，0～（要素数-1）の値で指定します。範囲外の値を指定した場合はエラーになります。

pbRetValue，pRetValue，plRetValue，ppRetValue（出力）

取得する値を格納する領域のアドレスを指定します。指定した領域の型と要素の型が異なる場合，エラーになります。

String型の場合，使用後にdbrDelete関数によって解放してください。

戻り値

DMA_TRUE 　正常終了（設定値あり）

DMA_UNKNOWN　正常終了（設定値なし）

DMA_FALSE 　異常終了

戻り値の詳細

なし

CdbrVariableArray::Resizeメソッド

機能

要素数の変更

形式

DmaBoolean Resize(
   DmaInteger32     lSize)

詳細

可変長配列の要素数を変更するメソッドです。

lSizeに指定した要素数が現在の要素数より大きい場合，差分の要素が末尾に追加されます。追加された要素の値は空（未設定）です。

指定した要素数が現在の要素数より小さい場合，差分の要素が末尾から削除されます。

0未満の値を指定した場合はエラーになります。

要素数が増減しても，各要素のインデクスは変わりません。

引数

lSize（入力）

変更後の要素数を指定します。0以上の値で指定します。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

なし

CdbrVariableArray::SetValueメソッド

機能

値の設定

形式

//Boolean型の場合
DmaBoolean SetValue(DmaIndex32 iIndex, DmaBoolean    bNewValue)
//ID型の場合
DmaBoolean SetValue(DmaIndex32 iIndex, DmaId&        rNewValue)
//Integer32型の場合
DmaBoolean SetValue(DmaIndex32 iIndex, DmaInteger32  lNewValue)
//String型の場合
DmaBoolean SetValue(DmaIndex32 iIndex, pDmaString_T  pNewValue)
//複合データの場合
DmaBoolean SetValue(DmaIndex32 iIndex, CdbrCompound& rNewValue)

詳細

iIndexに指定した位置の要素に値を設定します。

引数

iIndex（入力）

設定する要素の位置を，0～（要素数-1）の値で指定します。範囲外の値を指定した場合，エラーになります。

bNewValue，lNewValue，pNewValue，rNewValue（入力）

設定する値を指定します。指定した値の型と要素の型が一致しない場合はエラーになります。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

なし

15.　CdbrVersionableクラス（バージョン管理機能を提供するクラス）

バージョン管理機能を提供するクラスです。

バージョン管理の対象になるオブジェクトを表す抽象クラスで，このクラス単独のインスタンスは作成しません。

＜この章の構成＞

CdbrVersionableクラスの詳細

CdbrVersionable::~CdbrVersionableメソッド

CdbrVersionable::BindPublicACLメソッド

CdbrVersionable::CdbrVersionableメソッド

CdbrVersionable::DeleteVersionメソッド

CdbrVersionable::GetPropertyValuesメソッド

CdbrVersionable::GetPropertyValuesAndLockメソッド

CdbrVersionable::GetPublicACLListメソッド

CdbrVersionable::GetPublicACLListAndLockメソッド

CdbrVersionable::GetReservationStatusメソッド

CdbrVersionable::GetReservationStatusAndLockメソッド

CdbrVersionable::GetVersionListメソッド

CdbrVersionable::GetVersionListAndLockメソッド

CdbrVersionable::PutPropertyValuesメソッド

CdbrVersionable::UnbindPublicACLメソッド

CdbrVersionable::VersionCheckInメソッド

CdbrVersionable::VersionCheckOutメソッド

CdbrVersionable::VersionRevokeメソッド

CdbrVersionableクラスの詳細

スーパークラス

プロパティ一覧

プロパティの一覧を次に示します。

表15-1　CdbrVersionableクラスのプロパティ

プロパティ名 | プロパティ識別子 | データ型 | 読み取り専用
OIID | dmaProp_OIID | String型 | ○
ParentCount | dbrProp_ParentCount | Integer32型 | ○
ContainersCount | dbrProp_ContainersCount | Integer32型 | ○
ContainersCountVT | dbrProp_ContainersCountVT | Integer32型 | ○
VersionsCount | dbrProp_VersionsCount | Integer32型 | ○
CurrentVersion | dbrProp_CurrentVersion | String型 | ○

アクセス制御機能を使用している場合は，次のクラスライブラリの固有のプロパティが追加されます。

表15-2　CdbrVersionableクラスのプロパティ（アクセス制御機能を使用する場合に追加されるクラスライブラリ固有のプロパティ）

プロパティ名
プロパティ識別子
データ型※¹
読み取り専用

OwnerId
dbrProp_OwnerId
String型
－※²

UserPermission
dbrProp_UserPermission
Integer32型
○

PrimaryGroupId
dbrProp_PrimaryGroupId
String型
－※³

ACL
dbrProp_ACL
Object型
（VariableArray型）
－※³

SACL
dbrProp_SACL
Object型
（VariableArray型）
－※²

OwnerPermission
dbrProp_OwnerPermission
Integer32型
－※³

PrimaryGroupPermission
dbrProp_PrimaryGroupPermission
Integer32型
－※³

EveryonePermission
dbrProp_EveryonePermission
Integer32型
－※³

PublicACLCount
dbrProp_PublicACLCount
Integer32型
○

PublicACLIds
dbrProp_PublicACLIds
Object型
（VariableArray型）
－※³

注※1

基本単位がScalar型以外の場合は，（　）に基本単位を示します。

注※2

変更は，そのオブジェクトの所有者およびセキュリティ管理者だけが実行できます。

注※3

変更は，そのオブジェクトの所有者，セキュリティACLでアクセス制御情報変更権を与えられたユーザ，およびセキュリティ管理者だけが実行できます。

プロパティ詳細

DMAで規定されているプロパティ

OIID

オブジェクトを識別するGUID文字列です。実体はDMAオブジェクトのOIIDです。

CdbrDMAクラスから継承されるプロパティ（アクセス制御機能を使用する場合）

OwnerId

UserPermission

これらのプロパティの詳細については，「CdbrDMAクラスの詳細」のプロパティ詳細を参照してください。

CdbrContainableクラスから継承されるプロパティ

ParentCount

ContainersCount

これらのプロパティの詳細については，「CdbrContainableクラスの詳細」のプロパティ詳細を参照してください。

CdbrContainableクラスから継承されるプロパティ（アクセス制御機能を使用している場合）

PrimaryGroupId

ACL

SACL

OwnerPermission

PrimaryGroupPermission

EveryonePermission

PublicACLCount

PublicACLIds

これらのプロパティの詳細については，「CdbrContainableクラスの詳細」のプロパティ詳細を参照してください。

CdbrVersionableクラスで導入されるプロパティ

VersionsCount
オブジェクトが管理しているバージョンの個数を表します。CdbrVersionable::VersionCheckInメソッドによって作成されます。まだチェックインされていないものは含みません。

CurrentVersion
カレントバージョンのバージョン識別子を表します。

ContainersCountVT
構成管理型の包含関係でこのオブジェクトを包含しているCdbrConfiguratedReferentialContainerオブジェクトおよびCdbrVersionTraceableContainerオブジェクトの個数を示します。

メソッド一覧

CdbrCoreクラスから継承されるメソッド

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

これらのメソッドの詳細については，「6.　CdbrCoreクラス（エラー情報を取得するクラス）」を参照してください。

CdbrDMAクラスから継承されるメソッド

メソッド | 機能
~CdbrDMA | デストラクタ
CdbrDMA | コンストラクタ
ConnectObject | オブジェクトを指定したモードでロックして接続
GetOIID | OIIDの取得
GetPropertyValues | プロパティの取得
GetPropertyValuesAndLock | プロパティの取得と同時に指定したロックの設定
GetType | オブジェクトの種別の取得
PutPropertyValues | プロパティの設定
ReleaseObject | オブジェクトとの接続の解除
RemoveObject | オブジェクトの削除
SetOIID | OIIDの設定

これらのメソッドの詳細については，「7.　CdbrDMAクラス（OIIDの設定やプロパティを扱うクラス）」を参照してください。

CdbrContainableクラスから継承されるメソッド

メソッド | 機能
~CdbrContainable | デストラクタ
BindPublicACL | パブリックACLのバインド
CdbrContainable | コンストラクタ
GetContainerList | コンテナの一覧取得
GetContainerListAndLock | コンテナの一覧取得と同時に指定したロックの設定
GetPublicACLList | バインドしているパブリックACL一覧情報の取得
GetPublicACLListAndLock | バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定
UnbindPublicACL | パブリックACLのアンバインド

これらのメソッドの詳細については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」を参照してください。

CdbrVersionableクラスで導入されるメソッド

メソッド | 機能
~CdbrVersionable | デストラクタ
BindPublicACL | パブリックACLのバインド（バージョン指定あり）
CdbrVersionable | コンストラクタ
DeleteVersion | バージョンの削除
GetPropertyValues | プロパティの取得（バージョン指定あり）
GetPropertyValuesAndLock | プロパティの取得と同時に指定したロックの設定（バージョン指定あり）
GetPublicACLList | バインドしているパブリックACL一覧情報の取得（バージョン指定あり）
GetPublicACLListAndLock | バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定（バージョン指定あり）
GetReservationStatus | チェックアウト状態の取得
GetReservationStatusAndLock | チェックアウト状態の取得と同時に指定したロックの設定
GetVersionList | バージョン情報一覧の取得
GetVersionListAndLock | バージョン情報一覧の取得と同時に指定したロックの設定
PutPropertyValues | プロパティの設定（バージョン指定あり）
UnbindPublicACL | パブリックACLのアンバインド（バージョン指定あり）
VersionCheckIn | バージョンのチェックイン
VersionCheckOut | バージョンのチェックアウト
VersionRevoke | チェックアウトの取り消し

以降，CdbrVersionableクラスで導入されるメソッドについて説明します。

CdbrVersionable::~CdbrVersionableメソッド

機能

デストラクタ

形式

virtual ~CdbrVersionable()

詳細

CdbrVersionableオブジェクトのデストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrVersionable::BindPublicACLメソッド

機能

パブリックACLのバインド（バージョン指定あり）

形式

DmaBoolean BindPublicACL(
 pDmaString_T       pVersionId,
 DmaInteger32       lIdListCount,
 ppDmaString_T      ppIdList)

詳細

パブリックACLをバインドするメソッドです。

pVersionIdで指定したバージョンからppIdListで指定したパブリックACLをバインドします。ppIdListに複数のパブリックACLを指定することで，一度に複数のパブリックACLにバインドできます。

存在しないOIIDを指定した場合，重複したOIIDを指定した場合，すでにバインドされているパブリックACLのOIIDを指定した場合，またはバインド数の制限値を超えて指定した場合はエラーになります。

引数

pVersionId（入力）

バージョン識別子を指定します。

NULLを指定した場合，カレントバージョンが対象になります。

lIdListCount（入力）

バインドするパブリックACLの個数を指定します。0以下の数を指定するとエラーになります。

ppIdList（入力）

バインドするパブリックACLのOIID文字列のポインタ配列を指定します。NULLを指定するとエラーになります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御機能が未サポートです。 | この操作は実行できません。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_PUBLICACL_COUNT | バインドするパブリックACLの個数が制限値を超えています。 | パブリックACLは，10個以内で指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_NONEXISTS_PUBLICACL | 指定されたパブリックACLは存在しません。 | 存在しないパブリックACLを指定しないで処理を再実行してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドでOIIDを設定するか，ConnectObjectメソッドでオブジェクトを接続してください。
ERR_DBR | ERR_PUBLICACL_ALREADY_BOUND | 指定されたパブリックACLはすでにバインドされています。 | すでにバインドされているパブリックACLを指定しないで処理を再実行してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionable::CdbrVersionableメソッド

機能

コンストラクタ

形式

CdbrVersionable()

詳細

CdbrVersionableオブジェクトのコンストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrVersionable::DeleteVersionメソッド

機能

バージョンの削除

形式

DmaBoolean DeleteVersion (
 pDmaString_T     pVersionId )

詳細

pVersionIdに指定したバージョンを削除するメソッドです。

カレントバージョンを削除した場合は，指定したカレントバージョンを削除して，既存の確定されたバージョンのうち最も新しいバージョンをカレントバージョンとします。ただし，カレントバージョン以外に確定されたバージョンが存在しない場合，カレントバージョンの削除はできません。

このメソッドをコールすることによって，DMAオブジェクトのVersionDescriptionオブジェクトおよび該当するバージョンのDMAオブジェクトのdmaClass_Versionableクラスのサブクラスのオブジェクトが削除されます。

CdbrReferentialContainerオブジェクトおよびCdbrConfiguratedReferentialContainerオブジェクトから参照されているオブジェクトのバージョンを削除する場合は，削除するバージョンを参照しているDirectContainmentRelationshipオブジェクト，ReferentialContainmentRelationshipオブジェクトおよびVersionTraceableContainmentRelationshipオブジェクトも削除されます。ただし，削除するバージョンがCdbrConfiguratedReferentialContainerオブジェクトからFLOATINGモードで参照されている場合は，VersionTraceableContainmentRelationshipオブジェクトは削除されません。VersionTraceableContainmentRelationshipオブジェクトは削除後のカレントバージョンに変更されます。

なお，pVersionIdにCdbrVersionable::VersionCheckOutメソッドで取得した仮のバージョン識別子を指定した場合はエラーになります。チェックアウトした仮のバージョンを削除する場合はCdbrVersionable::VersionRevokeメソッドを使用してください。

リファレンスファイル文書の場合

バージョンを削除したあと，カレントとなるバージョンのコンテントが存在しているか確認します。カレントバージョンのコンテントが存在しない場合，ERR_FILE_REFERENCE_CURRENT_CONTENT_NOTFOUNDのエラーになります。

また，CdbrSession::SetReferencePathメソッドで，コンテント格納先ベースパスを設定しておく必要があります。設定されていない場合，ERR_TARGETCONTENTPATH_NOT_SETのエラーになります。

引数

pVersionId（入力）

削除するバージョンのバージョン識別子を指定します。確定されたバージョンだけ指定できます。NULLを指定した場合は，カレントバージョンが削除されます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_FILE_REFERENCE_CURRENT_CONTENT_NOTFOUND | リファレンスファイル管理機能でカレントバージョンのコンテントが存在しません。 | 該当するレンディションを削除し，必要に応じて，削除したレンディションを追加してください。または，バージョンを最新（カレントバージョンを削除した場合は一つ前のバージョン）から順に確認し，コンテントが存在しないバージョンを削除してください。
ERR_DBR | ERR_FILE_REFERENCE_MISMATCH_STATUS | リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生し，オブジェクトとコンテントが不整合な状態となりました。 | 再度実行してバージョンを削除してください。
ERR_DBR | ERR_FILE_REFERENCE_OPERATION_FAILED | リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。 | 詳細メッセージを基に対処してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_LAST_VERSION | 指定されたバージョンは唯一のバージョンであるため，削除できません。 | この操作は実行できません。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DBR | ERR_TARGETCONTENTPATH_NOT_SET | リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。 | コンテント格納先ベースパスを設定してください。
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionable::GetPropertyValuesメソッド

機能

プロパティの取得（バージョン指定あり）

形式

// 全バージョン共有のプロパティを対象にする場合
DmaBoolean GetPropertyValues(
DmaInteger32           lPropDefListCount,
SDBR_PROPDEF*          pPropDefList,
SDBR_PROPLIST**        ppPropList )

// バージョンをバージョン識別子で指定する場合
DmaBoolean GetPropertyValues(
pDmaString_T           pVersionId,
DmaInteger32           lPropDefListCount,
SDBR_PROPDEF*          pPropDefList,
SDBR_PROPLIST**        ppPropList )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

オブジェクトのプロパティの値を取得するメソッドです。

バージョン識別子を指定しない場合，DMAオブジェクトのConfigurationHistoryオブジェクトに設定された，オブジェクト全体に対するプロパティが対象になります。

バージョン識別子を指定した場合は，バージョンごとの個別のプロパティが対象になります。バージョン識別子としてNULLを指定した場合は，カレントバージョンが対象になります。

引数

lPropDefListCount（入力）

pPropDefListに指定した配列の要素数を指定します。負の数を指定した場合は，エラーになります。

pPropDefList（入力）

取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppPropList（出力）

取得したプロパティリスト構造体である，SDBR_PROPLIST構造体へのポインタが設定されます。ポインタを格納する領域を指定してください。*ppPropListがポイントする領域は，ライブラリが新たに確保したものです。この領域はメソッドをコールした側がdbrDelete関数を使用して解放してください。なお，プロパティがまったく取得されなかった場合は，NULLが設定されます。

SDBR_PROPLIST構造体およびSDBR_PROP構造体に設定される内容については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得します。NULLを指定した場合は，カレントバージョンのプロパティを取得します。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_ALREADY_CONNECTED | オブジェクトはすでに接続されています。 | この操作は実行できません。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_CLASSID | 指定された識別子は，利用できるオブジェクトのクラスではありません。 | 正しいクラス識別子を指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | DMARC_VALUE_NOT_SET | 要求されたプロパティは値を保持していません。 | この操作は実行できません。

CdbrVersionable::GetPropertyValuesAndLockメソッド

機能

プロパティの取得と同時に指定したロックの設定（バージョン指定あり）

形式

// 全バージョン共有のプロパティを対象にする場合
DmaBoolean GetPropertyValuesAndLock(
DmaInteger32           lPropDefListCount,
SDBR_PROPDEF*          pPropDefList,
SDBR_PROPLIST**        ppPropList,
DmaInteger32           lLockType = DMA_LOCK_WRITE)

// バージョンをバージョン識別子で指定する場合
DmaBoolean GetPropertyValuesAndLock(
pDmaString_T           pVersionId,
DmaInteger32           lPropDefListCount,
SDBR_PROPDEF*          pPropDefList,
SDBR_PROPLIST**        ppPropList,
DmaInteger32           lLockType = DMA_LOCK_WRITE)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

ロックタイプを明示的に指定して，オブジェクトのプロパティの値を取得するメソッドです。

バージョン識別子を指定しない場合，DMAオブジェクトのConfigurationHistoryオブジェクトに設定された，オブジェクト全体に対するプロパティが対象になります。

バージョン識別子を指定した場合は，バージョンごとの個別のプロパティが対象になります。バージョン識別子としてNULLを指定した場合は，カレントバージョンが対象になります。

引数

lPropDefListCount（入力）

pPropDefListに指定した配列の要素数を指定します。負の数を指定した場合は，エラーになります。

pPropDefList（入力）

取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppPropList（出力）

取得したプロパティリスト構造体である，SDBR_PROPLIST構造体へのポインタが設定されます。ポインタを格納する領域を指定してください。*ppPropListがポイントする領域は，ライブラリが新たに確保したものです。この領域はメソッドをコールした側がdbrDelete関数を使用して解放してください。なお，プロパティがまったく取得されなかった場合は，NULLが設定されます。

SDBR_PROPLIST構造体およびSDBR_PROP構造体に設定される内容については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得します。NULLを指定した場合は，カレントバージョンのプロパティを取得します。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_ALREADY_CONNECTED | オブジェクトはすでに接続されています。 | この操作は実行できません。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_CLASSID | 指定された識別子は，利用できるオブジェクトのクラスではありません。 | 正しいクラス識別子を指定してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | DMARC_VALUE_NOT_SET | 要求されたプロパティは値を保持していません。 | この操作は実行できません。

CdbrVersionable::GetPublicACLListメソッド

機能

バインドしているパブリックACL一覧情報の取得（バージョン指定あり）

形式

DmaBoolean GetPublicACLList(
 pDmaString_T       pVersionId,
 DmaInteger32       lPropDefListCount,
 SDBR_PROPDEF*      pPropDefList,
 SDBR_OBJLIST**     ppObjList)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
  DmaId             PropId;        //プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;     //Boolean型
    pDmaInteger32    plInteger32;   //Integer32型
    pDmaId           pId;           //ID型
    pDmapv           ppObject;      //Object型
    ppDmaString_T    ppString;      //String型
  } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
 pDmaString_T       pOIID;         // オブジェクトのOIID
 DmaInteger32       lType;         // オブジェクトの種別
 SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
  DmaInteger32      lCount;
  SDBR_OBJINFO*     pItem;
};

詳細

オブジェクトがバインドしているパブリックACLの一覧情報を取得するメソッドです。その際，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティ値も取得します。

pVersionIdで指定したバージョンがバインドしているパブリックACLの一覧情報がppObjListに設定されます。

引数

pVersionId（入力）

バージョン識別子を指定します。

NULLを指定した場合，カレントバージョンが対象になります。

lPropDefListCount（入力）

pPropDefListの要素数を指定します。

プロパティを取得しない場合は0を指定してください。負の値を指定した場合はエラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。NULLはlPropDefListCountが0の場合に指定できます。lPropDefListCountが正の整数のときにpPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppObjList（出力）

取得した情報を格納するオブジェクトリスト構造体である，SDBR_OBJLIST構造体へのポインタが設定されます。NULLを指定した場合はエラーになります。

*ppObjListがポイントするメモリは，クラスライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。ただし，SDBR_OBJINFO構造体のpOIIDにはパブリックACLのOIIDが設定されます。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御機能が未サポートです。 | この操作は実行できません。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドでOIIDを設定するか，ConnectObjectメソッドでオブジェクトを接続してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionable::GetPublicACLListAndLockメソッド

機能

バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定（バージョン指定あり）

形式

DmaBoolean GetPublicACLListAndLock(
 pDmaString_T       pVersionId,
 DmaInteger32       lPropDefListCount,
 SDBR_PROPDEF*      pPropDefList,
 SDBR_OBJLIST**     ppObjList,
 DmaInteger32       lLockType = DMA_LOCK_WRITE)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
  DmaId             PropId;        //プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;     //Boolean型
    pDmaInteger32    plInteger32;   //Integer32型
    pDmaId           pId;           //ID型
    pDmapv           ppObject;      //Object型
    ppDmaString_T    ppString;      //String型
  } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
 pDmaString_T       pOIID;         // オブジェクトのOIID
 DmaInteger32       lType;         // オブジェクトの種別
 SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
  DmaInteger32      lCount;
  SDBR_OBJINFO*     pItem;
};

詳細

ロックタイプを明示的に指定して，オブジェクトがバインドしているパブリックACLの一覧情報を取得するメソッドです。その際，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティ値も取得します。

pVersionIdで指定したバージョンがバインドしているパブリックACLの一覧情報がppObjListに設定されます。

引数

pVersionId（入力）

バージョン識別子を指定します。

NULLを指定した場合，カレントバージョンが対象になります。

lPropDefListCount（入力）

pPropDefListの要素数を指定します。

プロパティを取得しない場合は0を指定してください。負の値を指定した場合はエラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。NULLはlPropDefListCountが0の場合に指定できます。lPropDefListCountが正の整数のときにpPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppObjList（出力）

取得した情報を格納するオブジェクトリスト構造体である，SDBR_OBJLIST構造体へのポインタが設定されます。NULLを指定した場合はエラーになります。

*ppObjListがポイントするメモリは，クラスライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。ただし，SDBR_OBJINFO構造体のpOIIDにはパブリックACLのOIIDが設定されます。

また，SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御機能が未サポートです。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドでOIIDを設定するか，ConnectObjectメソッドでオブジェクトを接続してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionable::GetReservationStatusメソッド

機能

チェックアウト状態の取得

形式

DmaBoolean GetReservationStatus(
 pDmaBoolean              pbReserved,
 ppDmaString_T            ppReservedVerId,
 ppDmaString_T            ppReservedUser )

詳細

オブジェクトがチェックアウトされているかどうかの情報を取得するメソッドです。チェックアウトされている場合はそのバージョンのDMAオブジェクトのVersionSeriesオブジェクトが保持している仮のバージョン識別子と，チェックアウトしているユーザ名を取得します。

引数

pbReserved（出力）

チェックアウトされている状態であればDMA_TRUEが設定されます。

チェックアウトされていない場合はDMA_FALSEが設定されます。

ppReservedVerId（出力）

仮のバージョン識別子へのポインタが設定されます。

値を格納した領域は，使用後に明示的にdbrDelete関数を使用して解放してください。

ppReservedUser（出力）

チェックアウトしているユーザ名を表す文字列へのポインタが設定されます。ユーザ名は，CdbrSession::Connectメソッドの引数として指定された文字列です。チェックアウトされていない場合またはチェックアウトしたユーザ名が記録されていない場合は，NULLが設定されます。

値を格納した領域は，使用後に明示的にdbrDelete関数を使用して解放してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionable::GetReservationStatusAndLockメソッド

機能

チェックアウト状態の取得と同時に指定したロックの設定

形式

DmaBoolean GetReservationStatusAndLock(
 pDmaBoolean              pbReserved,
 ppDmaString_T            ppReservedVerId,
 ppDmaString_T            ppReservedUser,
 DmaInteger32             lLockType = DMA_LOCK_WRITE )

詳細

ロックタイプを明示的に指定して，オブジェクトがチェックアウトされているかどうかの情報を取得するメソッドです。チェックアウトされている場合はそのバージョンのDMAオブジェクトのVersionSeriesオブジェクトが保持している仮のバージョン識別子と，チェックアウトしているユーザ名を取得します。

引数

pbReserved（出力）

チェックアウトされている状態であればDMA_TRUEが設定されます。

チェックアウトされていない場合はDMA_FALSEが設定されます。

ppReservedVerId（出力）

仮のバージョン識別子へのポインタが設定されます。

値を格納した領域は，使用後に明示的にdbrDelete関数を使用して解放してください。

ppReservedUser（出力）

チェックアウトしているユーザ名を表す文字列へのポインタが設定されます。ユーザ名は，CdbrSession::Connectメソッドの引数として指定された文字列です。チェックアウトされていない場合またはチェックアウトしたユーザ名が記録されていない場合は，NULLが設定されます。

値を格納した領域は，使用後に明示的にdbrDelete関数を使用して解放してください。

lLockType（入力）

ロックの種別を設定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionable::GetVersionListメソッド

機能

バージョン情報一覧の取得

形式

DmaBoolean GetVersionList(
 pDmaBoolean              pbContinue,
 DmaInteger32             lPropDefListCount,
 SDBR_PROPDEF*            pPropDefList,
 DmaInteger32             lObjListCount,
 SDBR_OBJLIST**           ppObjList,
 DmaInteger32             lOrdered = DBR_ORDER_NONE)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
   pDmaString_T       pOIID;         // オブジェクトのOIID
   DmaInteger32       lType;         // オブジェクトの種別
   SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
   DmaInteger32      lCount;
   SDBR_OBJINFO*     pItem;
};

詳細

このオブジェクトが包含している，すでに確定したバージョン情報の一覧を取得するメソッドです。取得するバージョン情報を，バージョンが作成された順序によってソートして取得できます。また，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティ値も取得します。

初回のメソッドのコールですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。ただし，再度取得する前に文書の削除処理をした場合，残りが正しく取得されないことがあります。

要素の個数に変更がなく，同じオブジェクトに対してこのメソッドをコールした場合も，取得される情報の順序は常に異なる可能性があります。

使用方法については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」のCdbrContainable::GetContainerListメソッドを参照してください。

引数

pbContinue（入力／出力）

リストの取得方法を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得したものの次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを 指定すると，前回取得したものの残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてこのメソッドをコールする場合，または前回のコールですべて取得した場合は，すべてDMA_FALSEが指定されたものとして処理されます。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合はDMA_TRUEが設定されます。

2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について，次に示します。

表15-3　ほかの引数の扱われ方（SDBR_OBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppObjList | ○ | ○
lOrdered | × | ○

（凡例）

○：有効

×：無効

lPropDefListCount（入力）

pPropDefListの要素数を指定します。０を指定した場合は，プロパティを取得しません。負の数を指定した場合は，エラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定した場合も，プロパティを取得しません。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppObjList（出力）

取得した情報が設定されます。バージョン情報の一覧は，オブジェクト情報リスト構造体である，SDBR_OBJINFO構造体の配列として格納されます。*ppObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppObjListを指定したメモリ解放によって，構造体のメンバ(*ppObjList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがって，メソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。ただし，SDBR_OBJINFO構造体メンバのpOIIDには，該当するオブジェクトのバージョン識別子が設定されます。また，lTypeに相当する情報が設定されても，その内容は保証できません。

なお，バージョン管理されるオブジェクト（dmaClass_Versionableクラスのサブクラスのオブジェクト）が引数pPropDefListで指定したプロパティを持つ場合に，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lOrdered（入力）

バージョン情報を取得する順序を指定します。順序は，バージョンの順序値に依存します。次のどれかを指定してください。なお，省略した場合は，取得するバージョンに順序性はありません。

DBR_ORDER_NONE
取得するバージョンの順序を指定しません。

DBR_ORDER_ASC
取得するバージョン情報を最も古いバージョンから順に取得します。

DBR_ORDER_DESC
取得するバージョン情報を最も新しいバージョンから順に取得します。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionable::GetVersionListAndLockメソッド

機能

バージョン情報一覧の取得と同時に指定したロックの設定

形式

DmaBoolean GetVersionListAndLock(
 pDmaBoolean              pbContinue,
 DmaInteger32             lPropDefListCount,
 SDBR_PROPDEF*            pPropDefList,
 DmaInteger32             lObjListCount,
 SDBR_OBJLIST**           ppObjList,
 DmaInteger32             lLockType = DMA_LOCK_WRITE,
 DmaInteger32             lOrdered = DBR_ORDER_NONE )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
   pDmaString_T       pOIID;         // オブジェクトのOIID
   DmaInteger32       lType;         // オブジェクトの種別
   SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
   DmaInteger32      lCount;
   SDBR_OBJINFO*     pItem;
};

詳細

ロックタイプを明示的に指定して，このオブジェクトが包含している，すでに確定したバージョン情報の一覧を取得するメソッドです。取得するバージョン情報を，バージョンが作成された順序によってソートして取得できます。また，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティ値も取得します。

初回のメソッドのコールですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。ただし，再度取得する前に文書の削除処理をした場合は，残りが正しく取得されないことがあります。

複数回に分けて情報を取得する場合，取得される内容はすべて初回にメソッドをコールした時点での状態を示しています。したがって，１回目のメソッドのコール以降に変更した要素数やプロパティ値は，２回目には反映されません。

要素の個数に変更がなく，同じオブジェクトに対してこのメソッドをコールした場合も，取得される情報の順序は常に異なる可能性があります。

使用方法については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」のCdbrContainable::GetContainerListメソッドを参照してください。

引数

pbContinue（入力／出力）

リストの取得方法を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得したものの次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを 指定すると，前回取得したものの残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてこのメソッドをコールする場合，または前回のコールですべて取得した場合は，すべてDMA_FALSEが指定されたものとして処理されます。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合はDMA_TRUEが設定されます。

2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について，次に示します。

表15-4　ほかの引数の扱われ方（SDBR_OBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppObjList | ○ | ○
lLockType | × | ○

（凡例）

○：有効

×：無効

lPropDefListCount（入力）

pPropDefListの要素数を指定します。0を指定した場合は，プロパティを取得しません。負の数を指定した場合は，エラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定した場合は，プロパティを取得しません。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppObjList（出力）

取得した情報へのポインタが設定されます。バージョン情報の一覧は，オブジェクト情報リスト構造体である，SDBR_OBJINFO構造体として格納されます。*ppObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppObjListを指定したメモリ解放によって，構造体のメンバ(*ppObjList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがって，メソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。ただし，SDBR_OBJINFO構造体メンバのpOIIDにはバージョン管理されるオブジェクトのバージョン識別子が設定されます。また，lTypeに相当する情報が設定されても，その内容は保証できません。

なお，バージョン管理されるオブジェクト（dmaClass_Versionableクラスのサブクラスのオブジェクト）が引数pPropDefListで指定したプロパティを持つ場合に，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次の値のどれかを設定します。

DMA_LOCK_READ
readロックを設定します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_READ | DBR_RLT_FOR_UPDATE
readロックを設定し，更新・削除用の一覧を取得します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

DMA_LOCK_WRITE | DBR_RLT_FOR_UPDATE
排他的なwriteロックを設定し，更新・削除用の一覧を取得します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

lOrdered（入力）

バージョン情報を取得する順序を指定します。順序は，バージョンの順序値に依存します。次のどれかを指定してください。なお，省略した場合は，取得するバージョンに順序性はありません。

DBR_ORDER_NONE
取得するバージョンの順序を指定しません。

DBR_ORDER_ASC
取得するバージョン情報を最も古いバージョンから順に取得します。

DBR_ORDER_DESC
取得するバージョン情報を最も新しいバージョンから順に取得します。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionable::PutPropertyValuesメソッド

機能

プロパティの設定（バージョン指定あり）

形式

// 全バージョン共有のプロパティを対象にする場合
DmaBoolean PutPropertyValues(
SDBR_PROPLIST*        pPropList )

// バージョンをバージョン識別子で指定する場合
DmaBoolean PutPropertyValues(
pDmaString_T          pVersionId,
SDBR_PROPLIST*        pPropList )

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

プロパティに値を設定するメソッドです。

バージョン識別子を指定しない場合，DMAオブジェクトのConfigurationHistoryオブジェクトに設定された，オブジェクト全体に対するプロパティが対象になります。

CdbrVersionable::VersionCheckOutメソッドで取得した仮のバージョン識別子を指定した場合は，チェックアウトしたバージョンのdmaClass_Versionableクラスのサブクラスのオブジェクトのプロパティが対象になります。

バージョン識別子としてNULLを指定した場合は，カレントバージョンが対象になります。

引数

pPropList（入力）

設定するプロパティを格納したプロパティリスト構造体である，SDBR_PROPLIST構造体を指定します。SDBR_PROPLIST構造体およびSDBR_PROP構造体に指定する内容については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

同じプロパティ識別子を指定したプロパティ構造体を複数指定した場合は，エラーになります。

また，VariableArray型プロパティを設定するとき，次の場合はエラーになります。このとき，major_codeとしてERR_DMA，minor_codeとしてDMARC_BAD_VALUEが返却されます。

DocumentBrokerサーバのメタ情報ファイル（edms.ini）のdmaProp_MaximumElementsエントリの値に2以上の値を設定しているときに，このエントリの値を超えてVariableArray型プロパティの要素を指定した場合

DocumentSpace構成定義ファイルdocspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義があるときに，VariableArray型プロパティの要素の値として，範囲外の値や最大値を超えた値を指定した場合

それぞれのデータ型に対応する値の範囲については，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。

バージョン識別子はCdbrVersionable::VersionCheckOutメソッドで取得した仮のバージョン識別子も指定できます。NULLを指定した場合，カレントバージョンのプロパティが対象になります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_BAD_PERMISSION
不正なパーミッションが指定されました。
正しいパーミッションを指定してください。

ERR_DBR
ERR_BAD_SUBJECT_TYPE
不正なサブジェクト種別が指定されました。
正しいサブジェクト種別を指定してください。

ERR_DBR
ERR_INVALID_ACE
不正なアクセス制御エレメント（ACE）が指定されました。
ACEとして正しいCdbrCompoundオブジェクトを指定してください。

ERR_DBR
ERR_INVALID_ACE_COUNT
設定するアクセス制御エレメント（ACE）の個数が制限値を超えています。
ACEは64個以内で指定してください。

ERR_DBR
ERR_INVALID_PUBLICACL_COUNT
バインドするパブリックACLの個数が制限値を超えています。
パブリックACLは10個以内で指定してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_INVALID_SUBJECT_LENGTH
サブジェクトの長さが不正です。
次に示す範囲内でサブジェクトを指定してください。

サブジェクトの種別がユーザ識別子の場合，1文字以上，ユーザ識別子の最大長以下の文字列を指定してください。
ユーザ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がグループ識別子の場合，1文字以上，グループ識別子の最大長以下の文字列を指定してください。
グループ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がシステムサブジェクトの場合，1文字以上，254文字以下の文字列を指定してください。

ユーザ識別子とグループ識別子の最大長を拡張する方法の詳細は，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

ERR_DBR
ERR_NONEXISTS_PUBLICACL
指定されたパブリックACLは存在しません。
存在しないパブリックACLを指定しないで処理を再実行してください。

ERR_DBR
ERR_OBJECT_ALREADY_CONNECTED
オブジェクトはすでに接続されています。
この操作は実行できません。

ERR_DBR
ERR_OBJECT_REMOVED
オブジェクトはすでに削除されています。
正しいオブジェクトを指定してください。

ERR_DBR
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドをコールしてから，このメソッドをコールしてください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DMA
DMARC_BAD_CLASSID
指定された識別子は，利用できるオブジェクトのクラスではありません。
正しいクラス識別子を指定してください。

ERR_DMA
DMARC_BAD_OIID
SetOIIDメソッドで設定されたOIIDが不正です。
正しいOIIDを指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_BAD_PROPID
プロパティの識別子が不正です。
正しいプロパティ識別子を指定してください。

ERR_DMA
DMARC_BAD_VALUE
次のどれかの要因が考えられます。

プロパティやリストの値が，許容範囲外の値であるか，または最大値を超えました。

VariableArray型プロパティに設定する可変長配列の要素数が最大値を超えました。

docspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義がある場合に，VariableArray型プロパティの要素の値が，許容範囲外の値であるか，または最大値を超えました。

次のどれかの方法で対処してください。

プロパティやリストの値の範囲を見直してください。

VariableArray型プロパティに設定する可変長配列の要素数を見直してください。

VariableArray型プロパティの要素の値の範囲を見直してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NO_RESERVATION
バージョン識別子が予約されていません。
チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。

ERR_DMA
DMARC_NOT_FOUND
要求された要素が見つかりません。
正しいオブジェクトを設定してください。

ERR_DMA
DMARC_NOT_SUPPORTED
このセッションまたはオブジェクトではサポートされていないメソッドです。
この操作は実行できません。

ERR_DMA
DMARC_READ_ONLY
読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。
このプロパティの値は更新できません。

ERR_DMA
DMARC_UNEXPECTED
予期しないエラーが発生しました。
処理を終了してください。

CdbrVersionable::UnbindPublicACLメソッド

機能

パブリックACLのアンバインド（バージョン指定あり）

形式

// 指定したパブリックACLをアンバインドする場合
DmaBoolean UnbindPublicACL(
 pDmaString_T       pVersionId,
 DmaInteger32       lIdListCount,
 ppDmaString_T      ppIdList)

// すべてのパブリックACLをアンバインドする場合
DmaBoolean UnbindPublicACL(
 pDmaString_T       pVersionId )

詳細

指定したバージョンのオブジェクトにバインドしているパブリックACLをアンバインドするメソッドです。

複数のパブリックACLを一度にアンバインドしたり，すべてのパブリックACLを一度にアンバインドしたりできます。

指定したパブリックACLのOIIDが存在しない場合，指定したパブリックACLのOIIDがバインドされていない場合，または重複したOIIDを指定した場合はエラーになります。

引数

pVersionId（入力）

バージョン識別子を指定します。

NULLを指定した場合，カレントバージョンが対象になります。

lIdListCount（入力）

アンバインドするパブリックACLの個数を指定します。0以下の数を指定するとエラーになります。

ppIdList（入力）

アンバインドするパブリックACLのOIIDのポインタ配列を指定します。

NULLを指定するとエラーになります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESSCONTROL_NOT_SUPPORTED | アクセス制御機能が未サポートです。 | この操作は実行できません。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_NONEXISTS_PUBLICACL | 指定されたパブリックACLは存在しません。 | 存在しないパブリックACLを指定しないで処理を再実行してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドでOIIDを設定するか，ConnectObjectメソッドでオブジェクトを接続してください。
ERR_DBR | ERR_PUBLICACL_NOT_BOUND | 指定されたパブリックACLはバインドされていません。 | バインドされているパブリックACLを指定して処理を再実行してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionable::VersionCheckInメソッド

機能

バージョンのチェックイン

形式

DmaBoolean VersionCheckIn ()

詳細

チェックアウトによって予約した仮のバージョンの追加を確定するメソッドです。

DMAオブジェクトとしては，Reservationオブジェクトを介して間接的にVersionSeriesオブジェクトと関連づけられていたdmaClass_Versionableクラスのサブクラスのオブジェクトが，直接VersionSeriesオブジェクトに関連づけられます。

リファレンスファイル文書の場合

チェックインし，カレントとなるバージョンのコンテントが存在するかを確認します。カレントバージョンのコンテントが存在しない場合，ERR_FILE_REFERENCE_CURRENT_CONTENT_NOTFOUNDのエラーになります。

また，CdbrSession::SetReferencePathメソッドでコンテント格納先ベースパスを設定しておく必要があります。設定されていない場合，ERR_TARGETCONTENTPATH_NOT_SETのエラーになります。

引数

なし

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_FILE_REFERENCE_CURRENT_CONTENT_NOTFOUND | リファレンスファイル管理機能でカレントバージョンのコンテントが存在しません。 | CdbrVersionable::VersionRevokeメソッドを実行し，VersionCheckOutを実行してください。必要に応じてコンテントを更新してください。
ERR_DBR | ERR_FILE_REFERENCE_OPERATION_FAILED | リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。 | 詳細メッセージを基に対処してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DBR | ERR_TARGETCONTENTPATH_NOT_SET | リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。 | コンテント格納先ベースパスを設定してください。
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | チェックアウトされていません。 | チェックアウト状態を確認してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionable::VersionCheckOutメソッド

機能

バージョンのチェックアウト

形式

DmaBoolean VersionCheckOut(
 ppDmaString_T  ppReservedVerId)

詳細

次バージョンの追加を予約して，カレントバージョンのコピーを作成するメソッドです。DMAオブジェクトとしては，新たにReservationオブジェクトとdmaClass_Versionableクラスのサブクラスのオブジェクトが作成されます。このオブジェクトはReservationオブジェクトを介して，間接的にVersionSeriesオブジェクトに関連づけられます。

CdbrVersionable::VersionRevokeメソッドでバージョンの追加をキャンセルすると，チェックアウト以降の処理は取り消されます。

リファレンスファイル文書の場合

カレントバージョンのコンテントの存在を確認します。カレントバージョンのコンテントが存在しない場合，ERR_FILE_REFERENCE_CURRENT_CONTENT_NOTFOUNDのエラーになります。

また，CdbrSession::SetReferencePathメソッドで，コンテント格納先ベースパスを設定しておく必要があります。設定されていない場合，ERR_TARGETCONTENTPATH_NOT_SETのエラーになります。

なお，リファレンスファイル管理機能を使用している場合に，major_codeがERR_DB以外のエラーのときは，ロールバック実行前にCdbrVersionable::VersionRevokeメソッドをコールしたあと，CdbrSession::Rollbackメソッドをコールしてください。これによって，不用なコンテントが残ることを防ぎます。

このメソッドを実行する場合，次に示すことに注意してください。

DocumentSpace構成定義のReferenceStorageModeエントリにOriginを指定して登録した文書に対し，ReferenceStorageModeエントリにDivideを指定してこのメソッドを実行する場合，次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときにこのメソッドを実行すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

文書登録時にpTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（6バイト）

DocumentBrokerが指定するファイル名（最大59バイト）

DocumentSpace構成定義のReferenceStorageModeエントリにDivideを指定して登録した文書に対し，ReferenceStorageModeエントリにOriginを指定してこのメソッドを実行する場合，次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときにこのメソッドを実行すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント納先ベースパス

文書登録時にpTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（35バイト）

pEntryで指定したファイル名

引数

ppReservedVerId（出力）

仮のバージョン識別子へのポインタが設定されます。値を格納した領域は，使用後にユーザプログラムで，dbrDelete関数を使用して明示的に解放してください。この値はチェックイン後に割り当てられる正式なバージョン識別子とは異なるので注意してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_FILE_REFERENCE_CURRENT_CONTENT_NOTFOUND | リファレンスファイル管理機能でカレントバージョンのコンテントが存在しません。 | 該当するレンディションを削除し，必要に応じて，削除したレンディションを追加してください。または，バージョンを最新から順に確認し，コンテントが存在しないバージョンを削除してください。
ERR_DBR | ERR_FILE_REFERENCE_OPERATION_FAILED | リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。 | 詳細メッセージを基に対処してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DBR | ERR_TARGETCONTENTPATH_NOT_SET | リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。 | コンテント格納先ベースパスを設定してください。
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_RESERVATION_EXISTS | VersionSeriesはReservationをすでに保持しています。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionable::VersionRevokeメソッド

機能

チェックアウトの取り消し

形式

DmaBoolean VersionRevoke()

詳細

バージョンのチェックアウト操作以降の処理を取り消します。

DMAオブジェクトとしては，Reservationオブジェクトを介して間接的にVersionSeriesオブジェクトと関連づけられていたdmaClass_Versionableクラスのサブクラスのオブジェクトが破棄されて，Reservationオブジェクトも破棄されます。

チェックアウト状態でない場合にこのメソッドをコールすると，エラーになります。

リファレンスファイル文書の場合

カレントバージョンのコンテントの存在を確認します。カレントバージョンのコンテントが存在しない場合，ERR_FILE_REFERENCE_CURRENT_CONTENT_NOTFOUNDのエラーになります。

また，CdbrSession::SetReferencePathメソッドで，コンテント格納先ベースパスを設定しておく必要があります。設定されていない場合，ERR_TARGETCONTENTPATH_NOT_SETのエラーになります。

引数

なし

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_FILE_REFERENCE_CURRENT_CONTENT_NOTFOUND | リファレンスファイル管理機能でカレントバージョンのコンテントが存在しません。 | 該当するレンディションを削除し，必要に応じて，削除したレンディションを追加してください。または，バージョンを最新から順に確認し，コンテントが存在しないバージョンを削除してください。
ERR_DBR | ERR_FILE_REFERENCE_MISMATCH_STATUS | リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生し，オブジェクトとコンテントが不整合な状態となりました。 | 再度実行してチェックアウトを取り消してください。
ERR_DBR | ERR_FILE_REFERENCE_OPERATION_FAILED | リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。 | 詳細メッセージを基に対処してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DBR | ERR_TARGETCONTENTPATH_NOT_SET | リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。 | コンテント格納先ベースパスを設定してください。
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | チェックアウトされていません。 | チェックアウト状態を確認してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

16.　CdbrVersionableDocumentクラス（バージョン付き文書を扱うクラス）

DocumentBrokerで扱う文書のうち，バージョン管理をする文書を作成および管理する機能を提供するクラスです。

＜この章の構成＞

CdbrVersionableDocumentクラスの詳細

CdbrVersionableDocument::~CdbrVersionableDocumentメソッド

CdbrVersionableDocument::AddRenditionメソッド

CdbrVersionableDocument::CdbrVersionableDocumentメソッド

CdbrVersionableDocument::ChangeMasterRenditionメソッド

CdbrVersionableDocument::ConvertContentTypeメソッド

CdbrVersionableDocument::CreateIndexメソッド

CdbrVersionableDocument::CreateObjectメソッド

CdbrVersionableDocument::CreateRelationメソッド

CdbrVersionableDocument::DeleteRenditionメソッド

CdbrVersionableDocument::GetContentメソッド

CdbrVersionableDocument::GetContentAndLockメソッド

CdbrVersionableDocument::GetContentInfoメソッド

CdbrVersionableDocument::GetRelationListメソッド

CdbrVersionableDocument::GetRelationListAndLockメソッド

CdbrVersionableDocument::GetRenditionListメソッド

CdbrVersionableDocument::GetRenditionListAndLockメソッド

CdbrVersionableDocument::PutRelationPropertyValuesメソッド

CdbrVersionableDocument::PutRenditionPropertyValuesメソッド

CdbrVersionableDocument::RemoveIndexメソッド

CdbrVersionableDocument::RemoveRelationメソッド

CdbrVersionableDocument::UpdateContentメソッド

CdbrVersionableDocument::UpdateContentAndRenditionTypeメソッド

CdbrVersionableDocumentクラスの詳細

スーパークラス

プロパティ一覧

プロパティの一覧を次に示します。

表16-1　CdbrVersionableDocumentクラスのプロパティ

プロパティ名 | プロパティ識別子 | データ型 | 読み取り専用
OIID | dmaProp_OIID | String型 | ○
ParentCount | dbrProp_ParentCount | Integer32型 | ○
ContainersCount | dbrProp_ContainersCount | Integer32型 | ○
ContainersCountVT | dbrProp_ContainersCountVT | Integer32型 | ○
VersionsCount | dbrProp_VersionsCount | Integer32型 | ○
CurrentVersion | dbrProp_CurrentVersion | String型 | ○
RenditionType | dbrProp_RenditionType | String型 | ○
RetrievalName | dbrProp_RetrievalName | String型 | －
HeadRelationsCount | dbrProp_HeadRelationsCount | Integer32型 | ○
TailRelationsCount | dbrProp_TailRelationsCount | Integer32型 | ○
ReferenceType | dbrProp_ReferenceType | Integer32型 | ○
ContentLocation | dbrProp_ContentLocation | String型 | ○

アクセス制御機能を使用している場合は，次のクラスライブラリの固有のプロパティが追加されます。

表16-2　CdbrVersionableDocumentクラスのプロパティ（アクセス制御機能を使用する場合に追加されるクラスライブラリ固有のプロパティ）

プロパティ名
プロパティ識別子
データ型※¹
読み取り専用

OwnerId
dbrProp_OwnerId
String型
－※²

UserPermission
dbrProp_UserPermission
Integer32型
○

PrimaryGroupId
dbrProp_PrimaryGroupId
String型
－※³

ACL
dbrProp_ACL
Object型
（VariableArray型）
－※³

SACL
dbrProp_SACL
Object型
（VariableArray型）
－※²

OwnerPermission
dbrProp_OwnerPermission
Integer32型
－※³

PrimaryGroupPermission
dbrProp_PrimaryGroupPermission
Integer32型
－※³

EveryonePermission
dbrProp_EveryonePermission
Integer32型
－※³

PublicACLCount
dbrProp_PublicACLCount
Integer32型
○

PublicACLIds
dbrProp_PublicACLIds
Object型
（VariableArray型）
－※³

注※1

基本単位がScalar型以外の場合は，（　）に基本単位を示します。

注※2

変更は，そのオブジェクトの所有者およびセキュリティ管理者だけが実行できます。

注※3

変更は，そのオブジェクトの所有者，セキュリティACLでアクセス制御情報変更権を与えられたユーザ，およびセキュリティ管理者だけが実行できます。

プロパティ詳細

DMAで規定されているプロパティ

OIID
オブジェクトを識別するGUID文字列です。実体はDMAオブジェクトのOIIDです。

CdbrDMAクラスから継承されるプロパティ（アクセス制御機能を使用する場合）

OwnerId

UserPermission

これらのプロパティの詳細については，「CdbrDMAクラスの詳細」のプロパティ詳細を参照してください。

CdbrContainableクラスから継承されるプロパティ

ParentCount

ContainersCount

これらのプロパティについては，「CdbrContainableクラスの詳細」のプロパティ詳細を参照してください。

CdbrContainableクラスから継承されるプロパティ（アクセス制御機能を使用する場合）

PrimaryGroupId

ACL

SACL

OwnerPermission

PrimaryGroupPermission

EveryonePermission

PublicACLCount

PublicACLIds

これらのプロパティについては，「CdbrContainableクラスの詳細」のプロパティ詳細を参照してください。

CdbrVersionableクラスから継承されるプロパティ

VersionsCount

CurrentVersion

ContainersCountVT

これらのプロパティの詳細については，「CdbrVersionableクラスの詳細」のプロパティの詳細を参照してください。

CdbrVersionableDocumentクラスで導入されるプロパティ

RenditionType
カレントバージョンのRenditionTypeを表す文字列を表します。

RetrievalName
カレントバージョンに登録されているファイルのファイル名を表す文字列を表します。CreateObjectメソッドまたはUpdateContentメソッドでファイルを登録・更新する場合，指定されたURLからパス名を除いた文字列が設定されます。例えば，UNIXの場合にURLが"file:///tmp/sample.doc"のファイルを登録すると，文字列"sample.doc"が設定されます。Windowsの場合にURLが"file:///c:¥temp¥sample.doc"のファイルを登録すると，文字列"sample.doc"が設定されます。ファイルが未登録の場合，長さ0の文字列が設定されます。値の変更も可能です。

HeadRelationsCount
このオブジェクトが文書間リレーションで関連づけしているリレーション先文書の数を表します。

TailRelationsCount
このオブジェクトが文書間リレーションでほかの文書からリレーション先として関連づけされている数を表します。

なおこのほかに，CdbrVersionableDocumentクラスでは，構成要素であるDMAオブジェクトを作成する基になるDMAのクラスのdmaClass_ConfigurationHistoryクラスとdmaClass_DocVersionクラス，およびこれらのサブクラスのプロパティを参照，設定できます。DMAのクラスのプロパティについては，「付録B　DMAオブジェクトのプロパティ」を参照してください。

メソッド一覧

CdbrCoreクラスから継承されるメソッド

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

これらのメソッドの詳細については，「6.　CdbrCoreクラス（エラー情報を取得するクラス）」を参照してください。

CdbrDMAクラスから継承されるメソッド

メソッド | 機能
~CdbrDMA | デストラクタ
CdbrDMA | コンストラクタ
ConnectObject | オブジェクトを指定したモードでロックして接続
GetOIID | OIIDの取得
GetPropertyValues | プロパティの取得
GetPropertyValuesAndLock | プロパティの取得と同時に指定したロックの設定
GetType | オブジェクトの種別の取得
PutPropertyValues | プロパティの設定
ReleaseObject | オブジェクトとの接続の解除
RemoveObject | オブジェクトの削除
SetOIID | OIIDの設定

これらのメソッドの詳細については，「7.　CdbrDMAクラス（OIIDの設定やプロパティを扱うクラス）」を参照してください。

CdbrContainableクラスから継承されるメソッド

メソッド | 機能
~CdbrContainable | デストラクタ
BindPublicACL | パブリックACLのバインド
CdbrContainable | コンストラクタ
GetContainerList | コンテナの一覧取得
GetContainerListAndLock | コンテナの一覧取得と同時に指定したロックの設定
GetPublicACLList | バインドしているパブリックACL一覧情報の取得
GetPublicACLListAndLock | バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定
UnbindPublicACL | パブリックACLのアンバインド

これらのメソッドの詳細については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」を参照してください。

CdbrVersionableクラスから継承されるメソッド

メソッド | 機能
~CdbrVersionable | デストラクタ
BindPublicACL | パブリックACLのバインド（バージョン指定あり）
CdbrVersionable | コンストラクタ
DeleteVersion | バージョンの削除
GetPropertyValues | プロパティの取得（バージョン指定あり）
GetPropertyValuesAndLock | プロパティの取得と同時に指定したロックの設定（バージョン指定あり）
GetPublicACLList | バインドしているパブリックACL一覧情報の取得（バージョン指定あり）
GetPublicACLListAndLock | バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定（バージョン指定あり）
GetReservationStatus | チェックアウト状態の取得
GetReservationStatusAndLock | チェックアウト状態の取得と同時に指定したロックの設定
GetVersionList | バージョン情報一覧の取得
GetVersionListAndLock | バージョン情報一覧の取得と同時に指定したロックの設定
PutPropertyValues | プロパティの設定（バージョン指定あり）
UnbindPublicACL | パブリックACLのアンバインド（バージョン指定あり）
VersionCheckIn | バージョンのチェックイン
VersionCheckOut | バージョンのチェックアウト
VersionRevoke | チェックアウトの取り消し

これらのメソッドの詳細については，「15.　CdbrVersionableクラス（バージョン管理機能を提供するクラス）」を参照してください。

CdbrVersionableDocumentクラスで導入されるメソッド

メソッド | 機能
~CdbrVersionableDocument | デストラクタ
AddRendition | レンディションの追加
CdbrVersionableDocument | コンストラクタ
ChangeMasterRendition | マスタレンディションへの変更
ConvertContentType | コンテント種別の変換
CreateIndex | 全文検索インデクスの作成
CreateObject | オブジェクトの新規作成
CreateRelation | 文書間リレーションの設定
DeleteRendition | レンディションの削除
GetContent | ファイルの取得
GetContentAndLock | ファイルの取得と同時に指定したロックの設定
GetContentInfo | マルチファイル文書の情報の取得
GetRelationList | 文書のリレーション情報の一覧取得
GetRelationListAndLock | 文書のリレーション情報の一覧取得と同時に指定したロックの設定
GetRenditionList | レンディション一覧の取得
GetRenditionListAndLock | レンディション一覧の取得と同時に指定したロックの設定
PutRelationPropertyValues | 文書間リレーションのプロパティの設定
PutRenditionPropertyValues | レンディションのプロパティの設定
RemoveIndex | 全文検索インデクスの削除
RemoveRelation | 文書間リレーションの解除
UpdateContent | ファイルの更新
UpdateContentAndRenditionType | ファイルの更新およびRenditionTypeの変更

以降，CdbrVersionableDocumentクラスで導入されるメソッドについて説明します。

CdbrVersionableDocument::~CdbrVersionableDocumentメソッド

機能

デストラクタ

形式

virtual ~CdbrVersionableDocument()

詳細

CdbrVersionableDocumentオブジェクトのデストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrVersionableDocument::AddRenditionメソッド

機能

レンディションの追加

形式

// シングルファイル文書であるコンテントを
// レンディションの追加と同時に登録する場合
DmaBoolean AddRendition(
 pDmaString_T          pVersionId,
 pDmaString_T          pFilePath,
 pDmaString_T          pRenditionType,
 SDBR_PROPLIST*        pPropList )

// シングルファイル文書であるコンテントを
// レンディション変換機能を使って登録する場合
DmaBoolean AddRendition(
 pDmaString_T          pVersionId,
 pDmaString_T          pFilePath,
 pDmaString_T          pRenditionType,
 SDBR_PROPLIST*        pPropList,
 DmaInteger32          lConvertType)

// リファレンスファイル文書であるコンテントをレンディションの追加と同時に登録する場合
DmaBoolean AddRendition(
 pDmaString_T              pVersionId,
 SDBR_REFERENCE_PATHINFO&  ReferencePath,
 pDmaString_T              pRenditionType,
 SDBR_PROPLIST*            pPropList)

// File Link文書であるコンテントをレンディションの追加と同時に登録する場合
DmaBoolean AddRendition(
 pDmaString_T              pVersionId,
 SDBR_FILELINK_PATHINFO&   FileLinkPath,
 pDmaString_T              pRenditionType,
 SDBR_PROPLIST*            pPropList)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

// リファレンスパス情報構造体
struct SDBR_REFERENCE_PATHINFO {
 DmaInteger32  lContentOperateMode; // 操作モード
 pDmaString_T  pEntry;              // ファイルのパスおよびロケーション
 pDmaString_T  pTargetPath;         // コンテント格納先パス
 pDmaString_T  pDeleteRootPath;     // 削除ディレクトリのルートパス
};

// File Linkパス情報構造体
struct SDBR_FILELINK_PATHINFO {
 pDmaString_T  pFilePath;          // 登録ファイルまたはディレクトリのURL
 pDmaString_T  pFamName;           // FAM名
 pDmaString_T  pFamFilePath;       // コンテント保管先パス
 DmaInteger32  lContentDeleteMode; // コンテント削除モード
 DmaInteger32  lFileNamingMode;    // コンテント名自動生成モード
};

詳細

バージョン付き文書の指定されたバージョンに，指定されたレンディションとコンテントを追加するメソッドです。レンディション変換機能を使ってコンテントを登録する場合，コンテントが空のレンディションを追加できます。ただし，レンディション変換機能を使うには，DocumentBroker Rendering Optionが必要です。

このメソッドを使うことで，レンディションを複数持つ，マルチレンディション文書にすることができます。

なお，レンディションを複数持つマルチレンディション文書の場合，すべてのレンディションに空でないRenditionTypeが設定されている必要があります。つまり，RenditionTypeがNULLまたは空文字列（""）のレンディションは存在できません。したがって，マスタレンディションのRenditionTypeが設定されていない（NULLまたは空文字列（""）の場合）か，このメソッドの引数pRenditionTypeがNULLまたは空文字列（""）の場合，このメソッドはエラーになります。

このメソッドは，マルチファイルを管理するバージョン付き文書に対しては実行できません。

リファレンスファイル文書であるコンテントを登録する場合

登録するコンテントの情報として，SDBR_REFERENCE_PATHINFO構造体を指定します。リファレンスファイル文書であるコンテントを登録する場合，CdbrSession::SetReferencePathメソッドでコンテント格納先ベースパスを設定しておく必要があります。設定されていない場合は，ERR_TARGETCONTENTPATH_NOT_SETのエラーになります。

File Link文書であるコンテントを登録する場合

登録するコンテントの情報として，SDBR_FILELINK_PATHINFO構造体を指定します。この構造体には，登録するコンテントとして，ファイルまたはディレクトリを指定できます。ディレクトリを指定した場合，指定したディレクトリ下のファイルおよびそのサブディレクトリ下のすべてのファイルをコンテントとして登録できます。また，すでにHiRDB File Linkで管理されているデータをコンテントとして登録することもできます。

File Link文書であるコンテントを登録する場合，このメソッドで，ERR_FILELINK_FAILEDのエラーが発生したときは，詳細メッセージにHiRDB File Linkが出力するエラー情報が出力されます。HiRDB File Linkが出力するエラーを参照して，対処してください。

引数

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドによって取得します。NULLを指定した場合，カレントバージョンがレンディション追加の対象になります。

pFilePath（入力）

追加するサブレンディションに登録するファイルのパス名をURL形式で指定します。

例えば，レンディションの追加と同時にコンテントを登録する場合で，UNIXの場合にファイル"/tmp/sample.doc"を登録するには，"file:///tmp/sample.doc"と指定します。Windowsの場合にファイル"c:¥temp¥sample.doc"を登録するには，"file:///c:¥temp¥sample.doc"と指定します。有効なプロトコルは"file:"だけです。"file:"以外のプロトコルを指定した場合，指定を省略した場合またはNULLを指定した場合，エラーになります。

なお，レンディション変換機能を使ってコンテントを登録する場合（lConvertTypeにDBR_CONVERT_TYPE_BATCHを指定した場合）だけ，pFilePathにNULLを指定できます。

pRenditionType（入力）

追加するサブレンディションのRenditionTypeを表す文字列を指定します。例えばHTML文書の場合は，"MIME::text/html"などとします。NULLまたは空文字列（""）は指定できません。

レンディションを追加しようとする文書に，この引数で指定するRenditionTypeと同じレンディションがすでにある場合，エラーになります。

pPropList（入力）

追加するレンディションに設定するプロパティを格納したプロパティリスト構造体である，SDBR_PROPLIST構造体を指定します。プロパティを設定しない場合はNULLを指定してください。

なお，SDBR_PROPLIST構造体に，同じプロパティ識別子を指定したSDBR_PROP構造体を複数指定した場合はエラーになります。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

このメソッドで値を設定できるプロパティのプロパティ識別子を次に示します。

dbrProp_RetrievalName

lConvertType（入力）

レンディション変換の方法を指定します。次に示す値のどちらかを指定してください。

DBR_CONVERT_TYPE_USER
レンディション変換機能を使用しないでコンテントを登録する場合に指定します。この場合，コンテントとして登録するファイルはユーザ自身で用意し，pFilePathにそのパス名を指定します。

DBR_CONVERT_TYPE_BATCH
このメソッドの実行後にDocumentBroker Rendering Optionが提供するコマンドでレンディション変換を実行し，変換されたファイルをコンテントとして自動的に登録する場合に指定します。
なお，レンディション変換機能を使用しない場合は，DBR_CONVERT_TYPE_USERを指定してください。
また，マスタレンディションがシングルファイル文書の場合だけ，DBR_CONVERT_TYPE_BATCHを指定してレンディションの追加を行うことができます。マスタレンディションがシングルファイル文書でない文書に対して，DBR_CONVERT_TYPE_BATCHを指定した場合は，DocumentBroker Rendering Optionによるレンディション変換で，major_codeとしてERR_DBR，minor_codeとしてERR_CONTENTTYPE_MISMATCHのエラーになります。

ReferencePath（入力）

リファレンスファイル文書を登録するために必要な情報を格納した，SDBR_REFERENCE_PATHINFO構造体を指定します。SDBR_REFERENCE_PATHINFO構造体のメンバlContentOperateModeにDBR_OPERATEMODE_USER_RELATIVE_CONTENTを指定し，pEntryに追加するサブレンディションに登録するファイルのパス名をURL形式で指定します。

また，SDBR_REFERENCE_PATHINFO構造体のメンバpTargetPathに，コンテント格納先パスを，CdbrSession::SetReferencePathメソッドで設定したコンテント格納先ベースパスを基点とする相対パスで指定します。DocumentBrokerサーバがWindowsの場合UNC形式のパスで指定することもできます。

なお，lContentOperateModeにDBR_OPERATEMODE_NONEを指定した場合，コンテントを持たないオブジェクトが作成されます。

このメソッドを実行する場合，次に示すことに注意してください。

DocumentSpace構成定義のReferenceStorageModeエントリにOriginを指定した場合
次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときにこのメソッドを実行すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

pTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（35バイト）

pEntryで指定したファイル名

DocumentSpace構成定義のReferenceStorageModeエントリにDivideを指定した場合
次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときにこのメソッドを実行すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

pTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（6バイト）

DocumentBrokerが指定するファイル名（最大59バイト）

また，pTargetPathで指定するコンテント格納先パスの中に，カレントディレクトリの一つ上位のディレクトリを示す".."は指定できません。指定した場合，DMARC_BAD_PARAMETERのエラーになります。

リファレンスファイル文書を登録する場合，SDBR_REFERENCE_PATHINFO構造体のメンバpDeleteRootPathへの値の指定は，無効になります。

SDBR_REFERENCE_PATHINFO構造体に設定する内容については，「付録C.1(15)　SDBR_REFERENCE_PATHINFO構造体（リファレンスパス情報構造体）」を参照してください。

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
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

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_LIMITNUM_OF_RENDITIONS
保持できるレンディション数の上限に達しています。
この操作は実行できません。

ERR_DBR
ERR_MASTERRENDTYPE_NOT_SET
マスタレンディションのRenditionTypeに値が設定されていません。
この操作は実行できません。

ERR_DBR
ERR_NONEXISTS_VERSION
指定されたバージョンは存在しません。
正しいバージョンを指定してください。

ERR_DBR
ERR_OBJECT_ALREADY_CONNECTED
オブジェクトはすでに接続されています。
この操作は実行できません。

ERR_DBR
ERR_OBJECT_REMOVED
オブジェクトはすでに削除されています。
正しいオブジェクトを指定してください。

ERR_DBR
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドをコールしてから，このメソッドをコールしてください。

ERR_DBR
ERR_RENDITIONTYPE_DUPLICATED
RenditionTypeが重複しています。
重複しないRenditionTypeを指定してください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DBR
ERR_FILE_REFERENCE_OPERATION_FAILED
リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。
詳細メッセージを基に対処してください。

ERR_DBR
ERR_TARGETCONTENTPATH_NOT_SET
リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。
コンテント格納先ベースパスを設定してください。

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_PROPID
プロパティの識別子が不正です。
正しいプロパティ識別子を指定してください。

ERR_DMA
DMARC_BAD_URL
リソースのURLが不正です。
URLの内容を見直してください。

ERR_DMA
DMARC_BAD_VALUE
プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。
値の範囲を見直してください。

ERR_DMA
DMARC_DATATYPE_MISMATCH
プロパティのデータ型に適切ではないメソッドです。
正しい型を指定してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NO_RESERVATION
バージョン識別子が予約されていません。
チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。

ERR_DMA
DMARC_NOT_FOUND
要求された要素が見つかりません。
正しいオブジェクトを設定してください。

ERR_DMA
DMARC_NOT_SUPPORTED
このセッションまたはオブジェクトではサポートされていないメソッドです。
この操作は実行できません。

ERR_DMA
DMARC_READ_ONLY
読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。
このプロパティの値は更新できません。

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
使用できるファイル転送サービスがありません。

ネットワーク環境を確認してください。

_HIEDMS_FTPMODE=STATICを指定してファイル転送サービスを起動しているかどうかを，確認してください。

時間を置いて，再度実行してください。

ファイル転送サービスのセットアップコマンドを実行しているかどうかを，確認してください。

CdbrVersionableDocument::CdbrVersionableDocumentメソッド

機能

コンストラクタ

形式

CdbrVersionableDocument()

詳細

CdbrVersionableDocumentオブジェクトのコンストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrVersionableDocument::ChangeMasterRenditionメソッド

機能

マスタレンディションへの変更

形式

DmaBoolean ChangeMasterRendition(
 pDmaString_T         pVersionId,
 pDmaString_T         pRenditionType )

詳細

マルチレンディション文書の指定されたバージョンの，指定されたレンディションをマスタレンディションに変更します。変更した場合，既存のマスタレンディションはサブレンディションになります。

なお，メソッド実行時のRenditionStatusプロパティの状態フラグの値によって，このメソッドの実行可否に関して次に示す制限があります。

メソッド実行時のRenditionStatusプロパティの状態フラグの値 | ChangeMasterRenditionメソッドの実行可否
DBR_RENDSTATUS_SUBREND_EXIST | 実行できる
DBR_RENDSTATUS_NO_SUBREND | 実行できない
DBR_RENDSTATUS_MASTERREND_UPDATE | 変換フラグがDBR_RENDSTATUS_CONVERT_NOTREQUIREDであれば実行できる

このメソッドは，マルチファイル文書に対して実行できません。

引数

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドによって取得します。NULLを指定した場合，カレントバージョンがマスタレンディション変更の対象になります。

pRenditionType（入力）

対象となるバージョンのサブレンディションのRenditionTypeを表す文字列を指定します。

この引数で指定したRenditionTypeが，対象バージョンのマスタレンディションの場合，または対象バージョンのサブレンディションとして存在しない場合はエラーになります。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_CONTENT_IS_EMPTY | コンテンツが変換処理されてなくて空です。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_IS_MASTERRENDITION | 指定されたRenditionTypeはマスタレンディションです。 | RenditionTypeを見直してください。
ERR_DBR | ERR_NONEXISTS_RENDITION | 指定されたRenditionTypeは存在しません。 | RenditionTypeを見直してください。
ERR_DBR | ERR_NONEXISTS_VERSION | 指定されたバージョンは存在しません。 | 正しいバージョンを指定してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_RENDITION_NOT_CONVERTED | コンテンツが更新処理されていません。 | この操作は実行できません。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrVersionableDocument::ConvertContentTypeメソッド

機能

コンテント種別の変換

形式

// リファレンスファイル文書に変換する場合
DmaBoolean ConvertContentType(
 DmaInteger32                         lExecuteMode,
 DmaInteger32                         lSourceScope,
 DmaBoolean                           bIsChangeMaster,
 pDmaString_T                         pVersionId,
 pDmaString_T                         pRenditionType,
 DmaInteger32                         lSourceContentType,
 SDBR_RENDITION_COMMENTINFO&          CommentInfo,
 SDBR_REFERENCE_PATHINFO&             ReferencePath )

// シングルファイル文書に変換する場合
DmaBoolean ConvertContentType(
 DmaInteger32                         lExecuteMode,
 DmaInteger32                         lSourceScope,
 DmaBoolean                           bIsChangeMaster,
 pDmaString_T                         pVersionId,
 pDmaString_T                         pRenditionType,
 DmaInteger32                         lSourceContentType,
 SDBR_RENDITION_COMMENTINFO&          CommentInfo )

// レンディションコメント情報構造体
struct SDBR_RENDITION_COMMENTINFO {
 DmaBoolean      bIsInvestSourceComment; // コメントの付与フラグ
 DmaInteger32    lInvestMode;            // コメントの付与方式
 pDmaString_T    pRenditionComment;      // レンディションコメント
};

// リファレンスパス情報構造体
struct SDBR_REFERENCE_PATHINFO {
 DmaInteger32    lContentOperateMode;  // 操作モード
 pDmaString_T    pEntry;               // ファイルのパスおよびロケーション
 pDmaString_T    pTargetPath;          // コンテント格納先パス
 pDmaString_T    pDeleteRootPath;      // 削除ディレクトリのルートパス
};

詳細

コンテントの格納先（コンテント種別）を変換するメソッドです。

このメソッドを使用することでコンテントの格納先を変換したレンディションが追加されます。

このメソッドを実行する前にコンテント保管先ベースパスをCdbrSession::SetReferencePathメソッドで設定しておく必要があります。設定されていない場合は，ERR_TARGETCONTENTPATH_NOT_SETのエラーになります。

lSourceScope，pRenditionType，およびlSourceContentTypeで指定した変換対象のコンテントが存在しない場合は，ERR_CONVERT_CONTENT_TARGET_NOTFOUNDのエラーになります。

このメソッドで変換可能なコンテント種別の組み合わせを次に示します。

表16-3　ConvertContentTypeメソッドで変換できるコンテント種別

変換前のコンテント種別
（lSourceContentTypeで指定する値）
変換後のコンテント種別
（メソッドの形式）

シングルファイル文書
（DBR_CONTENTTYPE_CONTENT）
リファレンスファイル文書
（リファレンスファイル文書に変換する場合の形式）

リファレンスファイル文書
（DBR_CONTENTTYPE_REFERENCE）
シングルファイル文書
（シングルファイル文書に変換する場合の形式）

シングルファイル文書からリファレンスファイル文書に変換する場合

コンテントが登録されていないシングルファイル文書をリファレンスファイル文書に変換すると，リファレンスファイル文書のedmProp_ReferenceTypeには, DBR_REFERENCETYPE_NONEが設定され，コンテントは登録されません。

また，このメソッドを実行する場合，次に示すことに注意してください。

●DocumentSpace構成定義のReferenceStorageModeエントリにOriginを指定した場合

次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときにこのメソッドを実行すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

引数ReferencePathのSDBR_REFERENCE_PATHINFO構造体のメンバpTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（35バイト）

引数ReferencePathのSDBR_REFERENCE_PATHINFO構造体のメンバpEntryで指定したファイル名

●DocumentSpace構成定義のReferenceStorageModeエントリにDivideを指定した場合

次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときにこのメソッドを実行すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

引数ReferencePathのSDBR_REFERENCE_PATHINFO構造体のメンバpTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（6バイト）

DocumentBrokerが指定するファイル名（最大59バイト）

リファレンスファイル文書からシングルファイル文書に変換する場合

リファレンスファイル文書のContentLocationプロパティとCdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパスを合わせた文字列長（パスの区切り文字も含む）が，Windowsの場合260バイト以上，AIXの場合1023バイト以上であるとERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

引数

lExecuteMode（入力）

変換モードを指定します。

この引数にはDBR_CONVERT_MODE_VERVOSEを指定します。

lSourceScope（入力）

変換対象とするレンディションの範囲を指定します。

DBR_CONVERT_SOURCE_ALL
すべてのレンディションを対象とします。

DBR_CONVERT_SOURCE_SEPARATE
単一のレンディションを対象とします。変換するレンディションのレンディションタイプは，pRenditionTypeで指定します。

bIsChangeMaster（入力）

マスタレンディションのコンテントを変換する場合に，変換して追加されるレンディションをマスタレンディションにするかしないかを指定します。

DMA_TRUE
変換して追加されるレンディションをマスタレンディションに変更します。

DMA_FALSE
マスタレンディションの変更は行いません。

pRenditionType（入力）

lSourceScopeにDBR _CONVERT_SOURCE_SEPARATEを指定した場合は，変換の対象とするレンディションのレンディションタイプを表す文字列を指定します。指定したレンディションのコンテントが変換されます。この引数で指定したレンディションタイプが，対象文書のレンディションとして存在しない場合はエラーになります。

マスタレンディションの場合はNULLを使用することもできます。

空文字列（""）は指定できません。

ただし，lSourceScopeにDBR_CONVERT_SOURCE_ALLが指定されている場合は，pRenditionTypeへの値の指定は無効となります。

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。これはCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得します。省略した場合またはNULLを指定した場合は，カレントバージョンのコンテント種別を変換します。

lSourceContentType（入力）

変換対象とするコンテント種別を指定します。

DBR_CONTENTTYPE_CONTENT
シングルファイル文書のコンテントを対象とします。リファレンスファイル文書に変換する形式のメソッドの場合に指定します。メソッドの形式が一致しない場合，DMARC_BAD_PARAMETERのエラーになります。

DBR_CONTENTTYPE_REFERENCE
リファレンスファイル文書のコンテントを対象とします。シングルファイル文書に変換する形式のメソッドの場合に指定します。メソッドの形式が一致しない場合，DMARC_BAD_PARAMETERのエラーになります。

DBR_CONTENTTYPE_OTHER
コンテントの種別に関係なく変換を行います。ただし，表17-3のConvertContentTypeメソッドで変換できるコンテント種別に示す組み合わせを対象とします。変換対象外のコンテント種別は無視されます。

CommentInfo（入力）

サブレンディションに付与するコメントの情報をSDBR_RENDITION_COMMENTINFO構造体で指定します。

SDBR_RENDITION_COMMENTINFO構造体については，「付録C.1(18)　 SDBR_RENDITION_COMMENTINFO構造体（レンディションコメント情報構造体）」を参照してください。

ReferencePath（入力）

リファレンスファイル文書に変換するために必要な情報を格納した，SDBR_REFERENCE_PATHINFO構造体を指定します。リファレンスファイル文書に変換するには，SDBR_REFERENCE_PATHINFO構造体のメンバlContentOperateModeにDBR_OPERATEMODE_USER_RELATIVE_CONTENTを指定します。

また，SDBR_REFERENCE_PATHINFO構造体のpTargetPathに，コンテント格納先パスを，CdbrSession::SetReferencePathメソッドで設定したコンテント格納先ベースパスを基点とした相対パスで指定します。

pTargetPathで指定するコンテント格納先パスの中に，カレントディレクトリの一つ上位のディレクトリを示す".."は指定できません。指定した場合，DMARC_BAD_PARAMETERのエラーになります。

リファレンスファイル文書に変換する場合，SDBR_REFERENCE_PATHINFO構造体のメンバpEntry，およびpDeleteRootPathへの値の指定は，無効になります。

SDBR_REFERENCE_PATHINFO構造体については，「付録C.1(15)　SDBR_REFERENCE_PATHINFO構造体（リファレンスパス情報構造体）」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_LIMITNUM_OF_RENDITIONS
保持できるレンディション数の上限に達しています。
この操作は実行できません。

ERR_DBR
ERR_MASTERRENDTYPE_NOT_SET
マスタレンディションタイプ値が設定されていません。
マスタレンディションタイプ値を設定してください。

ERR_DBR
ERR_OBJECT_REMOVED
オブジェクトはすでに削除されています。
正しいオブジェクトを指定してください。

ERR_DBR
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドをコールしてから，このメソッドをコールしてください。

ERR_DBR
ERR_RENDITIONTYPE_DUPLICATED
レンディションタイプが重複しています。
正しいレンディションタイプを設定してください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
次の要因が考えられます。

セッションが接続されていません。

EDMRefresherコマンドが実行中です。

要因に応じて，次のどちらかの対策を実施してください。

セッションを接続してください。

EDMRefresherコマンドが終了したあと，再度実行してください。

ERR_DMA
DMARC_ACCESS_DENIED
要求された操作に対してアクセス権がありません。
正しいアクセス権を設定してください。

ERR_DMA
DMARC_BAD_OIID
SetOIIDメソッドで設定されたOIIDが不正です。
正しいOIIDを指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NOT_FOUND
要求された要素が見つかりません。
正しいオブジェクトを設定してください。

ERR_DMA
DMARC_NOT_SUPPORTED
このセッションまたはオブジェクトではサポートされていないメソッドです。
この操作は実行できません。

ERR_DMA
DMARC_UNEXPECTED
予期しないエラーが発生しました。
処理を終了してください。

ERR_DMA
EDMRC_NOT_INTRANSACTION
トランザクション外でメソッドが呼ばれました。
Beginメソッドの呼び出し後に，この操作を実行してください。

ERR_DBR
ERR_FILE_REFERENCE_OPERATION_FAILED
リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。
詳細メッセージを基に対処してください。

ERR_DBR
ERR_TARGETCONTENTPATH_NOT_SET
リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または， UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。
コンテント格納先ベースパスを設定してください。

ERR_DBR
ERR_CONVERT_CONTENT_TARGET_NOTFOUND
変換対象のコンテントは存在しません。
オブジェクトのコンテント種別または指定した変換対象とするコンテント種別（ISourseContentType）を見直してください。

ERR_DBR
ERR_CONVERT_CONTENT_NOT_RETRIEVALNAME
変換対象コンテントのdmaProp_RetrievalNameプロパティの値が設定されていない（値がNULLまたは，空文字列（""））のため，変換処理を実行できません。
dmaProp_RetrievalNameプロパティの値を設定してメソッドを実行してください。

CdbrVersionableDocument::CreateIndexメソッド

機能

全文検索インデクスの作成

形式

DmaBoolean CreateIndex(
 const pDmaString_T         pFilePath,
 const pDmaString_T         pVersionId = NULL )

詳細

指定したパス名のファイルから，全文検索インデクスを作成するメソッドです。パス名にNULLを指定した場合は，登録されている文書（マルチレンディション文書の場合はマスタレンディション）に含まれているコンテントから全文検索インデクスが作成されます。ただし，マルチファイル文書，リファレンスファイル文書またはFile Link文書の場合，NULLを指定するとERR_CONTENTTYPE_MISMATCHのエラーになります。

既存の全文検索インデクスを，別のファイルで更新する場合も，このメソッドを実行してください。これによって，インデクスの遅延更新が実現できます。

このメソッドは，全文検索機能付き文書クラスから作成されているDocVersionオブジェクトを構成要素としたCdbrVersionableDocumentオブジェクトにだけ実行できます。それ以外のオブジェクトを対象に実行した場合は，エラーになります。

また，インデクスを作成できるのは，テキストファイルとして作成されたファイルだけです。それ以外のRenditionTypeの文書を指定してこのメソッドを実行した場合の動作は保証されません。場合によっては，データベースがロールバックする可能性があります。この場合はデータベースエラーが出力されますので，エラーコードを参照して，データを再登録してください。

なお，登録されている文書とインデクスを作成するためのファイルの対応づけは，上位で行います。

引数

pFilePath（入力）

全文検索インデクスを作成するファイルのパス名を設定します。登録されている文書（マルチレンディション文書の場合はマスタレンディション）に含まれるコンテントからインデクスを作成する場合にはNULLを設定します。それ以外のファイルからインデクスを作成する場合には，ファイルのパス名をURL形式で設定します。例えば，UNIXの場合，全文検索インデクスをファイル"/tmp/sample.txt"から作成するには，"file:///tmp/sample.txt"と指定します。Windowsの場合，全文検索インデクスをファイル"c:¥temp¥sample.txt"から作成するには，"file:///c:¥temp¥sample.txt"と指定します。有効なプロトコルは"file:"だけです。これ以外のプロトコルを指定した場合はエラーになります。

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドによって取得します。NULLを指定した場合，カレントバージョンが対象になります。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_CONTENTTYPE_MISMATCH
指定したレンディションタイプのコンテントに対して実行できません。
正しい文書オブジェクトを指定してメソッドを実行してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_NONEXISTS_VERSION
指定されたバージョンは存在しません。
正しいバージョンを指定してください。

ERR_DBR
ERR_OBJECT_NOT_CONNECT
オブジェクトは接続されていません。
オブジェクトを接続してください。

ERR_DBR
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドをコールしてから，このメソッドをコールしてください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DMA
DMARC_ACCESS_DENIED
要求された操作に対してアクセス権がありません。
正しいアクセス権を設定してください。

ERR_DMA
DMARC_BAD_CLASSID
指定された識別子は，利用できるオブジェクトのクラスではありません。
正しいクラス識別子を指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_BAD_URL
リソースのURLが不正です。
URLの内容を見直してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NO_RESERVATION
バージョン識別子が予約されていません。
チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。

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
使用できるファイル転送サービスがありません。

ネットワーク環境を確認してください。

_HIEDMS_FTPMODE=STATICを指定してファイル転送サービスを起動しているかどうかを，確認してください。

時間を置いて，再度実行してください。

ファイル転送サービスのセットアップコマンドを実行しているかどうかを，確認してください。

CdbrVersionableDocument::CreateObjectメソッド

機能

オブジェクトの新規作成

形式

// シングルファイル文書の場合
DmaBoolean  CreateObject (
 CdbrSession*           pDbrSession,
 DmaInteger32           lDMAInfoListCount,
 SDBR_DMAINFO*          pDMAInfoList,
 pDmaString_T           pFilePath,
 pDmaString_T           pRenditionType,
 ppDmaString_T          ppOIID,
 DmaInteger32           lCreateIndexFlg = DBR_CREATE_INDEX)

// マルチファイル文書の場合
DmaBoolean CreateObject(
 CdbrSession*    pDbrSession,
 DmaInteger32    lDMAInfoListCount,
 SDBR_DMAINFO*   pDMAInfoList,
 SDBR_PATHLIST&  PathList,
 pDmaString_T    pRenditionType,
 ppDmaString_T   ppOIID)

// リファレンスファイル文書の場合
DmaBoolean CreateObject(
 CdbrSession*              pDbrSession,
 DmaInteger32              lDMAInfoListCount,
 SDBR_DMAINFO*             pDMAInfoList,
 SDBR_REFERENCE_PATHINFO&  ReferencePath,
 pDmaString_T              pRenditionType,
 ppDmaString_T             ppOIID)

// File Link文書の場合
DmaBoolean CreateObject(
 CdbrSession*             pDbrSession,
 DmaInteger32             lDMAInfoListCount,
 SDBR_DMAINFO*            pDMAInfoList,
 SDBR_FILELINK_PATHINFO&  FileLinkPath,
 pDmaString_T             pRenditionType,
 ppDmaString_T            ppOIID)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

// DMAオブジェクト生成用の構造体
struct SDBR_DMAINFO {
 DmaId                  ClassId;
 SDBR_PROPLIST          PropList;
};

// ファイルパス情報構造体
struct SDBR_PATHINFO {
 pDmaString_T      pFilePath;       // ファイルのURL
 pDmaString_T      pComponentType;  // ファイルを識別する文字列
};

// ファイルパス情報リスト構造体
struct SDBR_PATHLIST {
 DmaInteger32      lCount;          // 登録ファイル数
 SDBR_PATHINFO*    pItem;           // ファイルパス情報構造体のポインタ
};

// リファレンスパス情報構造体
struct SDBR_REFERENCE_PATHINFO {
 DmaInteger32  lContentOperateMode; // 操作モード
 pDmaString_T  pEntry;              // ファイルのパスおよびロケーション
 pDmaString_T  pTargetPath;         // コンテント格納先パス
 pDmaString_T  pDeleteRootPath;     // 削除ディレクトリのルートパス
};

// File Linkパス情報構造体
struct SDBR_FILELINK_PATHINFO {
 pDmaString_T  pFilePath;          // 登録ファイルまたはディレクトリのURL
 pDmaString_T  pFamName;           // FAM名
 pDmaString_T  pFamFilePath;       // コンテント保管先パス
 DmaInteger32  lContentDeleteMode; // コンテント削除モード
 DmaInteger32  lFileNamingMode;    // コンテント名自動生成モード
};

詳細

オブジェクトを新規に作成するメソッドです。

SetOIIDメソッドもしくはConnectObjectメソッドによってオブジェクトとすでに接続されている場合，またはこのメソッドがすでにコールされている場合は，既存の接続は変更されずに，このメソッドのコールがエラーになります。接続を終了するには，ReleaseObjectメソッドを実行してください。

Windowsの場合，次のことに注意してください。

GetContentAndLockメソッドによるコンテントの取得時，大文字と小文字を区別しないと同一になるファイル名がある場合，先に取得したファイルが上書きされます。例えば，先に取得された「AAA.txt」は，あとから取得された「aaa.txt」によって上書きされます。

GetContentAndLockメソッドによるコンテントの取得時，ロングファイル名とショートファイル名の関係で同一のファイル名とみなされるファイルがある場合，先に取得したファイルが上書きされます。例えば，先に取得された「AAAAAAAAA.txt」は，あとから取得された「AAAAAA~1.txt」によって上書きされます。

シングルファイル文書の場合

作成するオブジェクトが次の条件に当てはまる場合に，lCreateIndexFlgにDBR_CREATE_INDEXを指定すると，全文検索インデクスを作成できます。

DMAオブジェクト生成用の構造体である，SDBR_DMAINFO構造体のClassIdに，dmaClass_DocVersionクラスのサブクラスとして全文検索機能付き文書クラスが指定されている。

RenditionTypeがテキスト型（MIME::text/plain，MIME::text/sgmlまたはMIME::text/html）である。

ファイルの登録が正常に完了すると，パス名を除いたファイル名がRetrievalNameプロパティに設定されます。例えば，UNIXの場合にパス名が"file:///tmp/sample.doc"のファイルを登録すると，RetrievalNameプロパティには"sample.doc"が設定されます。Windowsの場合にパス名が"file:///c:¥temp¥sample.doc"のファイルを登録すると，RetrievalNameプロパティには"sample.doc"が設定されます。

UNIXの場合に，CdbrVersionableDocumentオブジェクトを新規に作成して接続する例を次に示します。この例では，DMAオブジェクトのConfigurationHistoryオブジェクトの基になるクラスの識別子「ClassID_ConfHist」およびDMAオブジェクトのDocVersionオブジェクトの基になるクラスの識別子「ClassID_DocVer」を指定して，CdbrVersionableDocumentオブジェクトを新規に作成します。そして，ファイル/tmp/sample.txtを，RenditionType"MIME::text/plain"で登録して，そのポインタを取得します。なお，Windowsの場合は，ファイルc:¥temp¥sample.txtを登録する例として，例中の"file:///tmp/sample.txt"を"file:///c:¥temp¥sample.txt"と読み替えてください。

CdbrVersionableDocumentオブジェクトを新規に作成して接続する例

// 変数宣言
CdbrVersionableDocument DbrVerDoc;
SDBR_DMAINFO           DMAClassList[2];
pDmaString              pOIID;

// DMAクラス情報の作成
DMAClassList[0].ClassId = ClassID_ConfHist;
DMAClassList[0].PropList.pItem = NULL;
DMAClassList[0].PropList.lCount = 0;
DMAClassList[1].ClassId = ClassID_DocVer;
DMAClassList[1].PropList.pItem = NULL;
DMAClassList[1].PropList.lCount = 0;
// オブジェクトの新規作成
DbrVerDoc.CreateObject(pDbrSession,
   2, DMAClassList,
   "file:///tmp/sample.txt", "MIME::text/plain", &pOIID,
   DBR_CREATE_INDEX);

マルチファイル文書の場合

登録するコンテントの情報として，SDBR_PATHLIST構造体を指定します。

マルチファイル文書を作成する場合は，次のことに注意してください。

マルチファイル文書では，テキストファイルの部分が特定できないため，全文検索用インデクスは作成されません。全文検索インデクスを作成する場合，テキスト部分を抽出したファイルを，CreateIndexメソッドの引数に指定して実行してください。なお，マルチファイル文書の場合，CreateIndexメソッドの引数にNULLを指定するとERR_CONTENTTYPE_MISMATCHのエラーになります。

dbrProp_RetrievalNameプロパティに値を設定する場合は，SDBR_DMAINFO構造体のメンバPropListに設定されたSDBR_PROPLIST構造体に設定してください。SDBR_PROPLIST構造体にdbrProp_RetrievalNameを設定していない場合，データベースにはNULL値が格納されます。

SDBR_PATHLIST構造体のlCountに指定したファイル数より，SDBR_PATHINFOの配列の個数が多い場合は，lCountに指定したファイル数分のファイルが登録されます。

同じファイル名を持つコンテントを格納しようとした場合は，ERR_RETRIEVALNAME_DUPLICATEDのエラーになります。なお，ファイル名は，英字の大文字と小文字を区別して比較されます。

SDBR_PATHLIST構造体のlCountが1の場合で，コンテントを格納するオブジェクトしてdmaClass_ContentTransferオブジェクトを作成するときは，マルチファイル管理機能を使用しない場合の形式で，メソッドを実行してください。

リファレンスファイル文書の場合

登録するコンテントの情報として，SDBR_REFERENCE_PATHINFO構造体を指定します。

リファレンスファイル文書を作成する場合は，次のことに注意してください。

リファレンスファイル文書では，全文検索用インデクスは作成されません。全文検索インデクスを作成する場合，テキスト部分を抽出したファイルを，CreateIndexメソッドの引数に指定して実行してください。なお，リファレンスファイル文書の場合，CreateIndexメソッドの引数にNULLを指定するとERR_CONTENTTYPE_MISMATCHのエラーになります。

コンテントに登録するファイルの種類を表すレンディションタイプは，登録したファイルの拡張子からは設定されません。レンディションタイプは，CreateObjectメソッドの引数として明示的に指定してください。この引数に指定した値が，レンディションごとのファイルの種類を表すプロパティとして設定されます。

File Link文書の場合

登録するコンテントの情報として，SDBR_FILELINK_PATHINFO構造体を指定します。この構造体には，登録するコンテントとして，ファイルまたはディレクトリを指定できます。ディレクトリを指定した場合，指定したディレクトリおよびそのサブディレクトリ下のすべてのファイルをコンテントとして登録できます。また，すでにHiRDB File Linkで管理されているデータをコンテントとして登録することもできます。

File Link文書を作成する場合は，次のことに注意してください。

File Link文書では，全文検索用インデクスは作成されません。全文検索インデクスを作成する場合，テキスト部分を抽出したファイルを，CreateIndexメソッドの引数に指定して実行してください。なお，File Link文書の場合，CreateIndexメソッドの引数にNULLを指定するとERR_CONTENTTYPE_MISMATCHのエラーになります。

コンテントに登録するファイルの種類を表すレンディションタイプは，登録したファイルの拡張子からは設定されません。レンディションタイプは，CreateObjectメソッドの引数として明示的に指定してください。この引数に指定した値が，レンディションごとのファイルの種類を表すプロパティとして設定されます。

このメソッドで，ERR_FILELINK_FAILEDのエラーが発生した場合は，詳細メッセージにHiRDB File Linkが出力するエラー情報が出力されます。HiRDB File Linkが出力するエラーを参照して，対処してください。

引数

pDbrSession（入力）

CdbrSessionオブジェクトを指定します。

lDMAInfoListCount（入力）

pDMAInfoListで指定した配列の個数を指定します。

1を指定した場合は，edmClass_VersionTracedComponentDocVersionクラスを使用してDocVersionオブジェクトが作成されます。

0を指定した場合は，pDMAInfoListの内容は無視され，edmClass_VersionTracedComponentDocVersionクラスを使用してDocVersionオブジェクトが作成されます。また，dmaClass_ConfigurationHistoryクラスを使用してConfigurationHistoryオブジェクトが作成されます。

負の数を指定した場合は，エラーになります。

pDMAInfoList（入力）

オブジェクトの構成要素として新規に作成するDMAオブジェクトの情報である，SDBR_DMAINFO構造体を格納した構造体の配列を指定します。

DMAオブジェクトの情報としてpDMAInfoList[0]にはdmaClass_ConfigurationHistoryクラスまたはそのサブクラスの情報，pDMAInfoList[1]にはdmaClass_DocVersionクラスまたはそのサブクラスの情報を指定してください。

lDMAInfoListCountが正の整数のときにpDMAInfoListにNULLを指定すると，エラーになります。

SDBR_DMAINFO構造体については，「付録C.1(3)　SDBR_DMAINFO構造体（DMAオブジェクト生成用の構造体）」を参照してください。

プロパティ情報を指定するSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

なお，VariableArray型プロパティを設定するとき，次の場合はエラーになります。このとき，major_codeとしてERR_DMA，minor_codeとしてDMARC_BAD_VALUEが返却されます。

DocumentBrokerサーバのメタ情報ファイル（edms.ini）のdmaProp_MaximumElementsエントリの値に2以上の値を設定しているときに，このエントリの値を超えてVariableArray型プロパティの要素を指定した場合

DocumentSpace構成定義ファイルdocspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義があるときに，VariableArray型プロパティの要素の値として，範囲外の値や最大値を超えた値を指定した場合

それぞれのデータ型に対応する値の範囲については，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

PathList（入力）

登録するファイルのファイルパス情報が設定されたSDBR_PATHLIST構造体を指定します。ファイルパス情報リスト構造体については，「付録C.1(11)　SDBR_PATHLIST構造体（ファイルパス情報リスト構造体）」を参照してください。

pFilePath（入力）

登録するファイルのパス名を指定します。パス名はURL形式で設定します。例えば，UNIXの場合，ファイル"/tmp/sample.doc"を登録するには，"file:///tmp/sample.doc"と指定します。Windowsの場合，ファイル"c:¥temp¥sample.doc"を登録するには，"file:///c:¥temp¥sample.doc"と指定します。有効なプロトコルは"file:"だけです。これ以外のプロトコルを指定した場合または指定を省略した場合はエラーになります。NULLを指定した場合，ファイルは登録されません。

pRenditionType（入力）

RenditionTypeを表す文字列を指定します。例えばHTML文書の場合は，"MIME::text/html"などとします。

NULLを指定した場合，ファイルの拡張子からRenditionTypeを決定する処理はされません。したがって，RenditionTypeには何も設定されません。

ppOIID（出力）

作成したCdbrVersionableDocumentオブジェクトのOIIDへのポインタが設定されます。ポインタを格納する領域を指定してください。なお，*ppOIIDがポイントするメモリは，ユーザプログラムでは解放しないでください。

lCreateIndexFlg（入力）

全文検索インデクスを作成するかどうかを指定します。次のどちらかを指定してください。省略した場合は，DBR_CREATE_INDEXを指定したものとして処理されます。

DBR_CREATE_INDEX
全文検索インデクスを作成します。

DBR_NOT_CREATE_INDEX
全文検索インデクスを作成しません。

なお，SDBR_DMAINFO構造体のClassIdに全文検索機能付きクラス以外のクラスを指定して作成した場合またはファイルのRenditionTypeがテキスト型でない場合は，lCreateIndexFlgの値は無視されます。

ReferencePath（入力）

リファレンスファイル文書を登録するために必要な情報を格納した，SDBR_REFERENCE_PATHINFO構造体を指定します。リファレンスファイル文書を登録するには，SDBR_REFERENCE_PATHINFO構造体のメンバlContentOperateModeにDBR_OPERATEMODE_USER_RELATIVE_CONTENTを指定し，pEntryに登録するファイルのパス名をURL形式で指定します。また，SDBR_REFERENCE_PATHINFO構造体のメンバpTargetPathに，コンテント格納先パスを，CdbrSession::SetReferencePathメソッドで設定したコンテント格納先ベースパスを基点とする相対パスで指定します。DocumentBrokerサーバがWindowsの場合UNC形式のパスで指定することもできます。

なお，lContentOperateModeにDBR_OPERATEMODE_NONEを指定した場合，コンテントがないオブジェクトが作成されます。

このメソッドを実行する場合，次に示すことに注意してください。

DocumentSpace構成定義のReferenceStorageModeエントリにOriginを指定した場合
次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときにこのメソッドを実行すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

pTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（35バイト）

pEntryで指定したファイル名

DocumentSpace構成定義のReferenceStorageModeエントリにDivideを指定した場合
次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときにこのメソッドを実行すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

pTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（6バイト）

DocumentBrokerが指定するファイル名（最大59バイト）

また，pTargetPathで指定するコンテント格納先パスの中に，カレントディレクトリの一つ上位のディレクトリを示す".."は指定できません。指定した場合，DMARC_BAD_PARAMETERのエラーになります。

リファレンスファイル文書を登録する場合，SDBR_REFERENCE_PATHINFO構造体のメンバpDeleteRootPathへの値の指定は，無効になります。

SDBR_REFERENCE_PATHINFO構造体に設定する内容については，「付録C.1(15)　SDBR_REFERENCE_PATHINFO構造体（リファレンスパス情報構造体）」を参照してください。

FileLinkPath（入力）

File Link文書を登録するために必要な情報を格納した，SDBR_FILELINK_PATHINFO構造体を指定します。

なお，SDBR_FILELINK_PATHINFO構造体のメンバpFilePathとメンバpFamFilePathの両方にNULLを設定した場合には，登録コンテントがないオブジェクトが作成されます。

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
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_BAD_CONTENTSCOUNT
登録しようとするファイルの数が多過ぎます。
登録するファイルの数を見直してください。

ERR_DBR
ERR_BAD_PERMISSION
不正なパーミッションが指定されました。
正しいパーミッションを指定してください。

ERR_DBR
ERR_BAD_SUBJECT_TYPE
不正なサブジェクト種別が指定されました。
正しいサブジェクト種別を指定してください。

ERR_DBR
ERR_FAL_NOT_LOADED
HiRDB File Linkのライブラリがロードできません。

詳細メッセージを基に対処してください。

ERR_DBR
ERR_FILELINK_FAILED
HiRDB File Linkでエラーが発生しました。

詳細メッセージを基に対処してください。

ERR_DBR
ERR_FILE_REFERENCE_OPERATION_FAILED
リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。
詳細メッセージを基に対処してください。

ERR_DBR
ERR_INVALID_ACE
不正なアクセス制御エレメント（ACE）が指定されました。
ACEとして正しいCdbrCompoundオブジェクトを指定してください。

ERR_DBR
ERR_INVALID_ACE_COUNT
設定するアクセス制御エレメント（ACE）の個数が制限値を超えています。
ACEは64個以内で指定してください。

ERR_DBR
ERR_INVALID_PUBLICACL_COUNT
バインドするパブリックACLの個数が制限値を超えています。
パブリックACLは10個以内で指定してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_INVALID_SUBJECT_LENGTH
サブジェクトの長さが不正です。
次に示す範囲内でサブジェクトを指定してください。

サブジェクトの種別がユーザ識別子の場合，1文字以上，ユーザ識別子の最大長以下の文字列を指定してください。
ユーザ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がグループ識別子の場合，1文字以上，グループ識別子の最大長以下の文字列を指定してください。
グループ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がシステムサブジェクトの場合，1文字以上，254文字以下の文字列を指定してください。

ユーザ識別子とグループ識別子の最大長を拡張する方法の詳細は，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

ERR_DBR
ERR_NONEXISTS_PUBLICACL
指定されたパブリックACLは存在しません。
存在しないパブリックACLを指定しないで処理を再実行してください。

ERR_DBR
ERR_OBJECT_ALREADY_CONNECTED
オブジェクトはすでに接続されています。
この操作は実行できません。

ERR_DBR
ERR_RETRIEVALNAME_DUPLICATED
RetrievalNameが重複して指定されています。
RetrievalNameが重複しないように指定してください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DBR
ERR_TARGETCONTENTPATH_NOT_SET
リファレンスファイル管理機能で，コンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。
コンテント格納先ベースパスを設定してください。

ERR_DMA
DMARC_ACCESS_DENIED
要求された操作に対してアクセス権がありません。
正しいアクセス権を設定してください。

ERR_DMA
DMARC_BAD_CLASSID
指定された識別子は，利用できるオブジェクトのクラスではありません。
正しいクラス識別子を指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_BAD_PROPID
プロパティの識別子が不正です。
正しいプロパティ識別子を指定してください。

ERR_DMA
DMARC_BAD_URL
リソースのURLが不正です。
URLの内容を見直してください。

ERR_DMA
DMARC_BAD_VALUE
次のどれかの要因が考えられます。

プロパティやリストの値が，許容範囲外の値であるか，または最大値を超えました。

VariableArray型プロパティに設定する可変長配列の要素数が最大値を超えました。

docspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義がある場合に，VariableArray型プロパティの要素の値が，許容範囲外の値であるか，または最大値を超えました。

次のどれかの方法で対処してください。

プロパティやリストの値の範囲を見直してください。

VariableArray型プロパティに設定する可変長配列の要素数を見直してください。

VariableArray型プロパティの要素の値の範囲を見直してください。

ERR_DMA
DMARC_DATATYPE_MISMATCH
プロパティのデータ型に適切ではないメソッドです。
正しい型を指定してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NOT_SUPPORTED
このセッションまたはオブジェクトではサポートされていないメソッドです。
この操作は実行できません。

ERR_DMA
DMARC_READ_ONLY
読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。
このプロパティの値は更新できません。

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
使用できるファイル転送サービスがありません。

ネットワーク環境を確認してください。

_HIEDMS_FTPMODE=STATICを指定してファイル転送サービスを起動しているかどうかを，確認してください。

時間を置いて，再度実行してください。

ファイル転送サービスのセットアップコマンドを実行しているかどうかを，確認してください。

CdbrVersionableDocument::CreateRelationメソッド

機能

文書間リレーションの設定

形式

// バージョンなし文書と関連づける場合
DmaBoolean CreateRelation(
 CdbrDocument*      pDbrDocument,
 SDBR_PROPLIST*     pRelPropList,
 ppDmaString_T      ppRelId)

// バージョン付き文書と関連づける場合
DmaBoolean CreateRelation(
 CdbrVersionableDocument*   pDbrVersionableDocument,
 SDBR_PROPLIST*             pRelPropList,
 ppDmaString_T              ppRelId)

// プロパティ構造体
struct SDBR_PROP {
 DmaId         PropId;       // プロパティ識別子
 DmaInteger32  lType;        // データ型
 DmaInteger32  lCardinality; // 基本単位
 DmaInteger32  lCount;       // 要素数
 union {                     // プロパティの値
   pDmaBoolean        pbBoolean;       // Boolean型
   pDmaInteger32      plInteger32;     // Integer32型
   pDmaId             pId;             // ID型
   pDmapv             ppObject;        // Object型
   ppDmaString_T      ppString;        // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32       lCount;
   SDBR_PROP*         pItem;
};

詳細

文書間のリレーションを設定するメソッドです。リレーション先には文書系のオブジェクトを指定します。指定できる文書系のオブジェクトを次に示します。

CdbrDocumentオブジェクト（バージョンなし文書）

CdbrVersionableDocumentオブジェクト（バージョン付き文書）

なお，リレーションには，ユーザ設定のプロパティを設定できます。

引数

pDbrDocument（入力）

このオブジェクトと関連づけるCdbrDocumentオブジェクト（バージョンなし文書）を指定します。

pDbrVersionableDocument（入力）

このオブジェクトと関連づけるCdbrVersionableDocumentオブジェクト（バージョン付き文書）を指定します。

pRelPropList（入力）

リレーションに設定するプロパティを格納したプロパティリスト構造体である，SDBR_PROPLIST構造体を指定します。プロパティを設定しない場合は，NULLを指定してください。

なお，SDBR_PROPLIST構造体に，同じプロパティ識別子を指定したSDBR_PROP構造体を複数指定した場合はエラーになります。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppRelId（出力）

リレーション識別子が設定されます。リレーション識別子が格納される領域を指定してください。

このリレーション識別子は，文書間リレーションを解除するためのRemoveRelationメソッドや，リレーションにプロパティを設定するためのPutRelationPropertyValuesメソッドで使用します。なお，*ppRelIdがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_DATATYPE_MISMATCH | プロパティのデータ型に適切ではないメソッドです。 | 正しい型を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionableDocument::DeleteRenditionメソッド

機能

レンディションの削除

形式

DmaBoolean DeleteRendition(
 pDmaString_T         pVersionId,
 pDmaString_T         pRenditionType )

詳細

マルチレンディション文書の指定されたサブレンディションとそのコンテントを削除します。

リファレンスファイル文書であるレンディションとそのコンテントを削除する場合，CdbrSession::SetReferencePathメソッドでコンテント格納先ベースパスを設定しておく必要があります。設定されていない場合，ERR_TARGETCONTENTPATH_NOT_SETのエラーになります。

このメソッドは，マルチファイルを管理するバージョン付き文書に対しては実行できません。

引数

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドによって取得します。NULLを指定した場合，カレントバージョンがレンディション削除の対象になります。

pRenditionType（入力）

削除するサブレンディションのRenditionTypeを表す文字列を指定します。

この引数で指定したRenditionTypeが対象バージョンのマスタレンディションの場合，または対象バージョンのサブレンディションとして存在しない場合はエラーになります。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_IS_MASTERRENDITION | 指定されたレンディションはマスタレンディションです。 | この操作は実行できません。
ERR_DBR | ERR_NONEXISTS_RENDITION | 指定されたレンディションは存在しません。 | この操作は実行できません。
ERR_DBR | ERR_NONEXISTS_VERSION | 指定されたバージョンは存在しません。 | 正しいバージョンを指定してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DBR | ERR_FILE_REFERENCE_OPERATION_FAILED | リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。 | 詳細メッセージを基に対処してください。
ERR_DBR | ERR_TARGETCONTENTPATH_NOT_SET | リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。 | コンテント格納先ベースパスを設定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrVersionableDocument::GetContentメソッド

機能

ファイルの取得

形式

// マスタレンディションのファイルを取得する場合
DmaBoolean GetContent(
 const pDmaString_T      pFilePath,
 const pDmaString_T      pVersionId = NULL)

// RenditionTypeを指定してファイルを取得する場合
DmaBoolean GetContent(
 const pDmaString_T      pFilePath,
 const pDmaString_T      pVersionId,
 pDmaString_T            pRenditionType )

詳細

文書空間に登録されているファイルを，指定したパスに複写するメソッドです。

マルチレンディション文書の場合，pRenditionTypeを指定することで，対応するRenditionTypeを持つレンディションのファイルが取得できます。

UNIXの場合に，カレントバージョンとして登録されているファイルを/tmp/sample.docに複写して取得する例を次に示します。Windowsの場合は，c:¥temp¥sample.docに複写して取得する例として，例中の"file:///tmp/sample.doc"を"file:///c:¥temp¥sample.doc"と読み替えてください。

ファイルを取得する例

pDbrVerDoc->GetContent("file:///tmp/sample.doc");

引数

pFilePath（入力）

取得したファイルを複写する複写先のパス名を指定します。

ファイルのパス名はURL形式で設定します。有効なプロトコルは"file:"だけです。例えば，UNIXの場合，ファイル"/tmp/sample.doc"に複写するには，"file:///tmp/sample.doc"と指定します。Windowsの場合，ファイル"c:¥temp¥sample.doc"に複写するには，"file:///c:¥temp¥sample.doc"と指定します。

指定したパスのファイルが存在する場合は上書きします。ファイル名は，RenditionTypeプロパティまたはRetrievalNameプロパティを参考にして，メソッドをコールする側が任意に決定してください。

指定したパスのファイルが存在しない場合，ディレクトリが存在し，かつファイルの作成が可能ならば新規にファイルを作成します。それ以外の場合はエラーになります。

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。この識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得します。省略した場合またはNULLを指定した場合は，カレントバージョンのファイルを取得します。

pRenditionType（入力）

RenditionTypeを指定してファイルを取得する場合，取得するレンディションのRenditionTypeを表す文字列を指定します。

この引数で指定したRenditionTypeが，対象バージョンのレンディションとして存在しない場合はエラーになります。

マスタレンディションの場合はNULLを指定するか，「マスタレンディションのファイルを取得する場合」の形式を使用することもできます。

空文字列（""）は指定できません。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_CONTENTTYPE_MISMATCH
指定したレンディションタイプのコンテントに対して実行できません。
正しい文書オブジェクトを指定してメソッドを実行してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_NONEXISTS_RENDITION
指定されたレンディションは存在しません。
正しいRenditionTypeを指定してください。

ERR_DBR
ERR_NONEXISTS_VERSION
指定されたバージョンは存在しません。
正しいバージョンを指定してください。

ERR_DBR
ERR_OBJECT_NOT_CONNECT
オブジェクトは接続されていません。
オブジェクトを接続してください。

ERR_DBR
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドをコールしてから，このメソッドをコールしてください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DMA
DMARC_ACCESS_DENIED
要求された操作に対してアクセス権がありません。
正しいアクセス権を設定してください。

ERR_DMA
DMARC_BAD_OIID
SetOIIDメソッドで設定されたOIIDが不正です。
正しいOIIDを指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_BAD_URL
リソースのURLが不正です。
URLの内容を見直してください。

ERR_DMA
DMARC_FAILED
操作が失敗しました。
時間を置いて再度実行するか，処理を見直してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NO_RESERVATION
バージョン識別子が予約されていません。
チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。

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
使用できるファイル転送サービスがありません。

ネットワーク環境を確認してください。

_HIEDMS_FTPMODE=STATICを指定してファイル転送サービスを起動しているかどうかを，確認してください。

時間を置いて，再度実行してください。

ファイル転送サービスのセットアップコマンドを実行しているかどうかを，確認してください。

CdbrVersionableDocument::GetContentAndLockメソッド

機能

ファイルの取得と同時に指定したロックの設定

形式

// シングルファイル文書の場合
// （マスタレンディションのファイルの取得）
DmaBoolean GetContentAndLock(
 const pDmaString_T      pFilePath,
 const pDmaString_T      pVersionId = NULL,
 DmaInteger32            lLockType = DMA_LOCK_WRITE)

// シングルファイル文書の場合
// （RenditionTypeを指定したファイルの取得）
DmaBoolean GetContentAndLock(
 const pDmaString_T      pFilePath,
 const pDmaString_T      pVersionId,
 pDmaString_T            pRenditionType,
 DmaInteger32            lLockType = DMA_LOCK_WRITE)

// マルチファイル文書の場合
DmaBoolean GetContentAndLock(
 pDmaString_T       pDirPath,
 SDBR_CONTENTLIST&  ContentList,
 pDmaString_T       pVersionId,
 pDmaString_T       pRenditionType,
 DmaInteger32       lLockType = DMA_LOCK_WRITE)

// リファレンスファイル文書の場合
DmaBoolean GetContentAndLock(
 SDBR_REFERENCE_PATHINFO&  ReferencePath,
 pDmaString_T              pVersionId,
 pDmaString_T              pRenditionType,
 pDmaInteger32             plReferenceType,
 ppDmaString_T             ppContentLocation,
 DmaInteger32              lLockType=DMA_LOCK_WRITE)

// File Link文書の場合
DmaBoolean GetContentAndLock(
 SDBR_FILELINK_PATHINFO&  FileLinkPath,
 const pDmaString_T       pVersionId,
 pDmaString_T             pRenditionType,
 DmaBinaryValue**         ppbvFileHandle,
 DmaInteger32             lLockType = DMA_LOCK_WRITE)

// コンテント情報構造体
struct SDBR_CONTENTINFO {
 pDmaString_T    pComponentType;   // ファイルを識別する文字列
 pDmaString_T    pRetrievalName;   // ファイル名
 DmaUInteger32   lContentSize;     // ファイルのサイズ
};

// コンテント情報リスト構造体
struct SDBR_CONTENTLIST {
 DmaInteger32       lCount;           // 取得ファイル数
 SDBR_CONTENTINFO*  pItem;            // コンテント情報構造体の
                                      // ポインタ
 DmaInteger32       lValidMode;       // 有効モード
 DmaBoolean         bIsMultiContents; // マルチファイル識別
};

// リファレンスパス情報構造体
struct SDBR_REFERENCE_PATHINFO {
 DmaInteger32  lContentOperateMode;    // 操作モード
 pDmaString_T  pEntry;                 // ファイルのパスおよびロケーション
 pDmaString_T  pTargetPath；           // コンテント格納先パス
 oDmaString_T  pDeleteRootPath；       // 削除ディレクトリのルートパス
};

// File Linkパス情報構造体
struct SDBR_FILELINK_PATHINFO {
 pDmaString_T  pFilePath;  // 取得先のファイルまたはディレクトリのURL
 pDmaString_T  pFamName;
 pDmaString_T  pFamFilePath;
 DmaInteger32  lContentDeleteMode;
 DmaInteger32  lFileNamingMode;
};

詳細

ロックタイプを明示的に指定して，文書空間に登録されているファイルを，指定したパスに複写するメソッドです。マルチレンディション文書の場合，pRenditionTypeを指定することで，対応するRenditionTypeを持つレンディションのファイルが取得できます。

Windowsの場合，次のことに注意してください。

大文字と小文字を区別しないと同一になるファイル名がある場合，先に取得したファイルが上書きされます。例えば，先に取得された「AAA.txt」は，あとから取得された「aaa.txt」によって上書きされます。

ロングファイル名とショートファイル名の関係で同一のファイル名とみなされるファイルがある場合，先に取得したファイルが上書きされます。例えば，先に取得された「AAAAAAAAA.txt」は，あとから取得された「AAAAAA~1.txt」によって上書きされます。

シングルファイル文書の場合

取得したコンテントが引数pFilePathに指定したファイルに複写されます。マルチレンディションのサブレンディションのコンテントを取得する場合は，引数pRenditionTypeに対象にするレンディションを指定します。

UNIXの場合に，カレントバージョンとして登録されているファイルを/tmp/sample.docに複写して取得する例を次に示します。Windowsの場合は，c:¥temp¥sample.docに複写して取得する例として，例中の"file:///tmp/sample.doc"を"file:///c:¥temp¥sample.doc"と読み替えてください。なお，この例で取得できるのは，マスタレンディションのコンテントです。

ファイルを取得する例

pDbrVerDoc->GetContentAndLock("file:///tmp/sample.doc",DMA_LOCK_READ);

マルチファイル文書の場合

引数ContentListで指定した複数のファイルをコンテントとして取得します。取得したコンテントは，引数pDirPathで指定したディレクトリに出力されます。ファイル名は，SDBR_CONTENTINFO構造体に設定しているpRetrievalNameの値になります。

マルチファイル文書の場合，次のことに注意してください。

GetContentInfoメソッドで取得したSDBR_CONTENTLIST構造体を使用して，このメソッドを実行する場合，lValidModeは変更しないでください。

この形式のGetContentメソッドを，マルチファイル文書ではないバージョン付き文書に対して実行すると，ERR_NOT_MULTI_CONTENTSのエラーになります。

リファレンスファイル文書の場合

取得したコンテントが，引数ReferencePathのSDBR_REFERENCE_PATHINFO構造体のメンバpEntryに指定したファイルに出力されます。

リファレンスファイル文書の場合，次のことに注意してください。

このメソッドは，レンディションのコンテント種別がContentReferenceオブジェクトの場合（dbrProp_ContentTypeプロパティの値がDBR_CONTENTTYPE_REFERENCEの場合）にだけ有効となります。そのほかのコンテント種別を持つレンディションに対して実行すると，ERR_CONTENTTYPE_MISMATCHのエラーになります。

File Link文書の場合

取得したコンテントが，引数FileLinkPathのSDBR_FILELINK_PATHINFO構造体のメンバpFilePathに指定したファイルまたはディレクトリに出力されます。

コンテントとしてディレクトリが登録されている文書のレンディションに対してこのメソッドを実行すると，引数に指定したSDBR_FILELINK_PATHINFO構造体のメンバpFilePathに指定した名前のディレクトリが作成され，その下に登録されているディレクトリおよびサブディレクトリ下のすべてのファイルが取得されます。コンテントとしてディレクトリが登録されている文書のレンディションとは，AddRenditionメソッド，CreateObjectメソッド，UpdateContentメソッドまたはUpdateContentAndRenditionTypeメソッドの引数FileLinkPathに指定したSDBR_FILELINK_PATHINFO構造体のメンバpFilePathに，ディレクトリを指定して登録または更新した文書のレンディションのことです。

File Link文書の場合，次のことに注意してください。

このメソッドは，レンディションのコンテント種別がContentFileLinkオブジェクトの場合（dbrProp_ContentTypeプロパティの値がDBR_CONTENTTYPE_FILELINKの場合）にだけ有効となります。そのほかのコンテント種別を持つレンディションに対して実行すると，ERR_CONTENTTYPE_MISMATCHのエラーになります。

コンテントとして空のディレクトリが登録されているレンディションに対してこのメソッドを実行すると，ERR_CONTENT_NOT_REGISTEREDのエラーになります。コンテントとして空のディレクトリが登録されているレンディションとは，AddRenditionメソッド，CreateObjectメソッド，UpdateContentメソッドまたはUpdateContentAndRenditionTypeメソッドの引数FileLinkPathに指定したSDBR_FILELINK_PATHINFO構造体のメンバpFilePathに，空のディレクトリを指定して作成または更新した文書のレンディションのことです。

引数に指定するSDBR_FILELINK_PATHINFO構造体のメンバpFilePathで指定したファイル名のファイル，またはディレクトリパスのディレクトリ下に取得しようとするファイルがすでに存在する場合，ERR_FILELINK_FAILEDのエラーになります。

このメソッドで，ERR_FILELINK_FAILEDのエラーが発生した場合は，詳細メッセージにHiRDB File Linkが出力するエラー情報が出力されます。HiRDB File Linkが出力するエラーを参照して，対処してください。

引数

pDirPath（入力）

出力されるファイルの格納先ディレクトリを，URL形式で指定します。

指定したパスのディレクトリが存在し，かつそのディレクトリへの実行権限，書き込み権限があれば，取得したファイルを格納します。それ以外の場合，エラーになります。

ContentList（入力）

取得するコンテントの情報を設定したSDBR_CONTENTLIST構造体を指定します。SDBR_CONTENTLIST構造体については，「付録C.1(2)　SDBR_CONTENTLIST構造体（コンテント情報リスト構造体）」を参照してください。

pFilePath（入力）

取得したファイルを複写する複写先のパス名を指定します。

ファイルのパス名はURL形式で指定します。有効なプロトコルは"file:"だけです。例えば，UNIXの場合，ファイル"/tmp/sample.doc"に複写するには，"file:///tmp/sample.doc"と指定します。Windowsの場合，ファイル"c:¥temp¥sample.doc"に複写するには，"file:///c:¥temp¥sample.doc"と指定します。

指定したパスのファイルが存在する場合は上書きします。ファイル名は，RenditionTypeプロパティまたはRetrievalNameプロパティを参考にして，メソッドをコールする側が任意に決定してください。

指定したパスのファイルが存在しない場合，ディレクトリが存在し，かつファイルの作成が可能ならば新規にファイルを作成します。それ以外の場合はエラーになります。

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。これはCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得します。省略した場合またはNULLを指定した場合は，カレントバージョンのファイルを取得します。

pRenditionType（入力）

RenditionTypeを指定してファイルを取得する場合，取得するレンディションのRenditionTypeを表す文字列を指定します。

この引数で指定したRenditionTypeが，対象バージョンのレンディションとして存在しない場合はエラーになります。

マスタレンディションの場合はNULLを指定するか，「マスタレンディションのファイルを取得する場合」の形式を使用することもできます。なお，空文字列（""）は指定できません。

マルチファイル文書の場合，NULLまたは「シングルファイル文書の場合（マスタレンディションのファイルの取得）」の形式を指定してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

ReferencePath（入力）

リファレンスファイル文書を取得するために必要な情報を格納した，SDBR_REFERENCE_PATHINFO構造体を指定します。ContentLocationプロパティとCdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパスを合わせた文字列長（パスの区切り文字も含む）が，Windowsの場合260バイト以上，AIXの場合は1023バイト以上であるとERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

リファレンスファイル文書を取得する場合，SDBR_REFERENCE_PATHINFO構造体のメンバpTargetPathおよびpDeleteRootPathへの値の指定は，無効になります。

SDBR_REFERENCE_PATHINFO構造体に設定する内容については，「付録C.1(15)　SDBR_REFERENCE_PATHINFO構造体（リファレンスパス情報構造体）」を参照してください。

plReferenceType（出力）

コンテントのリファレンス種別（ReferenceType）を取得する場合，リファレンス種別を格納する領域のポインタを指定します。NULLを指定した場合，リファレンス種別は返却されません。

ppContentLocation（出力）

コンテントロケーション（ContentLocationプロパティ）を取得する場合，コンテントロケーションへのポインタを格納する領域を指定します。NULLを指定した場合，コンテントロケーションは返却されません。取得した領域は，dbrDelete関数で解放する必要があります。dbrDelete関数の詳細については，「20.　関数」の「dbrDelete関数」を参照してください。

FileLinkPath（出力）

SDBR_FILELINK_PATHINFO構造体のpFilePathメンバだけが有効となります。そのほかのメンバの設定値は無視されます。pFilePathに，コンテントの取得先となるクライアントのファイルパスまたはディレクトリパスを指定してください。

SDBR_FILELINK_PATHINFO構造体の指定内容については，「付録C.1(5)　SDBR_FILELINK_PATHINFO構造体（File Linkパス情報構造体）」を参照してください。

ppbvFileHandle（出力）

ppbvFileHandleにファイルハンドル情報が返却されます。この引数にはNULLを指定してください。取得した領域は，dbrDelete関数で解放する必要があります。dbrDelete関数の詳細については，「20.　関数」の「dbrDelete関数」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_COMPONENTTYPE_DUPLICATED
ComponentTypeが重複して指定されています。
ComponentTypeが重複しないように指定してください。

ERR_DBR
ERR_CONTENT_NOT_REGISTERED
コンテントが登録されていません。
コンテントを登録してください。

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_FILE_REFERENCE_OPERATION_FAILED
リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。
詳細メッセージを基に対処してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_NONEXISTS_RENDITION
指定されたレンディションは存在しません。
正しいRenditionTypeを指定してください。

ERR_DBR
ERR_NOT_MULTI_CONTENTS
マルチファイル文書ではありません。
マルチファイル管理機能を使用しない場合の形式で実行してください。

ERR_DBR
ERR_NONEXISTS_VERSION
指定されたバージョンは存在しません。
正しいバージョンを指定してください。

ERR_DBR
ERR_OBJECT_NOT_CONNECT
オブジェクトは接続されていません。
オブジェクトを接続してください。

ERR_DBR
ERR_OBJECT_REMOVED
オブジェクトはすでに削除されています。
正しいオブジェクトを指定してください。

ERR_DBR
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドをコールしてから，このメソッドをコールしてください。

ERR_DBR
ERR_REFERENCETYPE_MISMATCH
オブジェクト種別が一致していません。
オブジェクト種別または指定した操作モード（lContentOperateMode）を見直してください。

ERR_DBR
ERR_RETRIEVALNAME_DUPLICATED
RetrievalNameが重複して指定されています。
RetrievalNameが重複しないように指定してください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DBR
ERR_TARGETCONTENTPATH_NOT_SET
リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。
コンテント格納先ベースパスを設定してください。

ERR_DMA
DMARC_ACCESS_DENIED
要求された操作に対してアクセス権がありません。
正しいアクセス権を設定してください。

ERR_DMA
DMARC_BAD_LOCK_TYPE
不正な種類のロックが指定されています。
正しいロックタイプを指定してください。

ERR_DMA
DMARC_BAD_OIID
SetOIIDメソッドで設定されたOIIDが不正です。
正しいOIIDを指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_BAD_URL
リソースのURLが不正です。
URLの内容を見直してください。

ERR_DMA
DMARC_FAILED
操作が失敗しました。
時間を置いて再度実行するか，処理を見直してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NO_RESERVATION
バージョン識別子が予約されていません。
チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。

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
使用できるファイル転送サービスがありません。

ネットワーク環境を確認してください。

_HIEDMS_FTPMODE=STATICを指定してファイル転送サービスを起動しているかどうかを，確認してください。

時間を置いて，再度実行してください。

ファイル転送サービスのセットアップコマンドを実行しているかどうかを，確認してください。

CdbrVersionableDocument::GetContentInfoメソッド

機能

マルチファイル文書の情報の取得

形式

DmaBoolean GetContentInfo(
 pDmaString_T        pVersionId,
 pDmaString_T        pRenditionType,
 SDBR_CONTENTLIST**  ppContentList,
 DｍaInteger32       lLockType = DMA_LOCK_READ)

//コンテント情報構造体
struct SDBR_CONTENTINFO {
 pDmaString_T    pComponentType;   // ファイルを識別する文字列
 pDmaString_T    pRetrievalName;   // ファイル名
 DmaUInteger32   lContentSize;     // ファイルのサイズ
};

//コンテント情報リスト構造体
struct SDBR_CONTENTLIST {
 DmaInteger32       lCount;           // 取得ファイル数
 SDBR_CONTENTINFO*  pItem;            // コンテント情報構造体の
                                      // ポインタ
 DmaInteger32       lValidMode;       // 有効モード
 DmaBoolean         bIsMultiContents; // マルチファイル識別
};

詳細

指定したレンディションのコンテントの情報を取得します。取得した情報は，引数ppContentListで指定したSDBR_CONTENTLIST構造体の領域に格納されます。返却されたSDBR_CONTENTLIST構造体のメンバに設定される値については，「付録C.1(2)　SDBR_CONTENTLIST構造体（コンテント情報リスト構造体）」を参照してください。

このppContentListに返却されたSBDR_CONTENTLIST構造体は，直接GetContentAndLockメソッドの引数として指定できます。ただし，返却されたSDBR_CONTENTLIST構造体のlCountが0でないことを確認してから，GetContentAndLockメソッドの引数として指定してください。lCountが0であるSDBR_CONTENTLIST構造体をGetContentAndLockメソッドの引数として指定すると，DMARC_BAD_PARAMETERのエラーになります。

引数

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドによって取得します。NULLを指定した場合，カレントバージョンがマスタレンディション変更の対象になります。

pRenditionType（入力）

レンディションのRenditionTypeを表す文字列を指定します。指定したレンディションのコンテントの情報が取得されます。

NULLを指定した場合，マスタレンディションが処理対象になります。

ppContentList（出力）

コンテント情報リスト構造体のポインタを格納する領域を指定します。このポインタが示す領域はクラスライブラリが確保するため，使用後はこのポインタをdbrDelete関数で解放してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を指定してください。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_NONEXISTS_RENDITION | 指定されたRenditionTypeは存在しません。 | RenditionTypeを見直してください。
ERR_DBR | ERR_NONEXISTS_VERSION | 指定されたバージョンは存在しません。 | 正しいバージョンを指定してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrVersionableDocument::GetRelationListメソッド

機能

文書のリレーション情報の一覧取得

形式

DmaBoolean GetRelationList(
 pDmaBoolean             pbContinue,
 DmaInteger32            lClassType,
 DmaInteger32            lPropDefListCount,
 SDBR_PROPDEF*           pPropDefList,
 DmaInteger32            lRelPropDefListCount,
 SDBR_PROPDEF*           pRelPropDefList,
 DmaInteger32            lRelationListCount,
 SDBR_RELATIONLIST**     ppRelationList,
 DmaInteger32            lRelationendType,
 DmaInteger32            lRelationendStatus)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
  DmaId             PropId;        //プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;       //Boolean型
    pDmaInteger32    plInteger32;     //Integer32型
    pDmaId           pId;             //ID型
    pDmapv           ppObject;        //Object型
    ppDmaString_T    ppString;        //String型
   } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

// リレーションリスト構造体
struct SDBR_RELATIONLIST {
 DmaInteger32       lCount; //リレーションしている数
 SDBR_RELATIONINFO* pItem;  //リレーション情報構造体へのポインタ
};

// リレーション情報構造体
struct SDBR_RELATIONINFO {
 pDmaString_T   pOIID;        //文書オブジェクトのOIID
 DmaInteger32   lType;        //オブジェクトの種別
 pDmaString_T   pRelId;       //リレーション識別子
 SDBR_PROPLIST  PropList;     //オブジェクトのプロパティリスト
 SDBR_PROPLIST  RelPropList;  //リレーションのプロパティリスト
};

詳細

文書間リレーションで関連づけられている文書の一覧情報を取得するメソッドです。

引数lRelationendTypeにDBR_RELATIONEND_HEADを設定することによって，このオブジェクトに関連づけされているリレーション先文書の一覧情報を取得できます。また，lRelationendTypeにDBR_RELATIONEND_TAILを設定することによって，このオブジェクトをリレーション先に持つリレーション元文書の一覧情報を取得できます。

初回取得時は，引数pbContinueにDMA_FALSEを設定してメソッドをコールします。１回のメソッドのコールで一覧の取得が完了しなかった場合，引数pbContinueにDMA_TRUEが設定されます。残りの要素は，引数pbContinueにDMA_TRUEを設定して取得します。引数pbContinueがDMA_FALSEになるまで，繰り返してこのメソッドをコールしてください。

リレーション先のオブジェクトが削除されていて，RemoveRelationメソッドで文書間リレーションが解除されないままの場合，リレーション情報は残っている状態になります。この場合も，引数lRelationendStatusにDBR_RELATIONEND_STATUS_NOT_EXISTまたはDBR_RELATIONEND_STATUS_ALLを設定することによって，削除されたオブジェクトのリレーション情報を取得できます。オブジェクトが削除されていてリレーション情報だけが残っている場合，リレーション情報構造体である，SDBR_RELATIONINFO構造体の内容は，pOIID = NULL，lType = DBR_CLASS_UNKNOWN，PropList.lCount = 0，PropList.pItem = NULLになり，pRelIdとRelPropListだけに正当な値が設定されます。

なお，このメソッドで取得したリレーション識別子は，トランザクションが終了するまで有効とは限りません。ほかのトランザクションから削除されたり，リレーションのプロパティを変更されたりする可能性があります。

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得した要素の残りを破棄して，新たに先頭から取得します。

なお，オブジェクトの生成後初めてメソッドをコールした場合，または前回の読み出しですべて取得した場合は，DMA_FALSEが指定されたものとして動作します。

前回の読み出しと異なる引数を持つメソッドがコールされた場合は，pbContinueの値を無視し，前回取得の残りを破棄して新たに先頭から取得します。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す次の値が設定されます。

DMA_TRUE
継続可能（まだ取得していない残りの要素があります）。

DMA_FALSE
継続不可（すべての要素を取得しました）。

lClassType（入力）

指定されたクラス識別子の要素だけを取得します。ただし，関連づけの対象オブジェクトがすでに削除されていて，リレーションだけが残っているリレーション情報についてはlClassTypeの指定とは無関係にすべて取得されます。

指定できるクラス識別子を次に示します。

クラス識別子 | クラスの種別
DBR_CLASS_VERSIONABLEDOCUMENT | CdbrVersionableDocumentクラス
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_ALL | すべてのクラス

それぞれのクラスの識別子をOR条件とした取得もできます。例えば，CdbrDocumentクラスとCdbrVersionableDocumentクラスの要素を取得したい場合は，次のように指定します。

DBR_CLASS_DOCUMENT | DBR_CLASS_VERSIONABLEDOCUMENT

すべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。

lPropDefListCount（入力）

文書間リレーション情報の一覧と同時に取得するプロパティの個数（引数pPropDefListに指定する配列の要素数）を0以上の値で指定します。プロパティを取得しない場合は0を指定します。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

文書間リレーション情報の一覧と同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。プロパティを取得しない場合はNULLを指定してください。NULLは，lPropDefListCountが0の場合だけ指定できます。lPropDefListCountが正の整数のときにpPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lRelPropDefListCount（入力）

文書間リレーション情報の一覧と同時に取得するリレーションのプロパティの個数（引数pRelPropDefListに指定する配列の要素数）を0以上の値で指定します。プロパティを取得しない場合は0を指定します。負の値を指定した場合は，エラーになります。

pRelPropDefList（入力）

文書間リレーション情報の一覧と同時に取得するリレーションのプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。プロパティを取得しない場合はNULLを指定してください。NULLは，lRelPropDefListCountが0の場合だけ指定できます。lRelPropDefListCountが正の整数のときにpRelPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lRelationListCount（入力）

取得する文書間リレーション情報の数を１以上の値で指定します。0以下の値を指定するとエラーになります。

ppRelationList（出力）

取得した文書間リレーション情報一覧へのポインタである，SDBR_RELATIONLIST構造体が設定されます。ポインタを格納する領域を指定してください。**ppRelationListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，**ppRelationListを指定してメモリを解放すると，構造体のメンバ(**ppRelationList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがってメソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_RELATIONLIST構造体およびSDBR_RELATIONINFO構造体に設定される内容については，「付録C.1(17)　SDBR_RELATIONLIST構造体（リレーションリスト構造体）」および「付録C.1(16)　SDBR_RELATIONINFO構造体（リレーション情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lRelationendType（入力）

このオブジェクトが文書間リレーションで関連づけているリレーション先オブジェクトの一覧を取得するか，このオブジェクトが文書間リレーションで関連づけられているリレーション元オブジェクトの一覧を取得するかを指定します。

次に示す値のどちらかを指定してください。

DBR_RELATIONEND_HEAD
このオブジェクトが文書間リレーションで関連づけているリレーション先オブジェクトの一覧を取得する場合に指定します。

DBR_RELATIONEND_TAIL
このオブジェクトが文書間リレーションで関連づけられているリレーション元オブジェクトの一覧を取得する場合に指定します。

lRelationendStatus（入力）

関連づけの対象オブジェクトが存在しているリレーション情報の一覧を取得するか，すでに関連づけの対象オブジェクトが削除されていて，リレーションだけ残っているリレーション情報の一覧を取得するかを指定します。

次に示す値のどれかを指定してください。

DBR_RELATIONEND_STATUS_EXIST
関連づけの対象オブジェクトが存在しているリレーション情報の一覧を取得する場合に指定します。

DBR_RELATIONEND_STATUS_NOT_EXIST
すでに関連づけの対象オブジェクトが削除されていて，リレーションだけが残っているリレーション情報の一覧を取得する場合に指定します。
この場合，lClassTypeでのクラス種別の指定は無効になります。つまり，lClassTypeでクラス種別を指定しているかどうかに関係なく，関連づけの対象オブジェクトが削除されているリレーション情報はすべて取得されます。

DBR_RELATIONEND_STATUS_ALL
すべてのリレーション情報の一覧を取得する場合に指定します。
この場合，関連づけの対象オブジェクトが存在しているリレーションに関しては，lClassTypeでのクラス種別の指定が有効です。ただし，関連づけの対象オブジェクトが削除されているリレーション情報は，lClassTypeでのクラス種別の指定とは無関係にすべて取得されます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionableDocument::GetRelationListAndLockメソッド

機能

文書のリレーション情報の一覧取得と同時に指定したロックの設定

形式

DmaBoolean GetRelationListAndLock(
 pDmaBoolean             pbContinue,
 DmaInteger32            lClassType,
 DmaInteger32            lPropDefListCount,
 SDBR_PROPDEF*           pPropDefList,
 DmaInteger32            lRelPropDefListCount,
 SDBR_PROPDEF*           pRelPropDefList,
 DmaInteger32            lRelationListCount,
 SDBR_RELATIONLIST**     ppRelationList,
 DmaInteger32            lRelationendType,
 DmaInteger32            lRelationendStatus,
 DmaInteger32            lLockType = DMA_LOCK_WRITE)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
  DmaId             PropId;        //プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;       //Boolean型
    pDmaInteger32    plInteger32;     //Integer32型
    pDmaId           pId;             //ID型
    pDmapv           ppObject;        //Object型
    ppDmaString_T    ppString;        //String型
   } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

// リレーションリスト構造体
struct SDBR_RELATIONLIST {
 DmaInteger32       lCount; //リレーションしている数
 SDBR_RELATIONINFO* pItem;  //リレーション情報構造体へのポインタ
};

// リレーション情報構造体
struct SDBR_RELATIONINFO {
 pDmaString_T   pOIID;        //文書オブジェクトのOIID
 DmaInteger32   lType;        //オブジェクトの種別
 pDmaString_T   pRelId;       //リレーション識別子
 SDBR_PROPLIST  PropList;     //オブジェクトのプロパティリスト
 SDBR_PROPLIST  RelPropList;  //リレーションのプロパティリスト
};

詳細

ロックタイプを明示的に指定して，文書間リレーションで関連づけられている文書の一覧情報を取得するメソッドです。

引数lRelationendTypeにDBR_RELATIONEND_HEADを設定することによって，このオブジェクトに関連づけされているリレーション先文書の一覧情報を取得します。また，lRelationendTypeにDBR_RELATIONEND_TAILを設定することによって，このオブジェクトをリレーション先に持つリレーション元文書の一覧情報を取得できます。

初回取得時は，引数pbContinueにDMA_FALSEを設定してメソッドをコールします。１回のメソッドのコールで一覧の取得が完了しなかった場合，引数pbContinueにDMA_TRUEが設定されます。残りの要素は，引数pbContinueにDMA_TRUEを設定して取得します。引数pbContinueがDMA_FALSEになるまで，繰り返してこのメソッドをコールしてください。

リレーション先のオブジェクトが削除されていて，RemoveRelationメソッドで文書間リレーションが解除されないままの場合，リレーション情報は残っている状態になります。この場合も，引数lRelationendStatusにDBR_RELATIONEND_STATUS_NOT_EXISTまたはDBR_RELATIONEND_STATUS_ALLを設定することによって，削除されたオブジェクトのリレーション情報を取得できます。オブジェクトが削除されていてリレーション情報だけが残っている場合，リレーション情報構造体である，SDBR_RELATIONINFO構造体の内容は，pOIID = NULL，lType = DBR_CLASS_UNKNOWN，PropList.lCount = 0，PropList.pItem = NULLになり，pRelIdとRelPropListだけに正当な値が設定されます。

なお，このメソッドで取得したリレーション識別子は，トランザクションが終了するまで有効とは限りません。ほかのトランザクションから削除されたり，リレーションのプロパティを変更されたりする可能性があります。

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得した要素の残りを破棄して，新たに先頭から取得します。

なお，オブジェクトの生成後初めてメソッドをコールした場合，または前回の読み出しですべて取得した場合は，DMA_FALSEが指定されたものとして動作します。

前回の読み出しと異なる引数を持つメソッドがコールされた場合は，pbContinueの値無視し，前回取得の残りを破棄して新たに先頭から取得します。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す次の値が設定されます。

DMA_TRUE
継続可能（まだ取得していない残りの要素があります）。

DMA_FALSE
継続不可（すべての要素を取得しました）。

lClassType（入力）

指定されたクラス識別子の要素だけを取得します。ただし，関連づけの対象オブジェクトがすでに削除されていて，リレーションだけが残っているリレーション情報についてはlClassTypeの指定とは無関係にすべて取得されます。

指定できるクラス識別子を次に示します。

クラス識別子 | クラスの種別
DBR_CLASS_VERSIONABLEDOCUMENT | CdbrVersionableDocumentクラス
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_ALL | すべてのクラス

それぞれのクラスの識別子をOR条件とした取得もできます。例えば，CdbrDocumentクラスとCdbrVersionableDocumentクラスの要素を取得したい場合は，次のように指定します。

DBR_CLASS_DOCUMENT | DBR_CLASS_VERSIONABLEDOCUMENT

すべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。

lPropDefListCount（入力）

文書間リレーション情報の一覧と同時に取得するプロパティの個数（引数pPropDefListに指定する配列の要素数）を0以上の値で指定します。プロパティを取得しない場合は0を指定します。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

文書間リレーション情報の一覧と同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。プロパティを取得しない場合はNULLを指定してください。NULLは，lPropDefListCountが0の場合だけ指定できます。lPropDefListCountが正の整数のときにpPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lRelPropDefListCount（入力）

文書間リレーション情報の一覧と同時に取得するリレーションのプロパティの個数（引数pRelPropDefListに指定する配列の要素数）を0以上の値で指定します。プロパティを取得しない場合は0を指定します。負の値を指定した場合は，エラーになります。

pRelPropDefList（入力）

文書間リレーション情報の一覧と同時に取得するリレーションのプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。プロパティを取得しない場合はNULLを指定してください。NULLは，lRelPropDefListCountが0の場合だけ指定できます。lRelPropDefListCountが正の整数のときにpRelPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lRelationListCount（入力）

取得する文書間リレーション情報の数を１以上の値で指定します。0以下の値を指定するとエラーになります。

ppRelationList（出力）

取得した文書間リレーション情報一覧へのポインタである，SDBR_RELATIONLIST構造体が設定されます。ポインタを格納する領域を指定してください。**ppRelationListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，**ppRelationListを指定してメモリを解放すると，構造体のメンバ(**ppRelationList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがってメソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_RELATIONLIST構造体およびSDBR_RELATIONINFO構造体に設定される内容については，「付録C.1(17)　SDBR_RELATIONLIST構造体（リレーションリスト構造体）」および「付録C.1(16)　SDBR_RELATIONINFO構造体（リレーション情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lRelationendType（入力）

このオブジェクトが文書間リレーションで関連づけているリレーション先オブジェクトの一覧を取得するか，このオブジェクトが文書間リレーションで関連づけられているリレーション元オブジェクトの一覧を取得するかを指定します。

次に示す値のどちらかを指定してください。

DBR_RELATIONEND_HEAD
このオブジェクトが文書間リレーションで関連づけているリレーション先オブジェクトの一覧を取得する場合に指定します。

DBR_RELATIONEND_TAIL
このオブジェクトが文書間リレーションで関連づけられているリレーション元オブジェクトの一覧を取得する場合に指定します。

lRelationendStatus（入力）

関連づけの対象オブジェクトが存在しているリレーション情報の一覧を取得するか，すでに関連づけの対象オブジェクトが削除されていて，リレーションだけ残っているリレーション情報の一覧を取得するかを指定します。

次に示す値のどれかを指定してください。

DBR_RELATIONEND_STATUS_EXIST
関連づけの対象オブジェクトが存在しているリレーション情報の一覧を取得する場合に指定します。

DBR_RELATIONEND_STATUS_NOT_EXIST
すでに関連づけの対象オブジェクトが削除されていて，リレーションだけが残っているリレーション情報の一覧を取得する場合に指定します。
この場合，lClassTypeでのクラス種別の指定は無効になります。つまり，lClassTypeでクラス種別を指定しているかどうかに関係なく，関連づけの対象オブジェクトが削除されているリレーション情報はすべて取得されます。

DBR_RELATIONEND_STATUS_ALL
すべてのリレーション情報の一覧を取得する場合に指定します。
この場合，関連づけの対象オブジェクトが存在しているリレーションに関しては，lClassTypeでのクラス種別の指定が有効です。ただし，関連づけの対象オブジェクトが削除されているリレーション情報は，lClassTypeでのクラス種別の指定とは無関係にすべて取得されます。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を指定してください。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionableDocument::GetRenditionListメソッド

機能

レンディション一覧の取得

形式

DmaBoolean GetRenditionList(
 pDmaString_T             pVersionId,
 DmaInteger32             lPropDefListCount,
 SDBR_PROPDEF*            pPropDefList,
 SDBR_RENDITIONLIST**     ppRenditionList )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
  DmaId             PropId;        //プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;       //Boolean型
    pDmaInteger32    plInteger32;     //Integer32型
    pDmaId           pId;             //ID型
    pDmapv           ppObject;        //Object型
    ppDmaString_T    ppString;        //String型
   } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

// レンディションリスト構造体
struct SDBR_RENDITIONLIST {
 DmaInteger32         lCount;    //レンディション情報の数
 SDBR_RENDITIONINFO*  pItem;     //レンディション情報構造体
};

// レンディション情報構造体
struct SDBR_RENDITIONINFO {
 pDmaString_T   pRenditionType; //RenditionTypeを表す文字列
 SDBR_PROPLIST  PropList;       //プロパティリスト構造体
};

詳細

文書の指定したバージョンに登録されているレンディションの一覧情報とそのプロパティを取得するメソッドです。

マルチレンディション文書の場合，マスタレンディションの情報は，レンディション情報構造体である，SDBR_RENDITIONINFO構造体の配列要素の1番目に格納され，サブレンディションの情報は2番目以降に格納されます。

引数

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドによって取得します。NULLを指定した場合，カレントバージョンがレンディション一覧の取得対象になります。

lPropDefListCount（入力）

レンディションの一覧と同時に取得するプロパティの数（pPropDefListに指定する配列の要素数）を指定します。0を指定した場合は，プロパティは取得されません。負の値を指定した場合はエラーになります。

pPropDefList（入力）

レンディションの一覧と同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。プロパティを取得しない場合はNULLを指定してください。lPropDefListCountに正の値を指定してpPropDefListにNULLを指定した場合はエラーになります。

指定できるプロパティ識別子を次に示します。

dbrProp_RetrievalName
レンディションのRetrievalNameを取得する場合に指定します。

dbrProp_RenditionStatus
レンディションのRenditionStatusを取得する場合に指定します。なお，設定されるRenditionStatusの値については，「CdbrDocumentクラスの詳細」の「RenditionStatusプロパティの値」を参照してください。

dbrProp_ContentType
レンディションのコンテント種別を取得する場合に指定します。なお，設定されるContentTypeの値については，「CdbrDocumentクラスの詳細」の「ContentTypeプロパティの値とコンテント種別の対応」を参照してください。

SDBR_PROPDEF構造体については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppRenditionList（出力）

取得したレンディション一覧へのポインタである，SDBR_RENDITIONLIST構造体が設定されます。ポインタを格納する領域を指定してください。*ppRenditionListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppRenditionListを指定してメモリを解放すると，構造体のメンバ(*ppRenditionList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがってメソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_RENDITIONLIST構造体およびSDBR_RENDITIONINFO構造体に設定される内容については，「付録C.1(20)　SDBR_RENDITIONLIST構造体（レンディションリスト構造体）」および「付録C.1(19)　SDBR_RENDITIONINFO構造体（レンディション情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_NONEXISTS_VERSION | 指定されたバージョンは存在しません。 | 正しいバージョンを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrVersionableDocument::GetRenditionListAndLockメソッド

機能

レンディション一覧の取得と同時に指定したロックの設定

形式

DmaBoolean GetRenditionListAndLock(
 pDmaString_T             pVersionId,
 DmaInteger32             lPropDefListCount,
 SDBR_PROPDEF*            pPropDefList,
 SDBR_RENDITIONLIST**     ppRenditionList,
 DmaInteger32             lLockType = DMA_LOCK_WRITE )

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
  DmaId             PropId;        //プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;       //Boolean型
    pDmaInteger32    plInteger32;     //Integer32型
    pDmaId           pId;             //ID型
    pDmapv           ppObject;        //Object型
    ppDmaString_T    ppString;        //String型
   } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

// レンディションリスト構造体
struct SDBR_RENDITIONLIST {
 DmaInteger32         lCount;    //レンディション情報の数
 SDBR_RENDITIONINFO*  pItem;     //レンディション情報構造体
};

// レンディション情報構造体
struct SDBR_RENDITIONINFO {
 pDmaString_T   pRenditionType; //RenditionTypeを表す文字列
 SDBR_PROPLIST  PropList;       //プロパティリスト構造体
};

詳細

ロックタイプを明示的に指定して，文書の指定したバージョンに登録されているレンディションの一覧情報とそのプロパティを取得するメソッドです。

マルチレンディション文書の場合，マスタレンディションの情報は，レンディション情報構造体である，SDBR_RENDITIONINFO構造体の配列要素の1番目に格納され，サブレンディションの情報は2番目以降に格納されます。

引数

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドによって取得します。NULLを指定した場合，カレントバージョンがレンディション一覧の取得対象になります。

lPropDefListCount（入力）

レンディションの一覧と同時に取得するプロパティの数（pPropDefListに指定する配列の要素数）を指定します。0を指定した場合は，プロパティは取得されません。負の値を指定した場合はエラーになります。

pPropDefList（入力）

レンディションの一覧と同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体を指定します。プロパティを取得しない場合はNULLを指定してください。lPropDefListCountに正の値を指定してpPropDefListにNULLを指定した場合はエラーになります。

指定できるプロパティ識別子を次に示します。

dbrProp_RetrievalName
レンディションのRetrievalNameを取得する場合に指定します。

dbrProp_RenditionStatus
レンディションのRenditionStatusを取得する場合に指定します。なお，設定されるRenditionStatusの値については，「CdbrDocumentクラスの詳細」の「RenditionStatusプロパティの値」を参照してください。

dbrProp_ContentType
レンディションのコンテント種別を取得する場合に指定します。なお，設定されるContentTypeの値については，「CdbrDocumentクラスの詳細」の「ContentTypeプロパティの値とコンテント種別の対応」を参照してください。

SDBR_PROPDEF構造体については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppRenditionList（出力）

取得したレンディション一覧へのポインタである，SDBR_RENDITIONLIST構造体が設定されます。ポインタを格納する領域を指定してください。*ppRenditionListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppRenditionListを指定してメモリを解放すると，構造体のメンバ(*ppRenditionList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがってメソッドをコールした側がこれらのメンバのメモリを個別に解放する必要はありません。

SDBR_RENDITIONLIST構造体およびSDBR_RENDITIONINFO構造体に設定される内容については，「付録C.1(20)　SDBR_RENDITIONLIST構造体（レンディションリスト構造体）」および「付録C.1(19)　SDBR_RENDITIONINFO構造体（レンディション情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を指定してください。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_NONEXISTS_VERSION | 指定されたバージョンは存在しません。 | 正しいバージョンを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrVersionableDocument::PutRelationPropertyValuesメソッド

機能

文書間リレーションのプロパティの設定

形式

DmaBoolean PutRelationPropertyValues(
　pDmaString_T            pRelId,
　SDBR_PROPLIST*          pRelPropList)

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;       //Boolean型
    pDmaInteger32    plInteger32;     //Integer32型
    pDmaId           pId;             //ID型
    pDmapv           ppObject;        //Object型
    ppDmaString_T    ppString;        //String型
   } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

詳細

リレーション識別子を指定して，文書間リレーションのプロパティを設定するメソッドです。

引数

pRelId（入力）

プロパティを設定する文書間リレーションのリレーション識別子を指定します。

指定するリレーション識別子は，CreateRelationメソッドの引数ppRelIdで返却される値です。また，GetRelationListメソッドまたはGetRelationListAndLockメソッドを使用しても取得できます。

pRelPropList（入力）

設定するプロパティを格納したプロパティリスト構造体である，SDBR_PROPLIST構造体を指定します。このメソッドで値を設定できる文書間リレーションのプロパティは，ユーザ設定のプロパティだけです。

NULLを指定するとエラーになります。なお，SDBR_PROPLIST構造体に，同じプロパティ識別子を指定したSDBR_PROP構造体を複数指定した場合はエラーになります。

SDBR_PROPLIST構造体およびSDBR_PROP構造体に設定する内容については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_DATATYPE_MISMATCH | プロパティのデータ型に適切ではないメソッドです。 | 正しい型を指定してください。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionableDocument::PutRenditionPropertyValuesメソッド

機能

レンディションのプロパティの設定

形式

DmaBoolean PutRenditionPropertyValues(
 pDmaString_T       pVersionId,
 pDmaString_T       pRenditionType,
 SDBR_PROPLIST*     pPropList )

// プロパティ構造体
struct SDBR_PROP {
  DmaId              PropId;        //プロパティ識別子
  DmaInteger32       lType;         //データ型
  DmaInteger32       lCardinality;  //基本単位
  DmaInteger32       lCount;        //値の個数
  union {                           //プロパティの値
    pDmaBoolean      pbBoolean;       //Boolean型
    pDmaInteger32    plInteger32;     //Integer32型
    pDmaId           pId;             //ID型
    pDmapv           ppObject;        //Object型
    ppDmaString_T    ppString;        //String型
   } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
  DmaInteger32       lCount;        //プロパティ情報の個数
  SDBR_PROP*         pItem;         //プロパティ情報
};

詳細

サブレンディションのプロパティを設定するメソッドです。

マルチレンディション文書のサブレンディションのプロパティ（RenditionType以外）を設定，変更する場合，このメソッドを使用します。

なお，RenditionTypeを変更する場合は，CdbrVersionableDocument::UpdateContentAndRenditionTypeメソッドを使用してください。

引数

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。バージョン識別子はCdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドによって取得します。NULLを指定した場合，カレントバージョンがレンディションのプロパティ設定の対象になります。

pRenditionType（入力）

プロパティを設定するレンディションのRenditionTypeを表す文字列を指定します。この引数で指定したRenditionTypeが対象バージョンのレンディションとして存在しない場合はエラーになります。NULLを指定した場合，マスタレンディションが処理対象になります。空文字列（""）は指定できません。

pPropList（入力）

設定するプロパティを格納したプロパティリスト構造体である，SDBR_PROPLIST構造体を指定します。NULLを指定するとエラーになります。

なお，SDBR_PROPLIST構造体に，同じプロパティ識別子を指定したSDBR_PROP構造体を複数指定した場合はエラーになります。

指定できるプロパティ識別子を次に示します。

dbrProp_RetrievalName
RetrievalNameプロパティを設定する場合に指定します。

dbrProp_RenditionStatus
RenditionStatusプロパティを設定する場合に指定します。なお，RenditionStatusプロパティの値としてユーザが設定できるのは上位2バイトの変換フラグだけで，下位2バイトの状態フラグは設定できません。ユーザが設定できる変換フラグの値を次に示します。

DBR_RENDSTATUS_CONVERT_REQUIRED

レンディション変換機能の対象になる状態，つまり，レンディション変換機能によって，マスタレンディションの内容から，コンテントを自動更新できる状態です。DocumentBroker Rendering Optionが提供するコマンドを実行することで，コンテントが自動更新されます。サブレンディションのコンテント登録後にマスタレンディションを更新した場合のような，マスタレンディションとサブレンディションの内容が不一致のときに，レンディション変換機能を使ってサブレンディションを更新したい場合に指定します。ただし，レンディション変換機能を使うには，DocumentBroker Rendering Optionが必要です。

DBR_RENDSTATUS_CONVERT_NOTREQUIRED

レンディション変換機能の対象にならない状態です。DocumentBroker Rendering Optionが提供するコマンドを実行しても，コンテントは更新されません。

ただし，変換フラグの値の設定に関しては，メソッド実行時のRenditionStatusプロパティの値によって，次に示す制限があります。

メソッド実行時のRenditionStatusプロパティの値 | 変換フラグの値の設定に関する制限の内容
状態フラグがDBR_RENDSTATUS_NO_SUBRENDの場合 | DBR_RENDSTATUS_CONVERT_NOTREQUIREDを設定できません。
変換フラグがDBR_RENDSTATUS_CONVERT_ERRORの場合 | DBR_RENDSTATUS_CONVERT_REQUIREDまたはDBR_RENDSTATUS_CONVERT_NOTREQUIREDに変更できません。

SDBR_PROPLIST構造体およびSDBR_PROP構造体に設定する内容については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_NONEXISTS_RENDITION | 指定されたレンディションは存在しません。 | 正しいRenditionTypeを指定してください。
ERR_DBR | ERR_NONEXISTS_VERSION | 指定されたバージョンは存在しません。 | 正しいバージョンを指定してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_DATATYPE_MISMATCH | プロパティのデータ型に適切ではないメソッドです。 | 正しい型を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_READ_ONLY | 読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。 | このプロパティの値は更新できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrVersionableDocument::RemoveIndexメソッド

機能

全文検索インデクスの削除

形式

DmaBoolean     RemoveIndex(
 const pDmaString_T  pVersionId = NULL)

詳細

CdbrVersionableDocumentオブジェクトに作成されている全文検索インデクスだけを削除します。インデクスが作成されていないCdbrVersionableDocumentオブジェクトに対してこのメソッドをコールした場合，何もしないで正常終了します。ただし，全文検索機能付き文書クラス以外のクラスから作成されたDMAオブジェクトのDocVersionオブジェクトを構成要素とするCdbrDocumentオブジェクトを対象にこのメソッドを実行した場合は，エラーになります。

引数

pVersionId（入力）

対象になるバージョン識別子を指定します。バージョン識別子は，CdbrVersionable::GetVersionListメソッドCdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドによって取得します。NULLを指定した場合は，カレントバージョンが対象になります。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_NONEXISTS_VERSION | 指定されたバージョンは存在しません。 | 正しいバージョンを指定してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_CLASSID | 指定された識別子は，利用できるオブジェクトのクラスではありません。 | 正しいクラス識別子を指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrVersionableDocument::RemoveRelationメソッド

機能

文書間リレーションの解除

形式

DmaBoolean RemoveRelation(
 DmaInteger32       lRelIdCount,
 ppDmaString_T      ppRelIds)

詳細

リレーションで結びづけられた文書間の関連づけを解除するメソッドです。

引数ppRelIdsのポインタ配列で指定された文書間のリレーションをすべて解除します。

リレーション識別子で示されるリレーション先のオブジェクトを削除しても，このメソッドで文書間リレーションを解除しないかぎり，リレーション情報は削除されないまま残ります。不要なリレーション情報を削除する場合にも，このメソッドをコールしてください。

引数

lRelIdCount（入力）

解除する文書間リレーションの個数を指定します。0以下の値を指定した場合はエラーになります。0より大きい値または次に示す値を指定してください。

DBR_RELATION_ALL
このオブジェクトがリレーション元である文書間リレーションをすべて解除します。

DBR_RELATION_END_NOT_EXIST
リレーション先のオブジェクトが削除されているリレーション情報をすべて削除します。

ppRelIds（入力）

解除する文書間リレーションのリレーション識別子のポインタ配列を指定します。配列の要素で示される文書間リレーションが解除（リレーション情報が削除）されます。

lRelIdCountが１以上の場合に，NULLを指定するとエラーになります。

指定するリレーション識別子は，CreateRelationメソッドの引数ppRelIdで返却される値です。また，GetRelationListメソッドまたはGetRelationListAndLockメソッドを使用しても取得できます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトまたはクラスではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionableDocument::UpdateContentメソッド

機能

ファイルの更新

形式

// シングルファイル文書の場合
// （マスタレンディションのファイルの更新）
DmaBoolean UpdateContent(
 const pDmaString_T    pFilePath,
 const pDmaString_T    pVersionId = NULL,
 DmaInteger32          lCreateIndexFlg = DBR_CREATE_INDEX)

// シングルファイル文書の場合
// （RenditionTypeを指定したファイルの更新）
DmaBoolean UpdateContent(
 const pDmaString_T    pFilePath,
 pDmaString_T          pRenditionType,
 const pDmaString_T    pVersionId,
 DmaInteger32          lCreateIndexFlg)

// マルチファイル文書の場合
DmaBoolean UpdateContent(
 SDBR_PATHLIST&         PathList,
 pDmaString_T           pRenditionType,
 const pDmaString_T     pVersionId)

// File Link文書の場合
DmaBoolean UpdateContent(
 SDBR_FILELINK_PATHINFO&   FileLinkPath,
 pDmaString_T              pRenditionType,
 const pDmaString_T        pVersionId)

// ファイルパス情報構造体
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;    // コンテント名自動
                                   // 生成モード
};

詳細

登録されているCdbrVersionableDocumentオブジェクトの指定したバージョンの内容を，指定したパスのファイルで更新するメソッドです。

このメソッドは，リファレンスファイルを管理する文書に対しては実行できません。

Windowsの場合，次のことに注意してください。

GetContentAndLockメソッドによるコンテントの取得時，大文字と小文字を区別しないと同一になるファイル名がある場合，先に取得したファイルが上書きされます。例えば，先に取得された「AAA.txt」は，あとから取得された「aaa.txt」によって上書きされます。

GetContentAndLockメソッドによるコンテントの取得時，ロングファイル名とショートファイル名の関係で同一のファイル名とみなされるファイルがある場合，先に取得したファイルが上書きされます。例えば，先に取得された「AAAAAAAAA.txt」は，あとから取得された「AAAAAA~1.txt」によって上書きされます。

シングルファイル文書の場合（マスタレンディションのファイルの更新）

シングルファイル文書（マルチレンディション文書の場合はマスタレンディションであるシングルファイル文書）を更新する場合は，更新に使用するファイルのパス，対象バージョンおよび全文検索インデクスを作成するかどうかを指定します。

内容を更新するCdbrVersionableDocumentオブジェクト（マルチレンディション文書の場合はマスタレンディション）が次の条件に当てはまる場合に，lCreateIndexFlgにDBR_CREATE_INDEXを指定すると，全文検索インデクスを作成できます。

全文検索機能付き文書クラスを基に作成されたDocVersionオブジェクトを構成要素とするCdbrVersionableDocumentオブジェクトである。

RenditionTypeがテキスト型（MIME::text/で始まるMIME::text/plain，MIME::text/sgmlまたはMIME::text/html）である。

更新が正常に完了すると，パス名を除いたファイル名がRetrievalNameプロパティに設定されます。例えば，UNIXの場合，"/tmp/sample.doc"で更新すると，"sample.doc"が設定されます。Windowsの場合，"c:¥temp¥sample.doc"で更新すると，"sample.doc"が設定されます。

UNIXの場合に，チェックアウトした文書に登録されたコンテントの内容をファイル"/tmp/sample.doc"で更新する例を次に示します。Windowsの場合は，ファイル"c:¥temp¥sample.doc"で更新する例として，例中の"file:///tmp/sample.doc"を"file:///c:¥temp¥sample.doc"と読み替えてください。なお，この例で更新できるのは，マスタレンディションのコンテントです。

チェックアウトした文書の内容（コンテント）を更新する例

pDmaString_T  pReservedVerId;
pDbrVerDoc->VersionCheckOut(&pReservedVerId);
pDbrVerDoc->UpdateContent("file:///tmp/sample.doc" ,
             pReservedVerId, DBR_CREATE_INDEX);
pDbrVerDoc->VersionCheckIn();
dbrDelete (pReservedVerId);

シングルファイル文書の場合（RenditionTypeを指定したファイルの更新）

マルチレンディション文書のサブレンディションであるシングルファイル文書を更新する場合は，更新に使用するファイルのパス，対象バージョンのほかに，更新対象のサブレンディションをpRenditionTypeで指定します。なお，サブレンディションの内容を更新する場合，全文検索インデクスは作成できません。

マルチファイル文書の場合

マルチファイル文書を更新する場合は，更新に使用するコンテントの情報として，SDBR_PATHLIST構造体を指定します。

マルチファイル文書の場合，次のことに注意してください。

CdbrVersionableDocumentクラスに格納した複数のファイルを，SDBR_PATHINFO構造体に設定したファイルパスのファイルで，一括して更新します。SDBR_PATHINFO構造体は，引数PathListで指定するSDBR_PATHINFO構造体に設定します。なお，特定のコンテントだけを更新することはできません。また，更新後は，更新前のファイルは使用できません。

更新前のファイルを格納したBLOBのデータが書き換えられるため，BLOBのデータの長さは，更新後のファイルサイズの合計になります。

この形式のUpdateContentを，マルチファイル文書ではないバージョン付き文書に対して実行すると，ERR_NOT_MULTI_CONTENTSのエラーになります。

マルチファイル文書では，テキストファイルの部分が特定できないため，全文検索用インデクスは作成されません。全文検索インデクスを作成する場合，テキスト部分を抽出したファイルを，CreateIndexメソッドの引数に指定して実行してください。なお，マルチファイル文書の場合，CreateIndexメソッドの引数にNULLを指定するとERR_CONTENTTYPE_MISMATCHのエラーになります。

File Link文書の場合

File Link文書を更新する場合は，更新に使用するコンテントの情報として，SDBR_FILELINK_PATHINFO構造体を指定します。この構造体には，更新に使用するコンテントとして，ファイルまたはディレクトリを指定できます。ディレクトリを指定した場合，指定したディレクトリおよびそのサブディレクトリ下のすべてのファイルでコンテントを更新できます。また，すでにHiRDB File Linkで管理されているデータでコンテントを更新することもできます。

File Link文書の場合，次のことに注意してください。

このメソッドは，レンディションのコンテント種別がContentFileLinkオブジェクトの場合（dbrProp_ContentTypeプロパティの値がDBR_CONTENTTYPE_FILELINKの場合）にだけ有効です。そのほかのコンテント種別を持つレンディションに対して実行すると，ERR_CONTENTTYPE_MISMATCHのエラーになります。

このメソッドで，ERR_FILELINK_FAILEDのエラーが発生した場合は，詳細メッセージにHiRDB File Linkが出力するエラー情報が出力されます。HiRDB File Linkが出力するエラーを参照して，対処してください。

File Link文書では，全文検索用インデクスは作成されません。全文検索インデクスを作成する場合，テキスト部分を抽出したファイルを，CreateIndexメソッドの引数に指定して実行してください。なお，File Link文書の場合，CreateIndexメソッドの引数にNULLを指定するとERR_CONTENTTYPE_MISMATCHのエラーになります。

引数

PathList（入力）

登録するファイルのファイルパス情報が設定されたSDBR_PATHLIST構造体を指定します。SDBR_PATHLIST構造体については，「付録C.1(11)　SDBR_PATHLIST構造体（ファイルパス情報リスト構造体）」を参照してください。

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または「シングルファイル文書の場合（マスタレンディションのファイルの更新）」の形式を指定してください。

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。この識別子は，CdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得します。省略した場合またはNULLを指定した場合は，カレントバージョンが更新対象になります。

lCreateIndexFlg（入力）

全文検索インデクスを作成するかどうかを指定します。

次のどちらかを指定してください。この値を省略した場合は，DBR_CREATE_INDEXが指定されたものとして処理されます。

DBR_CREATE_INDEX
pFilePathに指定したパス名のファイルから全文検索インデクスを作成します。

DBR_NOT_CREATE_INDEX
全文検索インデクスを作成しません。

なお，全文検索機能付きクラス以外から作成されたDocVersionオブジェクトを指定した場合およびファイルのRenditionTypeがテキスト型でない場合は，lCreateIndexFlgの値は無視されます。

また，マルチレンディション文書の場合，lCreateIndexFlgはマスタレンディションの内容を更新する場合だけ有効です。

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_NONEXISTS_VERSION
指定されたバージョンは存在しません。
正しいバージョンを指定してください。

ERR_DBR
ERR_NOT_MULTI_CONTENTS
マルチファイル文書ではありません。
マルチファイル管理機能を使用しない場合の形式で実行してください。

ERR_DBR
ERR_OBJECT_NOT_CONNECT
オブジェクトは接続されていません。
オブジェクトを接続してください。

ERR_DBR
ERR_RETRIEVALNAME_DUPLICATED
RetrievalNameが重複して指定されています。
RetrievalNameが重複しないように指定してください。

ERR_DBR
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドをコールしてから，このメソッドをコールしてください。

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_NO_RESERVATION
バージョン識別子が予約されていません。
チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。

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
使用できるファイル転送サービスがありません。

ネットワーク環境を確認してください。

_HIEDMS_FTPMODE=STATICを指定してファイル転送サービスを起動しているかどうかを，確認してください。

時間を置いて，再度実行してください。

ファイル転送サービスのセットアップコマンドを実行しているかどうかを，確認してください。

CdbrVersionableDocument::UpdateContentAndRenditionTypeメソッド

機能

ファイルの更新およびRenditionTypeの変更

形式

// シングルファイル文書の場合
// （マスタレンディションのファイルの更新）
DmaBoolean UpdateContentAndRenditionType(
 const pDmaString_T   pFilePath,
 pDmaString_T         pRenditionType,
 const pDmaString_T   pVersionId = NULL,
 DmaInteger32         lCreateIndexFlg = DBR_CREATE_INDEX)

// シングルファイル文書の場合
// （RenditionTypeを指定したファイルの更新）
DmaBoolean UpdateContentAndRenditionType(
 const pDmaString_T   pFilePath,
 pDmaString_T         pBeforeRenditionType,
 pDmaString_T         pAfterRenditionType,
 const pDmaString_T   pVersionId,
 DmaInteger32         lCreateIndexFlg)

// リファレンスファイル文書の場合
DmaBoolean UpdateContentAndRenditionType(
 SDBR_REFERENCE_PATHINFO&   ReferencePath,
 pDmaString_T               pBeforeRenditionType,
 pDmaString_T               pAfterRenditionType,
 pDmaString_T               pVersionId)

// File Link文書の場合
DmaBoolean UpdateContentAndRenditionType(
 SDBR_FILELINK_PATHINFO&   FileLinkPath,
 pDmaString_T              pBeforeRenditionType,
 pDmaString_T              pAfterRenditionType,
 const pDmaString_T        pVersionId)

// リファレンスパス情報構造体
struct SDBR_REFERENCE_PATHINFO {
 DmaInteger32  lContentOperateMode；    // 操作モード
 pDmaString_T  pEntry；                 // ファイルのパスおよびロケーション
 pDmaString_T  pTargetPath；            // コンテント格納先パス
 pDmaString_T  pDeleteRootPath；        // 削除ディレクトリのルートパス
};

// File Linkパス情報構造体
struct SDBR_FILELINK_PATHINFO {
 pDmaString_T  pFilePath;          // 登録ファイルまたはディレクトリのURL
 pDmaString_T  pFamName;           // FAM名
 pDmaString_T  pFamFilePath;       // コンテント保管先パス
 DmaInteger32  lContentDeleteMode; // コンテント削除モード
 DmaInteger32  lFileNamingMode;    // コンテント名自動
                                   // 生成モード
};

詳細

登録されているCdbrVersionableDocumentオブジェクトの指定したバージョンの内容を，指定したパスのファイルで更新するメソッドです。更新するときには，RenditionTypeも変更できます。

シングルファイル文書の場合（マスタレンディションのファイルの更新）

シングルファイル文書（マルチレンディション文書の場合はマスタレンディションであるシングルファイル文書）を更新する場合は，更新に使用するファイルのパス，対象バージョンおよび全文検索インデクスを作成するかどうかを指定します。RenditionTypeを変更する場合は，pRenditionTypeに変更後のRenditionTypeを指定します。

内容を更新するCdbrVersionableDocumentオブジェクト（マルチレンディション文書の場合はマスタレンディション）が次の条件に当てはまる場合に，lCreateIndexFlgにDBR_CREATE_INDEXを指定すると，全文検索インデクスを作成できます。

全文検索機能付き文書クラスを基に作成されたDocVersionオブジェクトを構成要素とするCdbrDocumentオブジェクトである。

RenditionTypeがテキスト型（MIME::text/で始まるMIME::text/plain，MIME::text/sgmlまたはMIME::text/html）である。

更新が正常に完了すると，パス名を除いたファイル名がRetrievalNameプロパティに設定されます。例えば，UNIXの場合に，"/tmp/sample.doc"で更新すると，"sample.doc"が設定されます。Windowsの場合に，"c:¥temp¥sample.doc"で更新すると，"sample.doc"が設定されます。

UNIXの場合に，チェックアウトした文書に登録されたコンテントの内容をファイル"/tmp/sample.html"で更新する例を次に示します。Windowsの場合は，ファイル"c:¥temp¥sample.html"で更新する例として，例中の"file:///tmp/sample.html"を"file:///c:¥temp¥sample.html"と読み替えてください。

チェックアウトした文書の内容（コンテント）を更新してRenditionTypeを変更する例

pDmaString_T  pReservedVerId;
pDbrVerDoc->VersionCheckOut(&pReservedVerId);
pDbrVerDoc->UpdateContentAndRenditionType(
 "file:///tmp/sample.html" ,pReservedVerId,
 "MIME::text/html",DBR_CREATE_INDEX);
pDbrVerDoc->VersionCheckIn();
dbrDelete (pReservedVerId);

シングルファイル文書の場合（RenditionTypeを指定したファイルの更新）

マルチレンディション文書のサブレンディションであるシングルファイル文書を更新する場合は，更新に使用するファイルのパス，対象バージョンのほかに，更新対象のサブレンディションをpBeforeRenditionTypeで指定します。RenditionTypeを変更する場合は，pAfterRenditionTypeに変更後のRenditionTypeを指定します。なお，サブレンディションの内容を更新する場合，全文検索インデクスは作成できません。

リファレンスファイル文書の場合

リファレンスファイル文書を更新する場合は，更新に使用するコンテントの情報として，SDBR_REFERENCE_PATHINFO構造体を指定します。

リファレンスファイル文書の場合，次のことに注意してください。

このメソッドは，レンディションのコンテント種別がContentReferenceオブジェクトの場合（dbrProp_ContentTypeプロパティの値がDBR_CONTENTTYPE_REFERENCEの場合）にだけ有効となります。そのほかのコンテント種別を持つレンディションに対して実行すると，ERR_CONTENTTYPE_MISMATCHのエラーになります。

File Link文書の場合

File Link文書を更新する場合は，更新に使用するコンテントの情報として，SDBR_FILELINK_PATHINFO構造体を指定します。この構造体には，更新に使用するコンテントとして，ファイルまたはディレクトリを指定できます。ディレクトリを指定した場合，指定したディレクトリおよびそのサブディレクトリ下のすべてのファイルでコンテントを更新できます。また，すでにHiRDB File Linkで管理されているデータでコンテントを更新することもできます。

File Link文書の場合，次のことに注意してください。

このメソッドは，レンディションのコンテント種別がContentFileLinkオブジェクトの場合（dbrProp_ContentTypeプロパティの値がDBR_CONTENTTYPE_FILELINKの場合）にだけ有効です。そのほかのコンテント種別を持つ文書のレンディションに対して実行すると，ERR_CONTENTTYPE_MISMATCHのエラーになります。

このメソッドで，ERR_FILELINK_FAILEDのエラーが発生した場合は，詳細メッセージにHiRDB File Linkが出力するエラー情報が出力されます。HiRDB File Linkが出力するエラーを参照して，対処してください。

File Link文書では，全文検索用インデクスは作成されません。全文検索インデクスを作成する場合，テキスト部分を抽出したファイルを，CreateIndexメソッドの引数に指定して実行してください。なお，File Link文書の場合，CreateIndexメソッドの引数にNULLを指定するとERR_CONTENTTYPE_MISMATCHのエラーになります。

引数

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を表す文字列を指定します。例えばHTML文書の場合は，"MIME::text/html"などとします。NULLを指定した場合，RenditionTypeは変更されません。また，pFilePathに指定したファイルの拡張子からDocumentBrokerがRenditionTypeを決定することはありません。

なお，マルチレンディション文書（レンディションが複数ある文書）の場合，空文字列（""）は指定できません。

pBeforeRenditionType（入力）

RenditionTypeを指定してレンディションの内容を更新する場合，更新対象のレンディションのRenditionTypeを表す文字列を指定します。

この引数で指定したRenditionTypeが，対象バージョンのサブレンディションとして存在しない場合はエラーになります。

マスタレンディションの内容を更新する場合はNULLを指定するか，「マスタレンディションのファイルを更新する場合」の形式を使用することもできます。

pAfterRenditionType（入力）

RenditionTypeを指定してレンディションの内容を更新すると同時にそのRenditionTypeを変更する場合，変更後のRenditionTypeを表す文字列を指定します。

この引数で指定したRenditionTypeが，対象バージョンのサブレンディションとしてすでに登録されている場合はエラーになります。ただし，pBeforeRenditionType値とpAfterRenditionType値とが同一値であってもエラーになりません。NULLを指定した場合は，サブレンディションのRenditionTypeは変更されません。また，pFilePathまたはReferencePathのpEntryメンバに指定したファイルの拡張子からDocumentBrokerがRenditionTypeを決定することはありません。

なお，空文字列（""）は指定できません。

pVersionId（入力）

対象となるバージョンのバージョン識別子を指定します。この識別子は，CdbrVersionable::GetVersionListメソッド，CdbrVersionable::GetVersionListAndLockメソッドまたはCdbrVersionable::VersionCheckOutメソッドで取得します。省略した場合またはNULLを指定した場合は，カレントバージョンが更新対象になります。

lCreateIndexFlg（入力）

全文検索インデクスを作成するかどうかを指定します。次のどちらかを指定してください。この値を省略した場合は，DBR_CREATE_INDEXが指定されたものとして処理されます。

DBR_CREATE_INDEX
pFilePathに指定したパス名のファイルから全文検索インデクスが作成されます。

DBR_NOT_CREATE_INDEX
全文検索インデクスが作成されません。

なお，CdbrDocumentオブジェクトの構成要素が全文検索機能付きクラス以外から作成されたDocVersionオブジェクトである場合，およびファイルのRenditionTypeがテキスト型でない場合は，lCreateIndexFlgの値は無視されます。

また，マルチレンディション文書の場合，lCreateIndexFlgはマスタレンディションの内容を更新する場合だけ有効です。

ReferencePath（入力）

リファレンスファイル文書を更新するために必要な情報を格納した，SDBR_REFERENCE_PATHINFO構造体を指定します。

コンテントを持たないオブジェクトを更新する場合

SDBR_REFERENCE_PATHINFO構造体のメンバpTargetPathに，コンテント格納先パスを，コンテント格納先ベースパスを基点とした相対パスで指定します。ContentLocationプロパティに格納されるパスは，次のように条件によって異なります。

DocumentSpace構成定義ファイルのReferenceStorageModeエントリにOriginを指定した場合
ContentLocationプロパティには，pTargetPathで指定したコンテント格納先パス，DocumentBrokerがコンテントを管理するためのディレクトリ，およびpEntryで指定したファイル名が連結されて格納されます。

DocumentSpace構成定義ファイルのReferenceStorageModeエントリにDivideを指定した場合
ContentLocationプロパティには，文書登録時にpTargetPathで指定したコンテント格納先パス，DocumentBrokerがコンテントを管理するためのディレクトリ，DocumentBrokerが指定するファイル名が連結されて格納されます。

コンテントを持つオブジェクトを更新する場合

ContentLocationプロパティに格納されるパスは，次のように条件によって異なります。

DocumentSpace構成定義ファイルのReferenceStorageModeエントリにOriginを指定した場合
ContentLocationプロパティには，更新前のContentLocationプロパティのファイル名を除くパスに，SDBR_REFERENCE_PATHINFO構造体のメンバpEntryで指定したファイル名が連結されて格納されます。

DocumentSpace構成定義ファイルのReferenceStorageModeエントリにDivideを指定した場合
ContentLocationプロパティには，文書登録時にpTargetPathで指定したパス，DocumentBrokerがコンテントを管理するためのディレクトリ，DocumentBrokerが指定するファイル名が連結されて格納されます。

なお，次に示すことに注意してください。

DocumentSpace構成定義のReferenceStorageModeエントリにOriginを指定した場合
次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときに，コンテントを持たないオブジェクトにコンテントを登録すると，コンテントロケーションの指定でERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

pTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（35バイト）

pEntryで指定したファイル名

また，次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときに，コンテント登録済みのオブジェクトのコンテントを更新すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

文書登録時にpTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（35バイト）

pEntryで指定したファイル名

DocumentSpace構成定義のReferenceStorageModeエントリにDivideを指定した場合
次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときに，コンテントを持たないオブジェクトにコンテントを登録すると，コンテントロケーションの指定でERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

文書登録時にpTargetPathで指定したコンテント格納先パス

DocumentBrokerがコンテントを管理するためのディレクトリ（6バイト）

DocumentBrokerが指定するファイル名（最大59バイト）

また，次に示す文字列の合計長（パスの区切り文字も含む）が，260バイト（Windowsの場合）または1023バイト（AIXの場合）以上のときに，コンテント登録済みのオブジェクトのコンテントを更新すると，ERR_FILE_REFERENCE_OPERATION_FAILEDのエラーになります。

CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパス

文書登録時にpTargetPathで指定したパス

DocumentBrokerがコンテントを管理するためのディレクトリ（6バイト）

DocumentBrokerが指定するファイル名（最大59バイト）

pTargetPathで指定するコンテント格納先パスの中に，カレントディレクトリの一つ上位のディレクトリを示す".."は指定できません。指定した場合，DMARC_BAD_PARAMETERのエラーになります。

リファレンスファイル文書を更新する場合，SDBR_REFERENCE_PATHINFO構造体のメンバpDeleteRootPathへの値の指定は，無効になります。

SDBR_REFERENCE_PATHINFO構造体に設定する内容については，「付録C.1(15)　SDBR_REFERENCE_PATHINFO構造体（リファレンスパス情報構造体）」を参照してください。

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
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_ACLIB_OBJECT_INVALID
クラスライブラリのオブジェクトは無効です。
有効なクラスライブラリのオブジェクトを指定してください。

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_FILE_REFERENCE_MISMATCH_STATUS
リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生し，オブジェクトとコンテントが不整合な状態となりました。
文書を削除したあと，更新後のコンテントを使用して文書を作成してください。

ERR_DBR
ERR_FILE_REFERENCE_OPERATION_FAILED
リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。
詳細メッセージを基に対処してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_NONEXISTS_RENDITION
指定されたRenditionTypeは存在しません。
RenditionTypeを見直してください。

ERR_DBR
ERR_NONEXISTS_VERSION
指定されたバージョンは存在しません。
正しいバージョンを指定してください。

ERR_DBR
ERR_OBJECT_NOT_CONNECT
オブジェクトは接続されていません。
オブジェクトを接続してください。

ERR_DBR
ERR_OBJECT_REMOVED
オブジェクトはすでに削除されています。
正しいオブジェクトを指定してください。

ERR_DBR
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドをコールしてから，このメソッドをコールしてください。

ERR_DBR
ERR_REFERENCETYPE_MISMATCH
オブジェクト種別が一致していません。
オブジェクト種別または指定した操作モード（lContentOperateMode）を見直してください。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DBR
ERR_TARGETCONTENTPATH_NOT_SET
リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。
コンテント格納先ベースパスを設定してください。

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_NO_RESERVATION
バージョン識別子が予約されていません。
チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。

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
使用できるファイル転送サービスがありません。

ネットワーク環境を確認してください。

_HIEDMS_FTPMODE=STATICを指定してファイル転送サービスを起動しているかどうかを，確認してください。

時間を置いて，再度実行してください。

ファイル転送サービスのセットアップコマンドを実行しているかどうかを，確認してください。

17.　CdbrVersionTraceableContainerクラス（バージョンなし構成管理コンテナを扱うクラス）

コンテナを使用して文書やコンテナのバージョン構成を管理する機能を提供するクラスです。また，バージョン管理しているコンテナ（CdbrConfiguratedReferentialContainerクラスのオブジェクト）の，個々のバージョンに当たるコンテナを操作する機能を提供します。

＜この章の構成＞

CdbrVersionTraceableContainerクラスの詳細

CdbrVersionTraceableContainer::~CdbrVersionTraceableContainerメソッド

CdbrVersionTraceableContainer::CdbrVersionTraceableContainerメソッド

CdbrVersionTraceableContainer::CreateObjectメソッド

CdbrVersionTraceableContainer::GetVersionableListメソッド

CdbrVersionTraceableContainer::GetVersionableListAndLockメソッド

CdbrVersionTraceableContainer::GetVTContaineeListメソッド

CdbrVersionTraceableContainer::GetVTContaineeListAndLockメソッド

CdbrVersionTraceableContainer::LinkVTFixメソッド

CdbrVersionTraceableContainer::LinkVTFixAndLockメソッド

CdbrVersionTraceableContainer::LinkVTFloatメソッド

CdbrVersionTraceableContainer::LinkVTFloatAndLockメソッド

CdbrVersionTraceableContainer::SetVTFixメソッド

CdbrVersionTraceableContainer::SetVTFixAndLockメソッド

CdbrVersionTraceableContainer::SetVTFloatメソッド

CdbrVersionTraceableContainer::SetVTFloatAndLockメソッド

CdbrVersionTraceableContainer::UnlinkVTメソッド

CdbrVersionTraceableContainer::UnlinkVTAndLockメソッド

CdbrVersionTraceableContainerクラスの詳細

スーパークラス

プロパティ一覧

プロパティの一覧を次に示します。

表17-1　CdbrVersionTraceableContainerクラスのプロパティ

プロパティ名 | プロパティ識別子 | データ型 | 読み取り専用
OIID | dmaProp_OIID | String型 | ○
ParentCount | dbrProp_ParentCount | Integer32型 | ○
ContainersCount | dbrProp_ContainersCount | Integer32型 | ○
ContainersCountVT | dbrProp_ContainersCountVT | Integer32型 | ○
ChildrenCount | dbrProp_ChildrenCount | Integer32型 | ○
ContaineesCount | dbrProp_ContaineesCount | Integer32型 | ○
ContaineesCountVT | dbrProp_ContaineesCountVT | Integer32型 | ○

アクセス制御機能を使用している場合は，次のクラスライブラリの固有のプロパティが追加されます。

表17-2　CdbrVersionTraceableContainerクラスのプロパティ（アクセス制御機能を使用する場合に追加されるクラスライブラリ固有のプロパティ）

プロパティ名
プロパティ識別子
データ型※¹
読み取り専用

OwnerId
dbrProp_OwnerId
String型
－※²

UserPermission
dbrProp_UserPermission
Integer32型
○

PrimaryGroupId
dbrProp_PrimaryGroupId
String型
－※³

ACL
dbrProp_ACL
Object型
（VariableArray型）
－※³

SACL
dbrProp_SACL
Object型
（VariableArray型）
－※²

OwnerPermission
dbrProp_OwnerPermission
Integer32型
－※³

PrimaryGroupPermission
dbrProp_PrimaryGroupPermission
Integer32型
－※³

EveryonePermission
dbrProp_EveryonePermission
Integer32型
－※³

PublicACLCount
dbrProp_PublicACLCount
Integer32型
○

PublicACLIds
dbrProp_PublicACLIds
Object型
（VariableArray型）
－※³

注※1

基本単位がScalar型以外の場合は，（　）に基本単位を示します。

注※2

変更は，そのオブジェクトの所有者およびセキュリティ管理者だけが実行できます。

注※3

変更は，そのオブジェクトの所有者，セキュリティACLでアクセス制御情報変更権を与えられたユーザ，およびセキュリティ管理者だけが実行できます。

プロパティ詳細

DMAで規定されているプロパティ

OIID

オブジェクトを識別するGUID文字列です。実体はDMAオブジェクトのOIIDです。

CdbrDMAクラスから継承されるプロパティ（アクセス制御機能を使用する場合）

OwnerId

UserPermission

これらのプロパティの詳細については，「CdbrDMAクラスの詳細」のプロパティ詳細を参照してください。

CdbrContainableクラスから継承されるプロパティ

ParentCount

ContainersCount

これらのプロパティの詳細については，「CdbrContainableクラスの詳細」のプロパティ詳細を参照してください。

CdbrContainableクラスから継承されるプロパティ（アクセス制御機能を使用する場合）

PrimaryGroupId

ACL

SACL

OwnerPermission

PrimaryGroupPermission

EveryonePermission

PublicACLCount

PublicACLIds
これらのプロパティの詳細については，「CdbrContainableクラスの詳細」のプロパティ詳細を参照してください。

CdbrReferentialContainerクラスから継承されるプロパティ

ChildrenCount

ContaineesCount
これらのプロパティの詳細については，「CdbrReferentialContainerクラスの詳細」のプロパティ詳細を参照してください。

CdbrVersionTraceableContainerクラスで導入されるプロパティ

ContainersCountVT
このオブジェクトを構成要素として管理しているオブジェクトの個数を表します。

ContaineesCountVT
構成管理の対象となるオブジェクト（CdbrVersionableDocumentオブジェクトおよびCdbrConfiguratedReferentialContainerオブジェクト）の個数を表します。

なおこのほかに，CdbrVersionTraceableContainerクラスでは，構成要素であるDMAオブジェクトを作成する基になるDMAのクラスのedmClass_ContainerVersionクラスのプロパティが使用できます。DMAのクラスのプロパティについては，「付録B　DMAオブジェクトのプロパティ」を参照してください。

メソッド一覧

CdbrCoreクラスから継承されるメソッド

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

これらのメソッドの詳細については，「6.　CdbrCoreクラス（エラー情報を取得するクラス）」を参照してください。

CdbrDMAクラスから継承されるメソッド

メソッド | 機能
~CdbrDMA | デストラクタ
CdbrDMA | コンストラクタ
ConnectObject | オブジェクトを指定したモードでロックして接続
GetOIID | OIIDの取得
GetPropertyValues | プロパティの取得
GetPropertyValuesAndLock | プロパティの取得と同時に指定したロックの設定
GetType | オブジェクトの種別の取得
PutPropertyValues | プロパティの設定
ReleaseObject | オブジェクトとの接続の解除
RemoveObject | オブジェクトの削除
SetOIID | OIIDの設定

これらのメソッドの詳細については，「7.　CdbrDMAクラス（OIIDの設定やプロパティを扱うクラス）」を参照してください。

CdbrContainableクラスから継承されるメソッド

メソッド | 機能
~CdbrContainable | デストラクタ
BindPublicACL | パブリックACLのバインド
CdbrContainable | コンストラクタ
GetContainerList | コンテナの一覧取得
GetContainerListAndLock | コンテナの一覧取得と同時に指定したロックの設定
GetPublicACLList | バインドしているパブリックACL一覧情報の取得
GetPublicACLListAndLock | バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定
UnbindPublicACL | パブリックACLのアンバインド

これらのメソッドの詳細については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」を参照してください。

CdbrReferentialContainerクラスから継承されるメソッド

メソッド | 機能
~CdbrReferentialContainer | デストラクタ
CdbrReferentialContainer | コンストラクタ
CreateObject | オブジェクトの新規作成
GetContainableList | 包括要素の一覧取得
GetContainableListAndLock | 包括要素の一覧取得と同時に指定したロックの設定
GetLinkPropertyValues | リンクのプロパティの取得
GetLinkPropertyValuesAndLock | リンクのプロパティの取得と同時に指定したロックの設定
Link | 関連づけの設定
LinkAndLock | 関連づけの設定と同時に指定したロックの設定
PutLinkPropertyValues | リンクのプロパティの設定
Unlink | 関連づけの解除
UnlinkAndLock | 関連づけの解除と同時に指定したロックの設定

これらのメソッドの詳細については，「12.　CdbrReferentialContainerクラス（バージョンなしコンテナを扱うクラス）」を参照してください。

CdbrVersionTraceableContainerクラスで導入されるメソッド

メソッド | 機能
~CdbrVersionTraceableContainer | デストラクタ
CdbrVersionTraceableContainer | コンストラクタ
CreateObject | オブジェクトの新規作成
GetVersionableList | バージョン管理情報一覧の取得
GetVersionableListAndLock | バージョン管理情報一覧の取得と同時に指定したロックの設定
GetVTContaineeList | 構成管理しているオブジェクトの一覧取得
GetVTContaineeListAndLock | 構成管理しているオブジェクトの一覧取得と同時に指定したロックの設定
LinkVTFix | 構成管理するオブジェクトのFIXモードでの関連づけ
LinkVTFixAndLock | 構成管理するオブジェクトのFIXモードでの関連づけと同時に指定したロックの設定
LinkVTFloat | 構成管理するオブジェクトのFLOATINGモードでの関連づけ
LinkVTFloatAndLock | 構成管理するオブジェクトのFLOATINGモードでの関連づけと同時に指定したロックの設定
SetVTFix | 構成要素のバージョンの固定
SetVTFixAndLock | 構成要素のバージョンの固定と同時に指定したロックの設定
SetVTFloat | 構成要素のバージョン固定の解除
SetVTFloatAndLock | 構成要素のバージョン固定の解除と同時に指定したロックの設定
UnlinkVT | 構成管理しているオブジェクトとの関連づけの解除
UnlinkVTAndLock | 構成管理しているオブジェクトとの関連づけの解除と同時に指定したロックの設定

以降，CdbrVersionTraceableContainerクラスのメソッドについて説明します。

CdbrVersionTraceableContainer::~CdbrVersionTraceableContainerメソッド

機能

デストラクタ

形式

virtual ~CdbrVersionTraceableContainer()

詳細

CdbrVersionTraceableContainerオブジェクトのデストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrVersionTraceableContainer::CdbrVersionTraceableContainerメソッド

機能

コンストラクタ

形式

CdbrVersionTraceableContainer()

詳細

CdbrVersionTraceableContainerオブジェクトのコンストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrVersionTraceableContainer::CreateObjectメソッド

機能

オブジェクトの新規作成

形式

CdbrVersionTraceableContainer::CreateObject(
   CdbrSession*        pDbrSession,
   DmaInteger32        lDMAInfoListCount,
   SDBR_DMAINFO*       pDMAInfoList,
   ppDmaString_T       ppOIID)

// プロパティ構造体
struct SDBR_PROP {
 DmaId         PropId;                // プロパティ識別子
 DmaInteger32  lType;                 // データ型
 DmaInteger32  lCardinality;          // 基本単位
 DmaInteger32  lCount;                // 要素数
 union {                              // プロパティの値
   pDmaBoolean        pbBoolean;      // Boolean型
   pDmaInteger32      plInteger32;    // Integer32型
   pDmaId             pId;            // ID型
   pDmapv             ppObject;       // Object型
   ppDmaString_T      ppString;       // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32       lCount;
   SDBR_PROP*         pItem;
};

// DMAオブジェクト生成用の構造体
struct SDBR_DMAINFO {
 DmaId                 ClassId;
 SDBR_PROPLIST         PropList;
};

詳細

オブジェクトを新規に作成するメソッドです。

SetOIIDメソッドもしくはConnectObjectメソッドによってオブジェクトとすでに接続されている場合，またはこのメソッドがすでにコールされている場合は，既存の接続は変更しないで，このメソッドのコールがエラーになります。接続を終了するには，ReleaseObjectメソッドを実行してください。

引数

pDbrSession（入力）

CdbrSessionオブジェクトを指定します。

lDMAInfoListCount（入力）

pDMAInfoListで指定した配列の個数を指定します。負の値を指定した場合は，エラーになります。

pDMAInfoList（入力）

オブジェクトの構成要素として新規に作成するDMAオブジェクトの情報を格納した構造体である，SDBR_DMAINFO構造体を指定します。DMAオブジェクトの情報としてSDBR_DMAINFO構造体には，edmClass_ContainerVersionクラスまたはそのサブクラスの情報を指定してください。NULLを指定した場合は，edmClass_ContainerVersionクラスを使用してDMAオブジェクトが作成されます。

lDMAInfoListCountが正の整数のときにpDMAInfoListにNULLを指定すると，エラーになります。

SDBR_DMAINFO構造体については，「付録C.1(3)　SDBR_DMAINFO構造体（DMAオブジェクト生成用の構造体）」を参照してください。

プロパティ情報を指定するSDBR_PROPLIST構造体およびSDBR_PROPについては，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

なお，VariableArray型プロパティを設定するとき，次の場合はエラーになります。このとき，major_codeとしてERR_DMA，minor_codeとしてDMARC_BAD_VALUEが返却されます。

DocumentBrokerサーバのメタ情報ファイル（edms.ini）のdmaProp_MaximumElementsエントリの値に2以上の値を設定しているときに，このエントリの値を超えてVariableArray型プロパティの要素を指定した場合

DocumentSpace構成定義ファイルdocspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義があるときに，VariableArray型プロパティの要素の値として，範囲外の値や最大値を超えた値を指定した場合

それぞれのデータ型に対応する値の範囲については，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

ppOIID（出力）

作成したCdbrVersionTraceableContainerオブジェクトのOIIDへのポインタが設定されます。なお，*ppOIIDがポイントするメモリは，ユーザプログラムでは解放しないでください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code
minor_code
説明
対処

ERR_CORBA
CORBAの戻り値が設定されます。
CORBAでエラーが発生しました。
ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。

ERR_DB
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

ERR_DB
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

ERR_DB
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

ERR_DBR
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
この操作は実行できません。

ERR_DBR
ERR_BAD_PERMISSION
不正なパーミッションが指定されました。
正しいパーミッションを指定してください。

ERR_DBR
ERR_BAD_SUBJECT_TYPE
不正なサブジェクト種別が指定されました。
正しいサブジェクト種別を指定してください。

ERR_DBR
ERR_INVALID_ACE
不正なアクセス制御エレメント（ACE）が指定されました。
ACEとして正しいCdbrCompoundオブジェクトを指定してください。

ERR_DBR
ERR_INVALID_ACE_COUNT
設定するアクセス制御エレメント（ACE）の個数が制限値を超えています。
ACEは64個以内で指定してください。

ERR_DBR
ERR_INVALID_PUBLICACL_COUNT
バインドするパブリックACLの個数が制限値を超えています。
パブリックACLは10個以内で指定してください。

ERR_DBR
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。

ERR_DBR
ERR_INVALID_SUBJECT_LENGTH
サブジェクトの長さが不正です。
次に示す範囲内でサブジェクトを指定してください。

サブジェクトの種別がユーザ識別子の場合，1文字以上，ユーザ識別子の最大長以下の文字列を指定してください。
ユーザ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がグループ識別子の場合，1文字以上，グループ識別子の最大長以下の文字列を指定してください。
グループ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がシステムサブジェクトの場合，1文字以上，254文字以下の文字列を指定してください。

ユーザ識別子とグループ識別子の最大長を拡張する方法の詳細は，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

ERR_DBR
ERR_NONEXISTS_PUBLICACL
指定されたパブリックACLは存在しません。
存在しないパブリックACLを指定しないで処理を再実行してください。

ERR_DBR
ERR_OBJECT_ALREADY_CONNECTED
オブジェクトはすでに接続されています。
この操作は実行できません。

ERR_DBR
ERR_SESSION_NOT_CONNECT
セッションが接続されていません。
セッションを接続してください。

ERR_DMA
DMARC_ACCESS_DENIED
要求された操作に対してアクセス権がありません。
正しいアクセス権を設定してください。

ERR_DMA
DMARC_BAD_CLASSID
指定された識別子は，利用できるオブジェクトのクラスではありません。
正しいクラス識別子を指定してください。

ERR_DMA
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

ERR_DMA
DMARC_BAD_PROPID
プロパティの識別子が不正です。
正しいプロパティ識別子を指定してください。

ERR_DMA
DMARC_BAD_VALUE
次のどれかの要因が考えられます。

プロパティやリストの値が，許容範囲外の値であるか，または最大値を超えました。

VariableArray型プロパティに設定する可変長配列の要素数が最大値を超えました。

docspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義がある場合に，VariableArray型プロパティの要素の値が，許容範囲外の値であるか，または最大値を超えました。

次のどれかの方法で対処してください。

プロパティやリストの値の範囲を見直してください。

VariableArray型プロパティに設定する可変長配列の要素数を見直してください。

VariableArray型プロパティの要素の値の範囲を見直してください。

ERR_DMA
DMARC_DATATYPE_MISMATCH
プロパティのデータ型に適切でない値を指定しています。
正しい型を指定してください。

ERR_DMA
DMARC_FAILED
操作が失敗しました。
時間を置いて再度実行するか，処理を見直してください。

ERR_DMA
DMARC_LOST_CONNECTION
現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。
文書空間に再接続してください。

ERR_DMA
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

ERR_DMA
DMARC_NOT_FOUND
要求された要素が見つかりません。
正しいオブジェクトを設定してください。

ERR_DMA
DMARC_NOT_SUPPORTED
このセッションまたはオブジェクトではサポートされていないメソッドです。
この操作は実行できません。

ERR_DMA
DMARC_READ_ONLY
読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。
このプロパティの値は更新できません。

ERR_DMA
DMARC_TIMEOUT
制限時間を超過しました。
タイムアウトしました。

ERR_DMA
DMARC_UNEXPECTED
予期しないエラーが発生しました。
処理を終了してください。

ERR_DMA
EDMRC_NOT_INTRANSACTION
トランザクション外でメソッドが呼ばれました。
Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionTraceableContainer::GetVersionableListメソッド

機能

バージョン管理情報一覧の取得

形式

// バージョン識別子なしで取得する場合
DmaBoolean GetVersionableList(
 pDmaBoolean           pbContinue,
 DmaInteger32          lPropDefListCount,
 SDBR_PROPDEF*         pPropDefList,
 DmaInteger32          lObjListCount,
 SDBR_OBJLIST**        ppObjList)

// バージョン識別子付きで取得する場合
DmaBoolean GetVersionableList(
 pDmaBoolean           pbContinue,
 DmaInteger32          lPropDefListCount,
 SDBR_PROPDEF*         pPropDefList,
 DmaInteger32          lObjListCount,
 SDBR_VROBJLIST**      ppVrObjList)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
   pDmaString_T       pOIID;         // オブジェクトのOIID
   DmaInteger32       lType;         // オブジェクトの種別
   SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
   DmaInteger32      lCount;
   SDBR_OBJINFO*     pItem;
};

// バージョン識別子付きオブジェクト情報構造体
struct SDBR_VROBJINFO {
   pDmaString_T       pOIID;         // オブジェクトのOIID
   DmaInteger32       lType;         // オブジェクトの種別
   pDmaString_T       pVersionId;    // バージョン識別子
   SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// バージョン識別子付きオブジェクトリスト構造体
struct SDBR_VROBJLIST {
   DmaInteger32      lCount;
   SDBR_VROBJINFO*   pItem;
};

詳細

CdbrVersionTraceableContainerオブジェクトを1バージョンとして包含しているCdbrConfiguratedReferentialContainerオブジェクトの一覧を取得するメソッドです。このオブジェクトを表すバージョン識別子も同時に取得できます。その際，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティ値も取得します。ただし，このオブジェクトが仮のバージョンに該当するオブジェクトの場合は，CdbrConfiguratedReferentialContainerオブジェクトを取得できません。

1回のメソッドのコールですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて，１回目のメソッドのコール時点の状態に依存します。したがって，１回目のメソッドのコール以降に変更した要素数やプロパティ値は，２回目以降のコールに反映されません。

また，要素の個数に変更がなく，同じオブジェクトに対するメソッドのコールであっても，取得される情報の順序は常に異なる可能性があります。

このメソッドの使用方法については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」のCdbrContainable::GetContainerListメソッドを参照してください。

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得の残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてメソッドをコールした場合または前回の読み出しですべて取得した場合は，DMA_FALSEを指定したものとして処理されます。

また，前回コールしたときと引数が異なるメソッドがコールされた場合は，pbContinueの値を無視して，新たに先頭から取得します。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合はDMA_TRUEが設定されます。

2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について，次に示します。

表17-3　ほかの引数の扱われ方（SDBR_OBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppObjList | ○ | ○

（凡例）

○：有効

×：無効

lPropDefListCount（入力）

pPropDefListの要素数を指定します。

0を指定した場合，pPropDefListの内容は無視され，プロパティは取得されません。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。lPropDefListCountが正の整数のときにpPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppObjList（出力）

取得した情報を格納するオブジェクトリスト構造体である，SDBR_OBJLIST構造体へのポインタが設定されます。*ppObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppObjListを指定したメモリ解放によって，構造体のメンバ(*ppObjList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがって，メソッドをコールした側は，これらのメンバのメモリを個別に解放する必要はありません。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppVrObjList（出力）

取得した情報を格納するバージョン識別子付きオブジェクトリスト構造体である，SDBR_VROBJLIST構造体へのポインタが設定されます。*ppVrObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムで，dbrDelete関数を使用して解放してください。なお，*ppVrObjListを指定したメモリ解放によって，構造体のメンバ(*ppVrObjList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがって，メソッドをコールした側は，これらのメンバのメモリを個別に解放する必要はありません。

SDBR_VROBJLIST構造体およびSDBR_VROBJINFO構造体に設定される内容については，「付録C.1(22)　SDBR_VROBJLIST構造体（バージョン識別子付きオブジェクトリスト構造体）」および「付録C.1(21)　SDBR_VROBJINFO構造体（バージョン識別子付きオブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_NOT_CONNECT | オブジェクトは接続されていません。 | オブジェクトを接続してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_FAILED | 操作が失敗しました。 | 時間を置いて再度実行するか，処理を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionTraceableContainer::GetVersionableListAndLockメソッド

機能

バージョン管理情報一覧の取得と同時に指定したロックの設定

形式

// バージョン識別子なしで取得する場合
DmaBoolean GetVersionableListAndLock(
 pDmaBoolean           pbContinue,
 DmaInteger32          lPropDefListCount,
 SDBR_PROPDEF*         pPropDefList,
 DmaInteger32          lObjListCount,
 SDBR_OBJLIST**        ppObjList,
 DmaInteger32          lLockType = DMA_LOCK_WRITE)

// バージョン識別子付きで取得する場合
DmaBoolean GetVersionableListAndLock(
 pDmaBoolean           pbContinue,
 DmaInteger32          lPropDefListCount,
 SDBR_PROPDEF*         pPropDefList,
 DmaInteger32          lObjListCount,
 SDBR_VROBJLIST**      ppVrObjList,
 DmaInteger32          lLockType = DMA_LOCK_WRITE)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;              // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

// オブジェクト情報構造体
struct SDBR_OBJINFO {
   pDmaString_T       pOIID;         // オブジェクトのOIID
   DmaInteger32       lType;         // オブジェクトの種別
   SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// オブジェクトリスト構造体
struct SDBR_OBJLIST {
   DmaInteger32      lCount;
   SDBR_OBJINFO*     pItem;
};

// バージョン識別子付きオブジェクト情報構造体
struct SDBR_VROBJINFO {
   pDmaString_T       pOIID;         // オブジェクトのOIID
   DmaInteger32       lType;         // オブジェクトの種別
   pDmaString_T       pVersionId;    // バージョン識別子
   SDBR_PROPLIST      PropList;      // プロパティリスト構造体
};

// バージョン識別子付きオブジェクトリスト構造体
struct SDBR_VROBJLIST {
   DmaInteger32      lCount;
   SDBR_VROBJINFO*   pItem;
};

詳細

ロックタイプを明示的に指定して，CdbrVersionTraceableContainerオブジェクトを包含しているCdbrConfiguratedReferentialContainerオブジェクトの一覧を取得するメソッドです。このオブジェクトを表すバージョン識別子も同時に取得できます。また，pPropDefListで指定したプロパティを持つオブジェクトについては，そのプロパティ値も取得します。ただし，このオブジェクトが仮のバージョンに該当するオブジェクトの場合は，CdbrConfiguratedReferentialContainerオブジェクトを取得できません。

1回のメソッドのコールですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて，１回目のメソッドのコール時点の状態に依存します。したがって，１回目のメソッドのコール以降に変更した要素数やプロパティ値は，２回目以降のコールに反映されません。

また，要素の個数に変更がなく，同じオブジェクトに対するメソッドのコールであっても，取得される情報の順序は常に異なる可能性があります。

このメソッドの使用方法については，「5.　CdbrContainableクラス（包含要素を扱うクラス）」のCdbrContainable::GetContainerListメソッドを参照してください。

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得の残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてメソッドをコールした場合または前回の読み出しですべて取得した場合は，DMA_FALSEを指定したものとして処理されます。

また，前回実行したときと引数が異なるメソッドが実行された場合は，pbContinueの値を無視して，新たに先頭から取得します。

正常終了すると，メソッドを継続してコールする必要があるかどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合はDMA_TRUEが設定されます。

2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について，次に示します。

表17-4　ほかの引数の扱われ方（SDBR_OBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppObjList | ○ | ○
ppVrObjList | ○ | ○
lLockType | × | ○

（凡例）

○：有効

×：無効

lPropDefListCount（入力）

pPropDefListの要素数を指定します。0を指定した場合，pPropDefListの内容は無視され，プロパティの取得されません。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。

プロパティを取得しない場合はNULLを指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppObjList（出力）

取得した情報を格納するオブジェクト情報リスト構造体である，SDBR_OBJLIST構造体へのポインタが設定されます。*ppObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppObjListを指定したメモリ解放によって，構造体のメンバ(*ppObjList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがって，メソッドをコールした側は，これらのメンバのメモリを個別に解放する必要はありません。

SDBR_OBJLIST構造体およびSDBR_OBJINFO構造体に設定される内容については，「付録C.1(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）」および「付録C.1(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppVrObjList（出力）

取得した情報を格納するバージョン識別子付きオブジェクト情報リスト構造体である，SDBR_VROBJLIST構造体へのポインタが設定されます。*ppVrObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。なお，*ppVrObjListを指定したメモリ解放によって，構造体のメンバ(*ppVrObjList)->pItemおよびその先に確保されているメモリはすべて解放されます。したがって，メソッドをコールした側は，これらのメンバのメモリを個別に解放する必要はありません。

SDBR_VROBJLIST構造体およびSDBR_VROBJINFO構造体に設定される内容については，「付録C.1(22)　SDBR_VROBJLIST構造体（バージョン識別子付きオブジェクトリスト構造体）」および「付録C.1(21)　SDBR_VROBJINFO構造体（バージョン識別子付きオブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次の値のどれかを設定します。

DMA_LOCK_READ
readロックを設定します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_READ | DBR_RLT_FOR_UPDATE
readロックを設定し，更新・削除用の一覧を取得します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

DMA_LOCK_WRITE | DBR_RLT_FOR_UPDATE
排他的なwriteロックを設定し，更新・削除用の一覧を取得します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_FAILED | 操作が失敗しました。 | 時間を置いて再度実行するか，処理を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionTraceableContainer::GetVTContaineeListメソッド

機能

構成管理しているオブジェクトの一覧取得

形式

//要素一覧を取得する場合
DmaBoolean CdbrVersionTraceableContainer:: GetVTContaineeList(
 pDmaBoolean         pbContinue,
 DmaInteger32        lPropDefListCount,
 SDBR_PROPDEF*       pPropDefList,
 DmaInteger32        lObjListCount,
 SDBR_VTOBJLIST**    ppVTObjList)

//種類別の要素一覧とリンク情報を取得する場合
DmaBoolean CdbrVersionTraceableContainer:: GetVTContaineeList(
 pDmaBoolean               pbContinue,
 DmaInteger32              lClassType,
 DmaInteger32              lPropDefListCount,
 SDBR_PROPDEF*             pPropDefList,
 DmaInteger32              lLinkPropDefListCount,
 SDBR_PROPDEF*             pLinkPropDefList,
 DmaInteger32              lObjListCount,
 SDBR_VTLINKEDOBJLIST**    ppVTLinkedObjList)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;          // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;          // プロパティ識別子
 DmaInteger32       lType;           // データ型
 DmaInteger32       lCardinality;    // 基本単位
 DmaInteger32       lCount;          // 要素数
 union {                             // プロパティの値
   pDmaBoolean      pbBoolean;       // Boolean型
   pDmaInteger32    plInteger32;     // Integer32型
   pDmaId           pId;             // ID型
   pDmapv           ppObject;        // Object型
   ppDmaString_T    ppString;        // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
 DmaInteger32      lCount;         // プロパティ情報の個数
 SDBR_PROP*        pItem;          // プロパティ情報
};

// 構成管理オブジェクトリスト構造体
struct SDBR_VTOBJLIST{
 DmaInteger32      lCount;    // 構成管理オブジェクト情報の個数
 SDBR_VTOBJINFO*   pItem;     // 構成管理オブジェクト情報
};

// 構成管理オブジェクト情報構造体
struct SDBR_VTOBJINFO{
 pDmaString_T    pOIID;       // オブジェクトのOIID
 pDmaString_T    pVerOIID;    // バージョントレースの対象になる
                              // オブジェクトのOIID
 pDmaString_T    pLinkID;     // オブジェクトのリンク識別子
 DmaInteger32    lTraceMode;  // 構成管理モード
 DmaInteger32    lType;       // オブジェクトの種別
 SDBR_PROPLIST   PropList;    // プロパティ情報のリスト
};

// 構成管理リンク付きオブジェクトリスト構造体
struct SDBR_VTLINKEDOBJLIST{
 DmaInteger32          lCount; // リンク付きオブジェクト情報の個数
 SDBR_VTLINKEDOBJINFO* pItem;  // リンク付きオブジェクト情報
};

// 構成管理リンク付きオブジェクト情報構造体
struct SDBR_VTLINKEDOBJINFO{
 pDmaString_T   pOIID;         // オブジェクトのOIID
 pDmaString_T   pVerOIID;      // バージョントレースの対象になる
                               // オブジェクトのOIID
 pDmaString_T   pLinkID;       // リンク識別子
 DmaInteger32   lTraceMode;    // 構成管理モード
 DmaInteger32   lType;         // オブジェクトの種別
 SDBR_PROPLIST  PropList;      // プロパティリスト
 SDBR_PROPLIST  LinkPropList;  // リンクのプロパティリスト
};

詳細

CdbrVersionTraceableContainerオブジェクトが構成管理しているオブジェクトの一覧を取得するメソッドです。pPropDefListでプロパティを指定した場合は，指しているバージョン（構成管理モードがFLOATINGモードの場合は最新のバージョン，FIXモードの場合は固定のバージョン）のプロパティも取得します。また，pLinkPropDefListで指定したユーザ定義プロパティを持つリンクについては，そのプロパティの値も取得します。なお，リンクのプロパティとは，DMAオブジェクトのVersionTraceableContainmentRelationshipオブジェクトのプロパティです。

1回のメソッドのコールですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて，１回目のメソッドのコール時点の状態に依存します。したがって，１回目のメソッドのコール以降に変更した要素数やプロパティ値は，２回目以降のコールに反映されません。

また，要素の個数に変更がなく，同じオブジェクトに対するメソッドのコールであっても，取得される情報の順序は常に異なる可能性があります。

次に，構成管理しているCdbrVersionableDocumentオブジェクトの一覧を10個ずつ取得して，そのOIIDとバージョンが固定されているかどうかを出力する例を示します。なお，エラー処理については省略しています。

構成管理しているCdbrVersionableDocumentオブジェクトの一覧を取得する例

SDBR_VTOBJLIST*  pVTObjList = NULL;
DmaInteger32  lLoop;
DmaBoolean    bContinue = DMA_UNKNOWN;
// すべての要素を取得します。
while (bContinue != DMA_FALSE){
 //情報の取得
 pDbrCfgRfct->GetVTContaineeList(&bContinue,
    NULL, 0, NULL, 10, &pVTObjList);
 //取得数だけループして，
 //OIIDとバージョンが固定されているかどうかを出力します。
 for (lLoop = 0; lLoop < pVTObjList->lCount; lLoop++) {
   printf("OIID=%s¥n", pVTObjList->pItem[lLoop].pOIID);
   if (pVTObjList->pItem[lLoop].lTraceMode == DBR_MODE_FIX)
   {
       printf("Version=Fix¥n");
   }else{
       printf("Version=UnFix¥n");
   }
 }
 dbrDelete (pVTObjList);
}

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得の残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてメソッドをコールする場合または前回の読み出しですべて取得した場合は，DMA_FALSEを指定したものとして処理されます。

正常終了すると，メソッドのコールの継続が必要かどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合，DMA_TRUEが設定されます。

2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について，次に示します。

表17-5　ほかの引数の扱われ方（SDBR_VTOBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
pVersionId | ○※ | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppVTObjList | ○ | ○

（凡例）

○：有効

×：無効

注※　前回と異なる値を指定した場合は，DMA_TRUEの指定が無効になり，DMA_FALSEを指定したものとして処理されます。

表17-6　ほかの引数の扱われ方（SDBR_VTLINKEDOBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
pVersionId | ○※ | ○
lClassType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lLinkPropDefListCount | × | ○
pLinkPropDefList | × | ○
lObjListCount | ○ | ○
ppVTLinkedObjList | ○ | ○

（凡例）

○：有効

×：無効

注※　前回と異なる値を指定した場合は，DMA_TRUEの指定が無効になり，DMA_FALSEを指定したものとして処理されます。

lPropDefListCount（入力）

pPropDefListの要素数を指定します。0を指定した場合，pPropDefListの内容は無視され，プロパティは取得されません。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。プロパティを取得しない場合はNULLを指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppVTObjList（出力）

構成管理オブジェクトリスト構造体である，SDBR_VTOBJLIST構造体へのポインタが設定されます。構成管理オブジェクトリスト構造体へのポインタを格納する領域を指定してください。

**ppVTObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムで，dbrDelete関数を使用して解放してください。

SDBR_VTOBJLIST構造体およびSDBR_VTOBJINFO構造体に設定される内容については，「付録C.1(26)　SDBR_VTOBJLIST構造体（構成管理オブジェクトリスト構造体）」および「付録C.1(25)　SDBR_VTOBJINFO構造体（構成管理オブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lClassType(入力)

取得する要素のクラス識別子を指定します。これによって，指定されたクラス識別子の要素だけが取得できます。ここでは，指しているバージョンのオブジェクトに該当するクラス識別子を指定する必要があります。クラス識別子の一覧を次に示します。

表17-7　クラス識別子の一覧

クラス識別子 | クラスの種別
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_VERSIONTRACEABLECONTAINER | CdbrVersionTraceableContainerクラス
DBR_CLASS_ALL | すべてのクラス

それぞれのクラスの識別子をOR条件として指定した取得もできます。例えば，CdbrDocumentクラスの要素とCdbrVersionTraceableContainerクラスの要素を取得したい場合は，次のように指定します。

DBR_CLASS_DOCUMENT | DBR_CLASS_VERSIONTRACEABLECONTAINER

すべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。

lLinkPropDefListCount（入力）

pLinkPropDefListの要素数を指定します。0を指定した場合，リンクのプロパティは取得されません。負の値を指定した場合は，エラーになります。

pLinkPropDefList（入力）

同時に取得するリンクのプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。指定できるリンクのプロパティ識別子は，ユーザが定義したプロパティの識別子だけです。

プロパティを取得しない場合はNULLを指定します。lLinkPropDefListCountが正の整数のときにpLinkPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppVTLinkedObjList（出力）

取得した情報を格納する構成管理リンク付きオブジェクトリスト構造体である，SDBR_VTLINKEDOBJLIST構造体へのポインタが設定されます。**ppVTLinkedObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_VTLINKEDOBJLIST構造体およびSDBR_VTLINKEDOBJINFO構造体に設定される内容については，「付録C.1(24)　SDBR_VTLINKEDOBJLIST構造体（構成管理リンク付きオブジェクトリスト構造体）」および「付録C.1(23)　SDBR_VTLINKEDOBJINFO構造体（構成管理リンク付きオブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_FAILED | 操作が失敗しました。 | 時間を置いて再度実行するか，処理を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionTraceableContainer::GetVTContaineeListAndLockメソッド

機能

構成管理しているオブジェクトの一覧取得と同時に指定したロックの設定

形式

//要素一覧を取得する場合
DmaBoolean CdbrVersionTraceableContainer:: GetVTContaineeListAndLock(
 pDmaBoolean         pbContinue,
 DmaInteger32        lPropDefListCount,
 SDBR_PROPDEF*       pPropDefList,
 DmaInteger32        lObjListCount,
 SDBR_VTOBJLIST**    ppVTObjList,
 DmaInteger32        lLockType = DMA_LOCK_WRITE)

//種類別の要素一覧とリンク情報を取得する場合
DmaBoolean CdbrVersionTraceableContainer:: GetVTContaineeListAndLock(
 pDmaBoolean               pbContinue,
 DmaInteger32              lClassType.
 DmaInteger32              lPropDefListCount,
 SDBR_PROPDEF*             pPropDefList,
 DmaInteger32              lLinkPropDefListCount,
 SDBR_PROPDEF*             pLinkPropDefList,
 DmaInteger32              lObjListCount,
 SDBR_VTLINKEDOBJLIST**    ppVTLinkedObjList,
 DmaInteger32              lLockType = DMA_LOCK_WRITE)

// プロパティ定義情報構造体
struct SDBR_PROPDEF {
   DmaId            PropId;          // プロパティ識別子
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;          // プロパティ識別子
 DmaInteger32       lType;           // データ型
 DmaInteger32       lCardinality;    // 基本単位
 DmaInteger32       lCount;          // 要素数
 union {                             // プロパティの値
   pDmaBoolean      pbBoolean;       // Boolean型
   pDmaInteger32    plInteger32;     // Integer32型
   pDmaId           pId;             // ID型
   pDmapv           ppObject;        // Object型
   ppDmaString_T    ppString;        // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
 DmaInteger32      lCount;         // プロパティ情報の個数
 SDBR_PROP*        pItem;          // プロパティ情報
};

// 構成管理オブジェクトリスト構造体
struct SDBR_VTOBJLIST{
 DmaInteger32     lCount;     // 構成管理オブジェクト情報の個数
 SDBR_VTOBJINFO*  pItem;      // 構成管理オブジェクト情報
};

// 構成管理オブジェクト情報構造体
struct SDBR_VTOBJINFO{
 pDmaString_T    pOIID;       // オブジェクトのOIID
 pDmaString_T    pVerOIID;    // バージョントレースの対象になる
                              // オブジェクトのOIID
 pDmaString_T    pLinkID;     // オブジェクトのリンク識別子
 DmaInteger32    lTraceMode;  // 構成管理モード
 DmaInteger32    lType;       // オブジェクトの種別
 SDBR_PROPLIST   PropList;    // プロパティ情報のリスト
};

// 構成管理リンク付きオブジェクトリスト構造体
struct SDBR_VTLINKEDOBJLIST{
 DmaInteger32          lCount; // リンク付きオブジェクト情報の個数
 SDBR_VTLINKEDOBJINFO* pItem;  // リンク付きオブジェクト情報
};

// 構成管理リンク付きオブジェクト情報構造体
struct SDBR_VTLINKEDOBJINFO{
 pDmaString_T   pOIID;        // オブジェクトのOIID
 pDmaString_T   pVerOIID;     // バージョントレースの対象になる
                              // オブジェクトのOIID
 pDmaString_T   pLinkID;      // リンク識別子
 DmaInteger32   lTraceMode;   // 構成管理モード
 DmaInteger32   lType;        // オブジェクトの種別
 SDBR_PROPLIST  PropList;     // プロパティリスト
 SDBR_PROPLIST  LinkPropList; // リンクのプロパティリスト
};

詳細

ロックタイプを明示的に指定して，CdbrVersionTraceableContainerオブジェクトが構成管理しているオブジェクトの一覧を取得するメソッドです。pPropDefListでプロパティを指定した場合は，指しているバージョン（構成管理モードがFLOATINGモードの場合は最新のバージョン，FIXモードの場合は固定のバージョン）のプロパティも取得します。また，pLinkPropDefListで指定したユーザ定義プロパティを持つリンクについては，そのプロパティの値も取得します。なお，リンクのプロパティとは，DMAオブジェクトのVersionTraceableContainmentRelationshipオブジェクトのプロパティです。

1回のメソッドのコールですべての要素の取得が完了しなかった場合，*pbContinueにDMA_TRUEが設定されるので，再度メソッドをコールして残りを取得してください。

複数回に分けて情報を取得する場合，取得される内容はすべて，１回目のメソッドのコール時点の状態に依存します。したがって，１回目のメソッドのコール以降に変更した要素数やプロパティ値は，２回目以降のコールに反映されません。

また，要素の個数に変更がなく，同じオブジェクトに対するメソッドのコールであっても，取得される情報の順序は常に異なる可能性があります。

次に，構成管理しているCdbrVersionableDocumentオブジェクトの一覧を10個ずつ取得して，そのOIIDとバージョンが固定されているかどうかを出力する例を示します。なお，エラー処理については省略しています。

構成管理しているCdbrVersionableDocumentオブジェクトの一覧を取得する例

SDBR_VTOBJLIST*  pVTObjList = NULL;
DmaInteger32  lLoop;
DmaBoolean    bContinue = DMA_UNKNOWN;
// すべての要素を取得します。
while (bContinue != DMA_FALSE){
 //情報の取得
 pDbrCfgRfct->GetVTContaineeListAndLock(&bContinue,
    NULL, 0, NULL, 10, &pVTObjList,DMA_LOCK_WRITE);
 //取得数だけループして，
 //OIIDとバージョンが固定されているかどうかを出力します。
 for (lLoop = 0; lLoop < pVTObjList->lCount; lLoop++) {
   printf("OIID=%s¥n", pVTObjList->pItem[lLoop].pOIID);
   if (pVTObjList->pItem[lLoop].lTraceMode == DBR_MODE_FIX)
   {
       printf("Version=Fix¥n");
   }else{
       printf("Version=UnFix¥n");
   }
 }
 dbrDelete (pVTObjList);
}

引数

pbContinue（入力／出力）

リストの取得方法を示す値を格納する領域を指定します。

DMA_TRUEを指定すると，オブジェクトに対する前回のメソッドのコールで取得した要素の次の要素から取得します。DMA_FALSEまたはDMA_UNKNOWNを指定すると，前回取得の残りを破棄して，新たに先頭から取得します。なお，オブジェクトの作成後初めてメソッドをコールする場合または前回の読み出しですべて取得した場合は，DMA_FALSEを指定したものとして処理されます。

正常終了すると，メソッドのコールの継続が必要かどうかを示す値が設定されます。リストの呼び出しがすべて完了した場合はDMA_FALSEが設定されます。まだ取得されていない要素がある場合，DMA_TRUEが設定されます。

2回目以降に取得する場合に，DMA_TRUEを指定した場合とDMA_FALSEを指定した場合の，ほかの引数に指定した値の扱われ方について，次に示します。

表17-8　ほかの引数の扱われ方（SDBR_VTOBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
pVersionId | ○※ | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lObjListCount | ○ | ○
ppVTObjList | ○ | ○
lLockType | × | ○

（凡例）

○：有効

×：無効

注※　前回と異なる値を指定した場合は，DMA_TRUEの指定が無効になり，DMA_FALSEを指定したものとして処理されます。

表17-9　ほかの引数の扱われ方（SDBR_VTLINKEDOBJLIST構造体を取得する場合）

ほかの引数 | pbContinueの値
DMA_TRUE | DMA_FALSE
pVersionId | ○※ | ○
lClassType | × | ○
lPropDefListCount | × | ○
pPropDefList | × | ○
lLinkPropDefListCount | × | ○
pLinkPropDefList | × | ○
lObjListCount | ○ | ○
ppVTLinkedObjList | ○ | ○
lLockType | × | ○

（凡例）

○：有効

×：無効

注※　前回と異なる値を指定した場合は，DMA_TRUEの指定が無効になり，DMA_FALSEを指定したものとして処理されます。

lPropDefListCount（入力）

pPropDefListの要素数を指定します。0を指定した場合，pPropDefListの内容は無視され，プロパティは取得されません。負の値を指定した場合は，エラーになります。

pPropDefList（入力）

同時に取得するプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。プロパティを取得しない場合はNULLを指定します。なお，lPropDefListCountが正の整数のときにpPropDefListにNULLを指定すると，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

lObjListCount（入力）

取得する情報の個数を指定します。0以下の数を指定するとエラーになります。

ppVTObjList（出力）

構成管理オブジェクトリスト構造体である，SDBR_VTOBJLIST構造体へのポインタが設定されます。構成管理オブジェクトリスト構造体へのポインタを格納する領域を指定してください。

**ppVTObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_VTOBJLIST構造体およびSDBR_VTOBJINFO構造体に設定される内容については，「付録C.1(26)　SDBR_VTOBJLIST構造体（構成管理オブジェクトリスト構造体）」および「付録C.1(25)　SDBR_VTOBJINFO構造体（構成管理オブジェクト情報構造体）」参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lClassType(入力)

取得する要素のクラス識別子を指定します。これによって，指定されたクラス識別子の要素だけが取得できます。クラス識別子の一覧を次に示します。

表17-10　クラス識別子の一覧

クラス識別子 | クラスの種別
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_VERSIONTRACEABLECONTAINER | CdbrVersionTraceableContainerクラス
DBR_CLASS_ALL | すべてのクラス

それぞれのクラスの識別子をOR条件として指定した取得もできます。例えば，CdbrDocumentクラスの要素とCdbrVersionTraceableContainerクラスの要素を取得したい場合は，次のように指定します。

DBR_CLASS_DOCUMENT | DBR_CLASS_VERSIONTRACEABLECONTAINER

すべてのクラスの要素を取得する場合は，DBR_CLASS_ALLを指定してください。

lLinkPropDefListCount（入力）

pLinkPropDefListの要素数を指定します。0を指定した場合，リンクのプロパティは取得されません。負の値を指定した場合は，エラーになります。

pLinkPropDefList（入力）

同時に取得するリンクのプロパティの定義情報である，SDBR_PROPDEF構造体の配列を指定します。指定できるリンクのプロパティ識別子は，ユーザが定義したプロパティの識別子だけです。

プロパティを取得しない場合はNULLを指定します。なお，lLinkPropDefListCountに0を指定した場合，pLinkPropDefListの指定内容は無視されます。また，lLinkPropDefListCountが正の整数のときにpLinkPropDefListにNULLを指定した場合は，エラーになります。

SDBR_PROPDEF構造体に指定する内容については，「付録C.1(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）」を参照してください。

ppVTLinkedObjList（出力）

取得した情報を格納する構成管理リンク付きオブジェクトリスト構造体である，SDBR_VTLINKEDOBJLIST構造体へのポインタが設定されます。**ppVTLinkedObjListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_VTLINKEDOBJLIST構造体およびSDBR_VTLINKEDOBJINFO構造体に設定される内容については，「付録C.1(24)　SDBR_VTLINKEDOBJLIST構造体（構成管理リンク付きオブジェクトリスト構造体）」および「付録C.1(23)　SDBR_VTLINKEDOBJINFO構造体（構成管理リンク付きオブジェクト情報構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

lLockType（入力）

ロックの種別を指定します。次の値のどれかを設定します。

DMA_LOCK_READ
readロックを設定します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_READ | DBR_RLT_FOR_UPDATE
readロックを設定し，更新・削除用の一覧を取得します。readロックを設定すると，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

DMA_LOCK_WRITE | DBR_RLT_FOR_UPDATE
排他的なwriteロックを設定し，更新・削除用の一覧を取得します。排他的なwriteロックを設定すると，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。
このロック種別は，一覧を分割取得する場合に，取得した一覧のオブジェクトに対して，更新・削除処理を実行するときに指定してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_FAILED | 操作が失敗しました。 | 時間を置いて再度実行するか，処理を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionTraceableContainer::LinkVTFixメソッド

機能

構成管理するオブジェクトのFIXモードでの関連づけ

形式

DmaBoolean CdbrVersionTraceableContainer::LinkVTFix(
 CdbrVersionable*   pDbrVersionable,
 pDmaString_T       pCompoVersionId,
 SDBR_PROPLIST*     pLinkPropList,
 ppDmaString_T      ppLinkId)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

CdbrVersionTraceableContainerオブジェクトとCdbrVersionableDocumentオブジェクトまたはCdbrConfiguratedReferentialContainerオブジェクトを，構成管理型のコンテインメントで関連づけるメソッドです。このとき，常に固定されたバージョンの構成要素を指すFIXモードを構成管理モードとして設定します。FIXモードを設定すると，構成要素がバージョンアップされた場合もCdbrVersionTraceableContainerオブジェクトが指すリンク先は変更されません。

構成要素のバージョンアップに伴ってCdbrVersionTraceableContainerオブジェクトが常にカレントバージョンの構成要素を指すようにするには，CdbrVersionTraceableContainer::SetVTFloatメソッドを使用して構成管理モードをFLOATINGモードに変更してください。

引数

pDbrVersionable（入力）

構成管理するオブジェクトを指定します。CdbrVersionableDocumentオブジェクトまたはCdbrConfiguratedReferentialContainerオブジェクトを指定できます。

pCompoVersionId（入力）

関連づける構成要素のバージョン識別子を指定します。NULLを指定した場合，カレントバージョンを指定したことになります。

pLinkPropList（入力）

リンクに設定するプロパティのプロパティリストを指定します。edmClass_VersionTraceableContainmentRelationshipクラスに定義されているプロパティを指定できます。なお，リンクにプロパティの値を設定できるのは，ユーザが定義したプロパティだけです。プロパティ識別子にはユーザが定義したプロパティ識別子を指定してください。

プロパティを設定しない場合は，NULLを指定してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppLinkId（出力）

リンク識別子へのポインタが設定されます。このリンク識別子は，CdbrVersionTraceableContainer::GetLinkPropertyValuesメソッド，CdbrVersionTraceableContainer::GetLinkPropertyValuesAndLockメソッドまたはCdbrVersionTraceableContainer::PutLinkPropertyValuesメソッドで，処理対象とするリンクを指定する場合に使用します。また，関連づけを解除するためのメソッドであるCdbrVersionTraceableContainer::UnlinkVTメソッドまたはCdbrVersionTraceableContainer::UnlinkVTAndLockでも使用できます。

*ppLinkIdがポイントするメモリはライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_DATATYPE_MISMATCH | プロパティのデータ型に適切でない値を指定しています。 | 正しい型を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | 未サポートのプロパティ型です。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionTraceableContainer::LinkVTFixAndLockメソッド

機能

構成管理するオブジェクトのFIXモードでの関連づけと同時に指定したロックの設定

形式

DmaBoolean CdbrVersionTraceableContainer::LinkVTFixAndLock(
 CdbrVersionable*   pDbrVersionable,
 pDmaString_T       pCompoVersionId,
 SDBR_PROPLIST*     pLinkPropList,
 ppDmaString_T      ppLinkId,
 DmaInteger32       lLockType = DMA_LOCK_WRITE)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

ロックタイプを明示的に指定して，CdbrVersionTraceableContainerオブジェクトとCdbrVersionableDocumentオブジェクトまたはCdbrConfiguratedReferentialContainerオブジェクトを，構成管理型のコンテインメントで関連づけるメソッドです。このとき，常に固定されたバージョンの構成要素を指すFIXモードを構成管理モードとして設定します。FIXモードを設定すると，構成要素がバージョンアップされた場合もCdbrVersionTraceableContainerオブジェクトが指すリンク先は変更されません。

構成要素のバージョンアップに伴ってCdbrVersionTraceableContainerオブジェクトが常にカレントバージョンの構成要素を指すようにするには，CdbrVersionTraceableContainer::SetVTFloatメソッドを使用して構成管理モードをFLOATINGモードに変更してください。

引数

pDbrVersionable（入力）

構成管理するオブジェクトを指定します。CdbrVersionableDocumentオブジェクトまたはCdbrConfiguratedReferentialContainerオブジェクトを指定できます。

pCompoVersionId（入力）

関連づける構成要素のバージョン識別子を指定します。NULLを指定した場合，カレントバージョンを指定したことになります。

pLinkPropList（入力）

リンクに設定するプロパティのプロパティリストを指定します。edmClass_VersionTraceableContainmentRelationshipクラスに定義したプロパティを指定できます。なお，リンクにプロパティの値を設定できるのは，ユーザが定義したプロパティだけです。プロパティ識別子にはユーザが定義したプロパティ識別子を指定してください。

プロパティを設定しない場合は，NULLを指定してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppLinkId（出力）

リンク識別子へのポインタが設定されます。このリンク識別子は，CdbrVersionTraceableContainer::GetLinkPropertyValuesメソッド，CdbrVersionTraceableContainer::GetLinkPropertyValuesAndLockメソッドまたはCdbrVersionTraceableContainer::PutLinkPropertyValuesメソッドで，処理対象とするリンクを指定する場合に使用します。また，関連づけを解除するためのメソッドであるCdbrVersionTraceableContainer::UnlinkVTメソッドまたはCdbrVersionTraceableContainer::UnlinkVTAndLockでも使用できます。

*ppLinkIdがポイントするメモリはライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_DATATYPE_MISMATCH | プロパティのデータ型に適切でない値を指定しています。 | 正しい型を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | 未サポートのプロパティ型です。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionTraceableContainer::LinkVTFloatメソッド

機能

構成管理するオブジェクトのFLOATINGモードでの関連づけ

形式

DmaBoolean CdbrVersionTraceableContainer::LinkVTFloat(
 CdbrVersionable*   pDbrVersionable,
 SDBR_PROPLIST*     pLinkPropList,
 ppDmaString_T      ppLinkId)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

CdbrVersionTraceableContainerオブジェクトとCdbrVersionableDocumentオブジェクトまたはCdbrConfiguratedReferentialContainerオブジェクトを，構成管理型のコンテインメントで関連づけるメソッドです。このとき，常にカレントバージョンの構成要素を指すFLOATINGモードを構成管理モードとして設定します。FLOATINGモードを設定すると，構成要素がバージョンアップされた場合，CdbrVersionTraceableContainerオブジェクトが指すリンク先は常にカレントバージョンに変更されます。

構成要素のバージョンアップがあってもCdbrVersionTraceableContainerオブジェクトが常に特定のバージョンを指すようにするには，CdbrVersionTraceableContainer::SetVTFixメソッドを使用して構成管理モードをFIXモードに変更してください。

引数

pDbrVersionable（入力）

構成管理するオブジェクトを指定します。CdbrVersionableDocumentオブジェクトまたはCdbrConfiguratedReferentialContainerオブジェクトを指定できます。

pLinkPropList（入力）

リンクに設定するプロパティのプロパティリストを指定します。edmClass_VersionTraceableContainmentRelationshipクラスに定義したプロパティを指定できます。なお，リンクにプロパティの値を設定できるのは，ユーザが定義したプロパティだけです。プロパティ識別子にはユーザが定義したプロパティ識別子を指定してください。

プロパティを設定しない場合は，NULLを指定してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppLinkId（出力）

リンク識別子へのポインタが設定されます。このリンク識別子は，CdbrVersionTraceableContainer::GetLinkPropertyValuesメソッド，CdbrVersionTraceableContainer::GetLinkPropertyValuesAndLockメソッドまたはCdbrVersionTraceableContainer::PutLinkPropertyValuesメソッドで，処理対象とするリンクを指定する場合に使用します。また，関連づけを解除するためのメソッドであるCdbrVersionTraceableContainer::UnlinkVTメソッドまたはCdbrVersionTraceableContainer::UnlinkVTAndLockでも使用できます。

*ppLinkIdがポイントするメモリはライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_DATATYPE_MISMATCH | プロパティのデータ型に適切でない値を指定しています。 | 正しい型を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | 未サポートのプロパティ型です。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionTraceableContainer::LinkVTFloatAndLockメソッド

機能

構成管理するオブジェクトのFLOATINGモードでの関連づけと同時に指定したロックの設定

形式

DmaBoolean CdbrVersionTraceableContainer::LinkVTFloatAndLock(
 CdbrVersionable*   pDbrVersionable,
 SDBR_PROPLIST*     pLinkPropList,
 ppDmaString_T      ppLinkId,
 DmaInteger32       lLockType = DMA_LOCK_WRITE)

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

ロックタイプを明示的に指定して，CdbrVersionTraceableContainerオブジェクトとCdbrVersionableDocumentオブジェクトまたはCdbrConfiguratedReferentialContainerオブジェクトを，構成管理型のコンテインメントで関連づけるメソッドです。このとき，常にカレントバージョンの構成要素を指すFLOATINGモードを構成管理モードとして設定します。FLOATINGモードを設定すると，構成要素がバージョンアップされた場合，CdbrVersionTraceableContainerオブジェクトが指すリンク先は常にカレントバージョンに変更されます。

構成要素のバージョンアップがあってもCdbrVersionTraceableContainerオブジェクトが常に特定のバージョンを指すようにするには，CdbrVersionTraceableContainer::SetVTFixメソッドを使用して構成管理モードをFIXモードに変更してください。

引数

pDbrVersionable（入力）

構成管理するオブジェクトを指定します。CdbrVersionableDocumentオブジェクトまたはCdbrConfiguratedReferentialContainerオブジェクトを指定できます。

pLinkPropList（入力）

リンクに設定するプロパティのプロパティリストを指定します。edmClass_VersionTraceableContainmentRelationshipクラスに定義したプロパティを指定できます。なお，リンクにプロパティの値を設定できるのは，ユーザが定義したプロパティだけです。プロパティ識別子にはユーザが定義したプロパティ識別子を指定してください。

プロパティを設定しない場合は，NULLを指定してください。

SDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

ppLinkId（出力）

リンク識別子へのポインタが設定されます。このリンク識別子は，CdbrVersionTraceableContainer::GetLinkPropertyValuesメソッド，CdbrVersionTraceableContainer::GetLinkPropertyValuesAndLockメソッドまたはCdbrVersionTraceableContainer::PutLinkPropertyValuesメソッドで，処理対象とするリンクを指定する場合に使用します。また，関連づけを解除するためのメソッドであるCdbrVersionTraceableContainer::UnlinkVTメソッドまたはCdbrVersionTraceableContainer::UnlinkVTAndLockでも使用できます。

*ppLinkIdがポイントするメモリはライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_PROPID | プロパティの識別子が不正です。 | 正しいプロパティ識別子を指定してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_DATATYPE_MISMATCH | プロパティのデータ型に適切でない値を指定しています。 | 正しい型を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_NOT_SUPPORTED | 未サポートのプロパティ型です。 | この操作は実行できません。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionTraceableContainer::SetVTFixメソッド

機能

構成要素のバージョンの固定

形式

DmaBoolean CdbrVersionTraceableContainer::SetVTFix(
 pDmaString_T       pLinkId,
 pDmaString_T       pCompoVersionId)

詳細

CdbrVersionTraceableContainerオブジェクトのpLinkIdで指定した構成要素のバージョンを，pCompoVersionIdで指定したバージョンで固定する（構成管理モードにFIXモードを設定する）メソッドです。

このメソッドによってバージョンを固定したあとは，構成要素がバージョンアップしても，CdbrVersionTraceableContainerオブジェクトは固定したバージョンの構成要素を参照し続けます。

すでにFIXモードで構成管理しているオブジェクトに対してこのメソッドをコールした場合は，FIXモードのまま正常終了します。

引数

pLinkId（入力）

バージョンを固定する構成要素のリンク識別子を指定します。リンク識別子は，CdbrVersionTraceableContainer::GetVTContaineeListメソッドまたはCdbrVersionTraceableContainer::GetVTContaineeListAndLockメソッドで取得します。

pCompoVersionId（入力）

固定するバージョンのバージョン識別子を指定します。

なお，DBR_VTVERSIONを指定した場合には現時点で関連づけられているバージョンで固定されます。NULLを指定した場合にはカレントバージョンで固定されます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDで不正なOIIDが設定されています。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_FAILED | 操作が失敗しました。 | 時間を置いて再度実行するか，処理を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionTraceableContainer::SetVTFixAndLockメソッド

機能

構成要素のバージョンの固定と同時に指定したロックの設定

形式

DmaBoolean CdbrVersionTraceableContainer::SetVTFixAndLock(
 pDmaString_T       pLinkId,
 pDmaString_T       pCompoVersionId,
 DmaInteger32       lLockType = DMA_LOCK_WRITE)

詳細

明示的にロックの種別を指定して，CdbrVersionTraceableContainerオブジェクトのpLinkIdで指定した構成要素のバージョンを，pCompoVersionIdで指定したバージョンで固定する（構成管理モードにFIXモードを設定する）メソッドです。

このメソッドによってバージョンを固定したあとは，構成要素がバージョンアップしても，CdbrVersionTraceableContainerオブジェクトは固定したバージョンの構成要素を参照し続けます。

すでにFIXモードで構成管理しているオブジェクトに対してこのメソッドをコールした場合は，FIXモードのまま正常終了します。

引数

pLinkId（入力）

バージョンを固定する構成要素のリンク識別子を指定します。リンク識別子は，CdbrVersionTraceableContainer::GetVTContaineeListメソッドまたはCdbrVersionTraceableContainer::GetVTContaineeListAndLockメソッドで取得します。

pCompoVersionId（入力）

固定するバージョンのバージョン識別子を指定します。

なお，DBR_VTVERSIONを指定した場合には現時点で関連づけられているバージョンで固定されます。NULLを指定した場合にはカレントバージョンで固定されます。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE 　正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDで不正なOIIDが設定されています。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_FAILED | 操作が失敗しました。 | 時間を置いて再度実行するか，処理を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NO_RESERVATION | バージョン識別子が予約されていません。 | チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionTraceableContainer::SetVTFloatメソッド

機能

構成要素のバージョン固定の解除

形式

DmaBoolean CdbrVersionTraceableContainer::SetVTFloat(
 pDmaString_T     pLinkId)

詳細

CdbrVersionTraceableContainerオブジェクトが構成管理しているpLinkIdで指定した構成要素のバージョンの固定を解除する（構成管理モードにFLOATINGモードを設定する）メソッドです。

このメソッドをコールすると，CdbrVersionTraceableContainerオブジェクトは，常に構成要素のカレントバージョンを参照するようにリンクを切り替えます。

すでにFLOATINGモードで構成管理しているオブジェクトに対してこのメソッドをコールした場合は，FLOATINGモードのまま正常終了します。

引数

pLinkId（入力）

バージョン固定を解除する構成要素のリンク識別子を指定します。リンク識別子は，CdbrVersionTraceableContainer::GetVTContaineeListメソッドで取得します。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_FAILED | 操作が失敗しました。 | 時間を置いて再度実行するか，処理を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionTraceableContainer::SetVTFloatAndLockメソッド

機能

構成要素のバージョン固定の解除と同時に指定したロックの設定

形式

DmaBoolean CdbrVersionTraceableContainer::SetVTFloatAndLock(
 pDmaString_T     pLinkId,
 DmaInteger32     lLockType = DMA_LOCK_WRITE)

詳細

ロックタイプを明示的に指定して，CdbrVersionTraceableContainerオブジェクトが構成管理しているpLinkIdで指定した構成要素のバージョンの固定を解除する（構成管理モードにFLOATINGモードを設定する）メソッドです。

このメソッドをコールすると，CdbrVersionTraceableContainerオブジェクトは，常に構成要素のカレントバージョンを参照するようにリンクを切り替えます。

すでにFLOATINGモードで構成管理しているオブジェクトに対してこのメソッドをコールした場合は，FLOATINGモードのまま正常終了します。

引数

pLinkId（入力）

バージョン固定を解除する構成要素のリンク識別子を指定します。リンク識別子は，CdbrVersionTraceableContainer::GetVTContaineeListメソッドで取得します。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_CORBA | CORBAの戻り値が設定されます。 | CORBAでエラーが発生しました。 | ユーザプログラムでは対処できません。エラー情報として文字列の値を取得して，ユーザプログラムを終了してください。
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_FAILED | 操作が失敗しました。 | 時間を置いて再度実行するか，処理を見直してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionTraceableContainer::UnlinkVTメソッド

機能

構成管理しているオブジェクトとの関連づけの解除

形式

DmaBoolean CdbrVersionTraceableContainer::UnlinkVT(
 pDmaString_T        pLinkId)

詳細

CdbrVersionTraceableContainerオブジェクトに関連づけて構成管理しているオブジェクトとの関連づけを解除するメソッドです。

指定したオブジェクトと関連づけされていないリンク識別子を指定した場合は，エラーになります。

引数

pLinkId（入力）

関連づけを解除する構成要素のリンク識別子を指定します。指定するリンク識別子は，CdbrVersionTraceableContainer::GetVTContaineeListメソッドまたはCdbrVersionTraceableContainer::GetVTContaineeListAndLockメソッドで取得できます。また，CdbrVersionTraceableContainer::LinkVTFixメソッド，CdbrVersionTraceableContainer::LinkVTFixAndLockメソッド，CdbrVersionTraceableContainer::LinkVTFloatメソッドまたはCdbrVersionTraceableContainer::LinkVTFloatAndLockメソッドで関連づけした時に出力されます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

CdbrVersionTraceableContainer::UnlinkVTAndLockメソッド

機能

構成管理しているオブジェクトとの関連づけの解除と同時に指定したロックの設定

形式

DmaBoolean CdbrVersionTraceableContainer::UnlinkVTAndLock(
 pDmaString_T        pLinkId,
 DmaInteger32        lLockType = DMA_LOCK_WRITE)

詳細

ロックタイプを明示的に指定して，CdbrVersionTraceableContainerオブジェクトに関連づけて構成管理しているオブジェクトとの関連づけを解除するメソッドです。

指定したオブジェクトと関連づけされていないリンク識別子を指定した場合は，エラーになります。

引数

pLinkId（入力）

関連づけを解除する構成要素のリンク識別子を指定します。指定するリンク識別子は，CdbrVersionTraceableContainer::GetVTContaineeListメソッドまたはCdbrVersionTraceableContainer::GetVTContaineeListAndLockメソッドで取得できます。また，CdbrVersionTraceableContainer::LinkVTFixメソッド，CdbrVersionTraceableContainer::LinkVTFixAndLockメソッド，CdbrVersionTraceableContainer::LinkVTFloatメソッドまたはCdbrVersionTraceableContainer::LinkVTFloatAndLockメソッドで関連づけした時に出力されます。

lLockType（入力）

ロックの種別を指定します。次のどちらかの値を設定します。

DMA_LOCK_READ
readロックを設定します。このロックを設定した場合，ほかのクライアントからwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

DMA_LOCK_WRITE
排他的なwriteロックを設定します。このロックを設定した場合は，ほかのクライアントからreadロックおよびwriteロックを設定できません。ロックがすでに設定されている場合には，ロックが解除されるまで待ちます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DB | ERR_DB_DEADLOCK_OCCURRED | データベースでデッドロックが発生しました。 | 時間を置いて，再度実行してください。
ERR_DB | ERR_DB_FAILED | データベースで障害が発生しました。 | syslogを参照して，障害の原因を取り除いてください。
ERR_DB | ERR_DB_LOCKED | オブジェクトがロックされています。 | 時間を置いて，再度実行してください。
ERR_DBR | ERR_ACCESS_NOT_PERMITTED | アクセス権がありません。 | この操作は実行できません。
ERR_DBR | ERR_ACLIB_OBJECT_INVALID | クラスライブラリのオブジェクトは無効です。 | 有効なクラスライブラリのオブジェクトを指定してください。
ERR_DBR | ERR_INVALID_STATUS | セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。 | 一つのセッションに対しては，一度に一つの処理要求しか出さないように見直してください。
ERR_DBR | ERR_OBJECT_REMOVED | オブジェクトはすでに削除されています。 | 正しいオブジェクトを指定してください。
ERR_DBR | ERR_OIID_NOT_SET | OIIDが設定されていません。 | SetOIIDメソッドをコールしてから，このメソッドをコールしてください。
ERR_DBR | ERR_SESSION_NOT_CONNECT | セッションが接続されていません。 | セッションを接続してください。
ERR_DMA | DMARC_BAD_LOCK_TYPE | 不正な種類のロックが指定されています。 | 正しいロックタイプを指定してください。
ERR_DMA | DMARC_BAD_OIID | SetOIIDメソッドで設定されたOIIDが不正です。 | 正しいOIIDを指定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_LOST_CONNECTION | 現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。 | 文書空間に再接続してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_FOUND | 要求された要素が見つかりません。 | 正しいオブジェクトを設定してください。
ERR_DMA | DMARC_TIMEOUT | 制限時間を超過しました。 | タイムアウトしました。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | EDMRC_NOT_INTRANSACTION | トランザクション外でメソッドが呼ばれました。 | Beginメソッドの呼び出し後に，この操作を実行してください。

18.　CdbrXmlTranslatorクラス（XML変換を扱うクラス）

XMLプロパティマッピングに使用する定義ファイル類を解析して，XML文書管理機能を実行するための環境を管理する機能を提供するクラスです。プロパティリストの取得や全文検索インデクス作成用データの生成など，個々のXMLファイルに対する変換機能を提供します。

＜この章の構成＞

CdbrXmlTranslatorクラスの詳細

CdbrXmlTranslator::~CdbrXmlTranslatorメソッド

CdbrXmlTranslator::CdbrXmlTranslatorメソッド

CdbrXmlTranslator::GetDmaInfoListメソッド

CdbrXmlTranslator::GetIndexDataメソッド

CdbrXmlTranslatorクラスの詳細

CdbrXmlTranslatorクラスのインスタンスは，CdbrXmlTranslatorFactory::CreateTranslatorメソッドでCdbrXmlTranslatorオブジェクトを生成することによって使用できるようになります。なお，CdbrXmlTranslatorFactoryオブジェクトが破棄されると，このクラスのインスタンスもCdbrXmlTranslatorオブジェクト生成前の状態に戻り，このクラスの主要なメソッドはエラーになります。

また，このクラスのインスタンスは複数のスレッドで共有できません。一つのスレッド内で占有して使用してください。CdbrXmlTranslatorオブジェクトの生成時と異なるスレッドでこのクラスのメソッドを実行した場合の動作は保証しません。

生成処理に時間を要するので，生成したCdbrXmlTranslatorオブジェクトはスレッド内で使い回すことを推奨します。

このクラスを使用するにはHiRDB Adapter for XMLが必要です。

なお，全文検索インデクス作成用データを作成するときは，Preprocessing Library for Text Searchがあわせて必要です。

スーパークラス

プロパティ一覧

なし

メソッド一覧

CdbrCoreクラスから継承されるメソッド

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

これらのメソッドの詳細については，「6.　CdbrCoreクラス（エラー情報を取得するクラス）」を参照してください。

CdbrXmlTranslatorクラスで導入されるメソッド

メソッド | 機能
~CdbrXmlTranslator | デストラクタ
CdbrXmlTranslator | コンストラクタ
GetDmaInfoList | DMA情報リストの取得
GetIndexData | 全文検索インデクス作成用データの取得

以降，CdbrXmlTranslatorクラスで導入されるメソッドについて説明します。

CdbrXmlTranslator::~CdbrXmlTranslatorメソッド

機能

デストラクタ

形式

~CdbrXmlTranslator()

詳細

CdbrXmlTranslatorオブジェクトのデストラクタです。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrXmlTranslator::CdbrXmlTranslatorメソッド

機能

コンストラクタ

形式

CdbrXmlTranslator()

詳細

CdbrXmlTranslatorオブジェクトのコンストラクタです。

領域を確保した直後の状態では必要な情報が設定されていないため，このクラスのほかのメソッドを実行できません。ほかのメソッドを実行できるようにするには，CdbrXmlTranslatorFactory::CreateTranslatorメソッドでCdbrXmlTranslatorオブジェクトを生成してください。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrXmlTranslator::GetDmaInfoListメソッド

機能

DMA情報リストの取得

形式

DmaBoolean GetDmaInfoList (
 const pDmaString_T   pXmlFilePath,
 DmaInteger32         lParseLevel,
 const pDmaString_T   pMappingId,
 DmaInteger32         lIndexType,
 const pDmaString_T   pFilterFilePath,
 const pDmaString_T   pIndexFilePath,
 SDBR_DMAINFOLIST**   ppDmaInfoList,
 ppDmaString_T        ppParseMessage)

// DMA情報リスト構造体
struct SDBR_DMAINFOLIST {
 DmaInteger32     lCount;          //DMAオブジェクトの情報の個数
 SDBR_DMAINFO*    pItem;           //DMAオブジェクトの情報
};

// DMAオブジェクト生成用の構造体
struct SDBR_DMAINFO {
 DmaId            ClassId;         //クラス識別子
 SDBR_PROPLIST    PropList;        //プロパティ一覧
};

// プロパティ構造体
struct SDBR_PROP {
 DmaId              PropId;              // プロパティ識別子
 DmaInteger32       lType;               // データ型
 DmaInteger32       lCardinality;        // 基本単位
 DmaInteger32       lCount;              // 要素数
 union {                                 // プロパティの値
   pDmaBoolean      pbBoolean;           // Boolean型
   pDmaInteger32    plInteger32;         // Integer32型
   pDmaId           pId;                 // ID型
   pDmapv           ppObject;            // Object型
   ppDmaString_T    ppString;            // String型
 } uniValue;
};

// プロパティリスト構造体
struct SDBR_PROPLIST {
   DmaInteger32      lCount;
   SDBR_PROP*        pItem;
};

詳細

指定されたXMLファイルの構文解析を行い，マッピング定義情報に従ってXMLファイルからプロパティを抽出してDMA情報リスト（文書オブジェクトを作成するときのプロパティの初期値のリスト）を作成するメソッドです。また，オプションで，全文検索インデクス作成用のデータをファイルに出力します。ただし，全文検索インデクス作成用データの出力にはPreprocessing Library for Text Searchが必要です。

CdbrXmlTranslatorFactory::CreateTranslatorメソッドでCdbrXmlTranslatorオブジェクトを生成していない場合や，CdbrXmlTranslatorオブジェクト生成元のCdbrXmlTranslatorFactoryオブジェクトがすでに破棄されている場合，オブジェクトが未初期化状態であるとして，このメソッドはエラーになります。

引数

pXmlFilePath（入力）

入力するXMLファイルのパス名を，"file:///"で始まるURL形式で指定します。NULLを指定するとエラーになります。

lParseLevel（入力）

構文解析のレベルを指定します。次の値のどれかを指定してください。

DBR_XMLPARSE_NO_EXTERNAL_ENTITIES
DTDの解析をしないで，外部エンティティは無視します。

DBR_XMLPARSE_WITH_EXTERNAL_ENTITIES
DTDを含めた構文解析をして外部エンティティを読み込みますが，検証はしません。

DBR_XMLPARSE_VALIDATE
DTDを使って検証を実行します。

pMappingId（入力）

マッピング定義名を指定します。NULLを指定するとエラーになります。

lIndexType（入力）

作成対象となる全文検索インデクスの種別を指定します。次の値のどれかを指定してください。

DBR_INDEXTYPE_NOTHING
全文検索インデクスを作成しない場合に指定します。全文検索インデクス作成用データは出力されません。

DBR_INDEXTYPE_PLAIN
構造指定検索なしの全文検索インデクスを作成する場合に指定します。プレーンテキスト形式のインデクスデータを出力します。

DBR_INDEXTYPE_STRUCTURED
構造指定検索用の全文検索インデクスを作成する場合に指定します。構造指定検索用のインデクスデータ（ESIS-B形式のデータ）を出力します。

なお，DBR_INDEXTYPE_NOTHINGを指定した場合，引数pFilterFilePathおよびpIndexFilePathの値は無視されます。

また，Preprocessing Library for Text Searchを利用できない場合に，DBR_INDEXTYPE_NOTHING以外の値を指定するとエラーになります。

pFilterFilePath（入力）

全文検索インデクス作成用データの生成の際に使用するフィルタリング定義ファイルを指定します。引数lIndexTypeにDBR_INDEXTYPE_NOTHINGを指定した場合，pFilterFileNameの値は無視されます。

ファイルは，UNIXの場合は<インストールディレクトリ>/client/etc/xml_files，Windowsの場合は<DocumentBroker Development Kitのインストールディレクトリ>¥etc¥xml_filesを起点とした相対パス名か，"file:///"で始まる絶対パス名で指定します。また，NULLを指定した場合，UNIXの場合は<インストールディレクトリ>/client/etc/xml_files，Windowsの場合は<DocumentBroker Development Kitのインストールディレクトリ>¥etc¥xml_filesにあるデフォルトのファイル"<文書空間識別子>_<マッピング定義名>.tfd"を使用して処理を実行します。なお，NULLを指定した場合でデフォルトのファイルが存在しない場合，フィルタリング定義ファイルを使用しないで処理を実行します。

pIndexFilePath（入力）

全文検索インデクス作成用データを出力するファイルのパス名を，"file:///"で始まるURL形式で指定します。引数lIndexTypeにDBR_INDEXTYPE_NOTHINGを指定した場合，pIndexFilePathの値は無視されます。それ以外の場合，NULLを指定するとエラーになります。

ppDmaInfoList（出力）

抽出したプロパティを格納するDMA情報リスト構造体である，SDBR_DMAINFOLIST構造体へのポインタが設定されます。DMA情報リスト構造体へのポインタを格納する領域を指定してください。NULLを指定するとエラーになります。それ以外のエラーの場合NULLが格納されます。

**ppDmaInfoListがポイントするメモリは，ライブラリが新たに確保したものです。このメモリは，ユーザプログラムでdbrDelete関数を使用して解放してください。

SDBR_DMAINFOLIST構造体およびSDBR_DMAINFO構造体に設定される内容については，「付録C.1(4)　SDBR_DMAINFOLIST構造体（DMA情報リスト構造体）」および「付録C.1(3)　SDBR_DMAINFO構造体（DMAオブジェクト生成用の構造体）」を参照してください。

また，プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については，「付録C.1(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）」および「付録C.1(12)　SDBR_PROP構造体（プロパティ構造体）」を参照してください。

なお，SDBR_DMAINFOLIST構造体のメンバpItemに設定されるDMAオブジェクト生成用構造体の配列の要素数は，マッピング定義情報で指定したクラスの数と同じです。

また，ユーザがマッピング定義として二つのクラスを指定した場合，１番目の要素にはdmaClass_ConfigurationHistoryクラスまたはそのサブクラスの情報が，２番目の要素にはdmaClass_DocVersionクラスまたはそのサブクラスの情報が，それぞれ設定されます。

ppParseMessage（出力）

XMLファイルの構文解析などで発生したエラーやワーニング（警告）の詳細情報が設定されます。詳細情報を格納する領域のアドレスを指定してください。NULLを指定するとエラーになります。なお，返却する詳細情報がない場合はNULLが設定されます。ppParseMessageの領域は，dbrDelete関数を使ってユーザプログラムで解放してください。

NULLが設定されるかどうかはこのメソッドの戻り値に依存しません。メソッドが正常終了した場合でもNULL以外の値が設定される場合があり，また，異常終了した場合でもNULLが設定される場合があります。

取得した文字列は改行コードで区切られ，複数行で構成される場合があります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DBR | ERR_OBJECT_NOT_INITIALIZE | オブジェクトが初期化されていません。 | 初期化を実行してください。
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_URL | リソースのURLが不正です。 | URLの内容を見直してください。
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が，許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません（全文検索インデクス作成用データの出力にはPreprocessing Library for Text Searchが必要です）。
ERR_DMA | DMARC_RESOURCE_NOT_FOUND | 指定されたリソースがありません。 | 指定したリソースパスを見直してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | DMARC_URL_PROTOCOL_NOT_SUPPORTED | サポートしていないURLプロトコルです。 | file:///で始まっているか確認してください。
ERR_DMA | EDMRC_PARSE_ERROR | XMLファイルの構文解析エラーが発生しました。 | XMLファイルの内容を見直してください。

CdbrXmlTranslator::GetIndexDataメソッド

機能

全文検索インデクス作成用データの取得

形式

DmaBoolean GetIndexData(
 const pDmaString_T    pXmlFilePath,
 DmaInteger32          lParseLevel,
 DmaInteger32          lIndexType,
 const pDmaString_T    pFilterFilePath,
 const pDmaString_T    pIndexFilePath,
 ppDmaString_T         ppParseMessage)

詳細

XMLファイルの構文解析をして全文検索インデクス作成用データを生成し，ファイルに出力するメソッドです。出力されたファイルは，CdbrDocumentクラスなどの文書系クラスのCreateIndexメソッドで利用します。

CdbrXmlTranslatorFactory::CreateTranslatorメソッドでCdbrXmlTranslatorオブジェクトを生成していない場合や，CdbrXmlTranslatorオブジェクト生成元のCdbrXmlTranslatorFactoryオブジェクトがすでに破棄されている場合，オブジェクトが未初期化状態であるとして，このメソッドはエラーになります。

全文検索インデクス作成用データは，CdbrXmlTranslator::GetDmaInfoListメソッドでも取得できます。このメソッドもCdbrXmlTranslator::GetDmaInfoListメソッドも構文解析を伴うので，プロパティリストも必要な場合は処理性能を考慮して，CdbrXmlTranslator::GetDmaInfoListメソッドで一括して取得することを推奨します。

なお，このメソッドの実行にはPreprocessing Library for Text Searchが必要です。

引数

pXmlFilePath（入力）

入力するXMLファイルのパス名を，"file:///"で始まるURL形式で指定します。NULLを指定するとエラーになります。

lParseLevel（入力）

構文解析のレベルを指定します。次の値のどれかを指定してください。

DBR_XMLPARSE_NO_EXTERNAL_ENTITIES
DTDの解析をしないで，外部エンティティは無視します。

DBR_XMLPARSE_WITH_EXTERNAL_ENTITIES
DTDを含めた構文解析をして外部エンティティを読み込みますが，検証はしません。

DBR_XMLPARSE_VALIDATE
DTDを使って検証を実行します。

lIndexType（入力）

作成対象となる全文検索インデクスの種別を指定します。次の値のどちらかを指定してください。

DBR_INDEXTYPE_PLAIN
構造指定検索なしの全文検索インデクスを作成する場合に指定します。プレーンテキスト形式のインデクスデータを出力します。

DBR_INDEXTYPE_STRUCTURED
構造指定検索用の全文検索インデクスを作成する場合に指定します。構造指定検索用のインデクスデータ（ESIS-B形式のデータ）を出力します。

pFilterFilePath（入力）

全文検索インデクス作成用データの生成の際に使用するフィルタリング定義ファイルを指定します。

ファイルは，UNIXの場合は<インストールディレクトリ>/client/etc/xml_files，Windowsの場合は<DocumentBroker Development Kitのインストールディレクトリ>¥etc¥xml_filesを起点とした相対パス名か，"file:///"で始まる絶対パス名で指定します。なお，NULLを指定した場合，フィルタリング定義ファイルを使用しないで処理を実行します。

pIndexFilePath（入力）

全文検索インデクス作成用データを出力するファイルのパス名を，"file:///"で始まるURL形式で指定します。NULLを指定するとエラーになります。

ppParseMessage（出力）

XMLファイルの構文解析などで発生したエラーやワーニング（警告）の詳細情報が設定されます。詳細情報を格納する領域のアドレスを指定してください。NULLを指定するとエラーになります。なお，返却する詳細情報がない場合はNULLが設定されます。ppParseMessageの領域は，dbrDelete関数を使ってユーザプログラムで解放してください。

NULLが設定されるかどうかはこのメソッドの戻り値に依存しません。メソッドが正常終了した場合でもNULL以外の値が設定される場合があり，また，異常終了した場合でもNULLが設定される場合があります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DBR | ERR_OBJECT_NOT_INITIALIZE | オブジェクトが初期化されていません。 | 初期化を実行してください。
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_BAD_URL | リソースのURLが不正です。 | URLの内容を見直してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません（Preprocessing Library for Text Searchが必要です）。
ERR_DMA | DMARC_RESOURCE_NOT_FOUND | 指定されたリソースがありません。 | 指定したリソースパスを見直してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。
ERR_DMA | DMARC_URL_PROTOCOL_NOT_SUPPORTED | サポートしていないURLプロトコルです。 | file:///で始まっているか確認してください。
ERR_DMA | EDMRC_PARSE_ERROR | XMLファイルの構文解析エラーが発生しました。 | XMLファイルの内容を見直してください。

19.　CdbrXmlTranslatorFactoryクラス（XMLの操作環境を管理するクラス）

XML文書管理を実行する機能を提供するクラスです。マッピング定義などXMLの操作環境を管理し，CdbrXmlTranslatorオブジェクトを生成します。CdbrXmlTranslatorFactoryオブジェクトは，接続する文書空間単位にプロセスで一つ作成します。

＜この章の構成＞

CdbrXmlTranslatorFactoryクラスの詳細

CdbrXmlTranslatorFactory::~CdbrXmlTranslatorFactoryメソッド

CdbrXmlTranslatorFactory::CdbrXmlTranslatorFactoryメソッド

CdbrXmlTranslatorFactory::CreateTranslatorメソッド

CdbrXmlTranslatorFactory::Initializeメソッド

CdbrXmlTranslatorFactoryクラスの詳細

CdbrXmlTranslatorFactoryクラスのインスタンスは複数のスレッドで共有できます。

ただし，CdbrXmlTranslatorFactoryオブジェクトの生成と破棄（コンストラクタとデストラクタの実行）は，必ずシングルスレッド環境下で実行してください。

このクラスを使用するにはHiRDB Adapter for XMLが必要です。

スーパークラス

プロパティ一覧

なし

メソッド一覧

CdbrCoreクラスから継承されるメソッド

メソッド | 機能
~CdbrCore | デストラクタ
CdbrCore | コンストラクタ
GetDBError | データベースのエラーの取得
GetLastError | エラー番号の取得

これらのメソッドの詳細については，「6.　CdbrCoreクラス（エラー情報を取得するクラス）」を参照してください。

CdbrXmlTranslatorFactoryクラスで導入されるメソッド

メソッド | 機能
~CdbrXmlTranslatorFactory | デストラクタ
CdbrXmlTranslatorFactory | コンストラクタ
CreateTranslator | CdbrXmlTranslatorオブジェクトの生成
Initialize | オブジェクトの初期化

以降，CdbrXmlTranslatorFactoryクラスで導入されるメソッドについて説明します。

CdbrXmlTranslatorFactory::~CdbrXmlTranslatorFactoryメソッド

機能

デストラクタ

形式

~CdbrXmlTranslatorFactory()

詳細

CdbrXmlTranslatorFactoryオブジェクトのデストラクタです。

CdbrXmlTranslatorFactoryオブジェクトの破棄は，必ずシングルスレッド環境下で実行してください。

なお，CdbrXmlTranslatorFactoryオブジェクトの破棄によって，CdbrXmlTranslatorFactory::CreateTranslatorメソッド実行前の状態に戻り，CdbrXmlTranslatorオブジェクトは使用できなくなります。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrXmlTranslatorFactory::CdbrXmlTranslatorFactoryメソッド

機能

コンストラクタ

形式

CdbrXmlTranslatorFactory()

詳細

CdbrXmlTranslatorFactoryオブジェクトのコンストラクタです。

CdbrXmlTranslatorFactoryオブジェクトの生成は，必ずシングルスレッド環境下で実行してください。

引数

なし

戻り値

なし

戻り値の詳細

なし

CdbrXmlTranslatorFactory::CreateTranslatorメソッド

機能

CdbrXmlTranslatorオブジェクトの生成

形式

DmaBoolean CreateTranslator(
 CdbrXmlTranslator*    pXmlTrans)

詳細

CdbrXmlTranslatorオブジェクトを生成し，指定された領域に格納するメソッドです。CdbrXmlTranslatorFactory::Initializeメソッドを実行する前にこのメソッドを実行すると，CdbrXmlTranslatorFactoryオブジェクトが未初期化状態のためエラーになります。

生成したCdbrXmlTranslatorオブジェクトは，CdbrXmlTranslatorFactoryオブジェクトが破棄されるまで有効です。CdbrXmlTranslatorFactoryオブジェクトが破棄されるとCdbrXmlTranslatorオブジェクトは無効状態となり，CdbrXmlTranslatorクラスの主要なメソッドは実行時にエラーになります。

また，生成したCdbrXmlTranslatorオブジェクトは，生成時と異なるスレッド上では使用できません。

引数

pXmlTrans（出力）

生成されたCdbrXmlTranslatorオブジェクト（CdbrXmlTranslator型の変数）が設定されます。生成されたオブジェクトを格納する領域のアドレスを指定してください。領域はユーザ側で確保してください。NULLを指定するとエラーになります。指定した領域にCdbrXmlTranslatorオブジェクトがすでに格納されている場合，そのオブジェクトは破棄されます。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DBR | ERR_OBJECT_NOT_INITIALIZE | オブジェクトが初期化されていません。 | 初期化を実行してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

CdbrXmlTranslatorFactory::Initializeメソッド

機能

オブジェクトの初期化

形式

DmaBoolean Initialize(
 const DmaId*          pDocSpaceId,
 const pDmaString_T    pXmsFileName,
 ppDmaString_T         ppMessage)

詳細

指定した文書空間用に，CdbrXmlTranslatorFactoryオブジェクトを初期化するメソッドです。

このメソッドでは，指定したxmsファイル（マッピングセット定義ファイル）に基づいて，プロパティマッピング情報の読み込みと解析を実行します。xmsファイル名にNULLを指定した場合，デフォルトのxmsファイル（ファイル名"<文書空間識別子>.xms"）を読み込みます。

デフォルトのxmsファイルおよびxmsファイルから参照されるxmpファイル（マッピング定義ファイル）は，原則としてUNIXの場合は<インストールディレクトリ>/client/etc/xml_files，Windowsの場合は<インストールディレクトリ>¥client¥etc¥xml_filesに配置します。

マッピング定義情報の解析には秒単位の時間がかかるので，このメソッドの実行回数が少なくなるよう，初期化したCdbrXmlTranslatorFactoryオブジェクトはプロセス内で使い回すことを推奨します。

定義情報の解析でエラーやワーニング（警告）が発生した場合，引数ppMessageにその内容を示す文字列が設定されます。

このメソッドがすでに実行されている場合，初期化済みとしてエラーになります。

引数

pDocSpaceId（入力）

対象となる文書空間識別子を指定します。指定した文書空間が実際に存在するかどうかのチェックはしません。ただし，NULLを指定した場合はエラーになります。

pXmsFileName（入力）

使用するxmsファイルを指定します。

ファイルは，UNIXの場合は<インストールディレクトリ>/client/etc/xml_files，Windowsの場合は<インストールディレクトリ>¥client¥etc¥xml_filesを起点とした相対パスか，"file:///"で始まる絶対パスを指定します。また，NULLを指定した場合，UNIXの場合は<インストールディレクトリ>/client/etc/xml_files，Windowsの場合は<インストールディレクトリ>¥client¥etc¥xml_filesにあるデフォルトのxmsファイル"<文書空間識別子>.xms"を使用して処理を実行します。

ppMessage（出力）

定義情報の解析などで発生したエラーやワーニング（警告）の詳細情報が設定されます。詳細情報を格納する領域のアドレスを指定してください。NULLを指定するとエラーになります。なお，返却する詳細情報がない場合はNULLが設定されます。ppMessageの領域は，dbrDelete関数を使ってユーザプログラムで解放してください。

NULLが設定されるかどうかはこのメソッドの戻り値に依存しません。メソッドが正常終了した場合でもNULL以外の値が設定される場合があり，また，異常終了した場合でもNULLが設定される場合があります。

取得した文字列は改行コードで区切られ，複数行で構成される場合があります。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

major_code | minor_code | 説明 | 対処
ERR_DBR | ERR_OBJECT_ALREADY_INITIALIZED | オブジェクトは初期化済みです。 | この操作は実行できません。
ERR_DBR | ERR_INVALID_DEFINITION | 定義情報が不正です。 | 定義ファイルの内容を見直してください。
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。

20.　関数

ここでは，クラスライブラリで提供する関数について説明します。

＜この章の構成＞

関数

dbrDelete関数

dbrDmaIdFromString関数

関数

クラスライブラリでは，次の関数を提供しています。

関数名 | 説明
dbrDelete | メモリの解放
dbrDmaIdFromString | 文字列からDmaId型への変換

以降，関数について説明します。

dbrDelete関数

機能

メモリの解放

形式

void dbrDelete(SDBR_PROPLIST*                   ptr)
void dbrDelete(SDBR_OBJLIST*                    ptr)
void dbrDelete(SDBR_VTOBJLIST*                  ptr)
void dbrDelete(SDBR_LINKEDOBJLIST*              ptr)
void dbrDelete(SDBR_VTLINKEDOBJLIST*            ptr)
void dbrDelete(DmaInteger32                     cnt,
              SDBR_QUERYRESULT*                ptr)
void dbrDelete(DmaBinaryValue*                  ptr)
void dbrDelete(pDmaString_T                     ptr)
void dbrDelete(SDBR_ELEMINFO*                   ptr)
void dbrDelete(SDBR_NODE*                       ptr)
void dbrDelete(SDBR_NODEINFO*                   ptr)
void dbrDelete(SDBR_RESOURCEINFO*               ptr)
void dbrDelete(SDBR_VERSIONINFO*                ptr)
void dbrDelete(SDBR_VROBJLIST*                  ptr)
void dbrDelete(SDBR_RENDITIONLIST*              ptr)
void dbrDelete(SDBR_RELATIONLIST*               ptr)
void dbrDelete(SDBR_DMAINFOLIST*                ptr)
void dbrDelete(SDBR_CONTENTLIST*                ptr)
void dbrDelete(SDBR_PATHLIST*                   ptr)

詳細

クラスライブラリのメソッドが確保したメモリを解放する関数です。

この関数は，ユーザプログラム側がnewやmallocなどによって確保したメモリに対しては使用できません。

dbrDelete関数では，次に示す構造体として確保された領域を解放できます。

SDBR_PROPLIST構造体

SDBR_OBJLIST構造体

SDBR_VTOBJLIST構造体

SDBR_LINKEDOBJLIST構造体

SDBR_VTLINKEDOBJLIST構造体

SDBR_QUERYRESULT構造体

SDBR_ELEMINFO構造体

SDBR_NODE構造体

SDBR_NODEINFO構造体

SDBR_RESOURCEINFO構造体

SDBR_VERSIONINFO構造体

SDBR_VROBJLIST構造体

SDBR_RENDITIONLIST構造体

SDBR_RELATIONLIST構造体

SDBR_DMAINFOLIST構造体

SDBR_CONTENTLIST構造体

SDBR_PATHLIST構造体

引数

cnt（入力）

CdbrEqlStatement::GetResultメソッドによって確保されたメモリを解放する場合に， CdbrEqlStatement::GetResultメソッドでplSearchCountに設定された値を指定してください。指定しない場合，メモリが正常に解放されません。動作は保証されません。

ptr（入力）

解放するメモリのポインタを指定します。クラスライブラリのメソッドの戻り値として返されたポインタを指定してください。

戻り値

なし

戻り値の詳細

なし

dbrDmaIdFromString関数

機能

文字列からDmaId型への変換

形式

DmaBoolean dbrDmaIdFromString (  
 pDmaString_T   pCvtString,
 pDmaId         pCvtId )

詳細

指定された文書空間識別子などのGUID文字列をDmaId型に変換する関数です。

ただし，次の場合は異常終了します。

指定された文字列または変換後DmaId型の格納領域のアドレスの値がNULLの場合

指定された文字列が36バイト以外の場合

指定された文字列の形式が，XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXではない場合（XXXは，16進数文字列）

指定された文字列中の「-」以外の文字が「0～9」，「a～f」または「A～F」以外の場合（ただし，「0～9」，「a～f」または「A～F」は，混在していてもかまいません）

なお，異常終了した場合に，変換後DmaId型の格納領域に格納される値は，不定です。

引数

pCvtString（入力）

変換対象の「XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX」の形式（XXXは，16進数文字列）の文字列を指定してください。

pCvtId（出力）

変換後DmaId型の格納領域のアドレスを指定してください。

戻り値

DMA_TRUE　 正常終了

DMA_FALSE　異常終了

戻り値の詳細

なし

付録

＜この付録の構成＞

付録A　コーディング例

付録B　DMAオブジェクトのプロパティ

付録C　クラスライブラリのメソッドで使用する構造体

付録D　メソッドの実行に必要なパーミッション（アクセス制御機能を使用する場合）

付録E　メソッド実行時の排他制御（ロック）

付録F　OIID指定時のURLの文法

付録G　文書空間で使用する文字コード種別がUTF-8の場合に使用できるメソッドと関数

付録H　戻り値一覧

付録I　障害が発生した時にDocumentBrokerが出力する情報

付録J　用語解説

付録A　コーディング例

ここでは，クラスライブラリを使用したコーディング例について説明します。

＜この節の構成＞

付録A.1　作成するコーディング例

付録A.2　コーディング例

付録A.1　作成するコーディング例

作成するコーディング例について説明します。

このコーディング例では，クラスライブラリのメソッドのコールシーケンスを例示します。また，クラスライブラリの各メソッドの使用方法を例示します。

ここで示すある業務の流れに従ったアプリケーションプログラムのコーディング例を参考にして，実際のアプリケーションプログラムを作成してください。

＜この項の構成＞

(1)　前提条件

(2)　作成するプログラム

(1)　前提条件

前提条件は次のとおりです。

(a)　記述範囲

このコーディング例では，アプリケーションプログラムのうち，クラスライブラリを使用したインターフェースの個所だけを記述します。GUIや定型業務に依存した個所については説明しません。

また，このコーディング例は，クラスライブラリのすべてのメソッドを使用しているものではありません。

(b)　データの定義

このコーディング例はデータを定義する機能は持たないため，あらかじめデータは定義されていることを前提とします。

したがって，クラス識別子やプロパティ識別子はすでにわかっているものとします。

また，文書およびフォルダのクラス定義は実装しません。別のツールを使用して定義してあり，このコーディング例からは変更できないものとします。

(c)　プロパティ

このコーディング例で扱うプロパティは次のとおりです。

名前：DmaString_T型

日付：DmaInteger32型

作成者：DmaString_T型

文書，フォルダおよび構成管理フォルダがこれらのプロパティを持ちます。これ以外のプロパティはないものとします。

(2)　作成するプログラム

コーディング例の仕様について説明します。

(a)　コンポーネント

このコーディング例は次のコンポーネントを持ちます。

文書
管理の対象になる文書です。文書のデータ形式は規定しません。ファイルシステム上の1ファイルが1文書に対応します。CdbrVersionableDocumentクラスを使用して実装します。

フォルダ
文書，フォルダまたは構成管理フォルダを格納して，一つのグループとして管理します。CdbrReferentialContainerクラスを使用して実装します。

構成管理フォルダ
フォルダ自身にバージョンがあり，かつ管理する要素の特定のバージョンを指し示すことができるフォルダです。文書を格納できます。CdbrConfiguratedReferentialContainerクラスを使用して実装する，バージョン付き構成管理コンテナです。

ここでは，2階層のフォルダを持ち，文書を管理・検索する業務について説明します。コーディング例で扱うコンポーネントの構成について，図A-1に示します。

図A-1　コーディング例で扱うコンポーネントの構成

「業務」というフォルダが最上位のフォルダです。このフォルダ下位にフォルダ「ひな形文書」と構成管理フォルダ「起案書」および「報告書」があります。

(b)　機能

このコーディング例の機能について説明します。

新規作成機能
文書，フォルダおよび構成管理フォルダを新規に作成します。

削除機能
文書，フォルダおよび構成管理フォルダを削除します。

関連づけ機能
文書，フォルダおよび構成管理フォルダを，別のフォルダまたは構成管理フォルダと関連づけます。ここで，文書は最も下位の要素になります。また，文書と文書を関連づけることはできません。

チェックアウト機能
文書をチェックアウトして，参照・編集します。

チェックイン機能
文書をチェックインして，文書のバージョンを一つ上げます。

バージョンアップ機能
構成管理フォルダのバージョンを上げます。

履歴一覧取得機能
文書および構成管理フォルダの履歴一覧を取得します。

検索機能
文書，フォルダおよび構成管理フォルダを，属性値を基に検索します。

付録A.2　コーディング例

ここでは，これまでに説明したコーディング例の機能を実現する，コーディング例を示します。

なお，(1)でクラスライブラリの処理の開始から終了までを示します。それ以降は，文書空間とクライアント環境のセッションはすでに確立されているものとして，各機能に当たる部分のコーディング例だけを示します。

コーディング例についての注意

ここに示すコーディング例はUNIXの場合の例となっています。したがって，Windowsをご使用の場合，コーディング例中の"file:///tmp/sample.txt"などのパス名，ファイル名は，"file:///c:¥temp¥sample.txt"のように読み替えてください。

＜この項の構成＞

(1)　文書の参照と登録

(2)　文書のバージョン管理

(3)　文書の構成管理

(4)　XML文書の管理

(5)　可変長配列の操作

(6)　エラー処理

(1)　文書の参照と登録

(a)　特定のフォルダへの文書の新規登録

ここでは，文書をフォルダ「業務」に格納するために，文書のパス名を業務のフォルダに関連づけるプログラムのコーディング例を示します。

図A-2に，特定のフォルダに文書を新規に登録するシーケンスを示します。

図A-2　特定のフォルダに文書を新規に登録するシーケンス

コーディング例

1 ////////////////////////////////////////////////////////////
2 //機能：特定のフォルダに文書を新規に登録する
3 ////////////////////////////////////////////////////////////
4  Bool InsertDocument(pDmaId pDocspID,
5           pDmaString_T pUsername,   //認証用ユーザID
6           pDmaString_T pPasswd,     //認証用パスワード
7           pDmaString_T pFilePath,   //登録文書パス
8           pDmaString_T pFolderName, //登録フォルダ名
9           pDmaId pTargetId,         //名前プロパティID
10          pDmaString_T  RootOIID    //ルートのフォルダID
11          )
12
13
14 {
15    CdbrSession* pSession;
16    SDBR_PROP*  pList = 0;
17    pDmaString_T pCFolderName = NULL;
18    pDmaString_T pErrorStrings = NULL;
19
20    DmaBoolean  rc;
21    pDmaString_T  pTargetOIID = NULL;
22    DmaInteger32 lTotal;
23    SDBR_DMAINFO TmpDma[2];
24    DmaInteger32 lmajor,lminor;
25
26 /////////////////////////////////////////////////////////
27 //1. 開始処理
28 /////////////////////////////////////////////////////////
29
30   //1.1 CdbrSessionオブジェクトの生成
31    pSession = new CdbrSession();
32    if(pSession == NULL){
33        return FALSE;
34    }
35   //1.2 文書空間との接続
36    rc = pSession->Connect(pDocspID,pUsername,pPasswd);
37    if(rc != DMA_TRUE){
38      lmajor = pSession->GetLastError(&lminor,&pErrorStrings);
39      printf(" ERROR !! major %x minor %x %s¥n",
40         lmajor,lminor,
41         (pErrorStrings == NULL) ? "NULL":pErrorStrings);
42      return FALSE;
43    }
44    pSession->Begin();
45 ///////////////////////////////////////////////////
46 //2. 文書の生成と登録
47 ///////////////////////////////////////////////////
48    CdbrVersionableDocument VRDoc;
49    pDmaString_T pOIID;
50    //テンプレートの作成
51    TmpDma[0].ClassId = mdmClass_ConfigHist; //すでに知っている
52    TmpDma[0].PropList.lCount = 0;      //プロパティリストは0
53    TmpDma[0].PropList.pItem = NULL;    //NULLを指定すると
54                                        //プロパティ値なしで生成
55    TmpDma[1].ClassId = mdmClass_DocVer;  //すでに知っている
56    TmpDma[1].PropList.lCount = 0;      //プロパティリストは0
57    TmpDma[1].PropList.pItem = NULL;    //NULLを指定すると
58                                        //プロパティ値なしで生成
59
60   //2.1 CdbrVersionableDocumentオブジェクトの生成
61   //                         （プロパティ値はNULL）
62    VRDoc.CreateObject(pSession,
63                      2,
64                      TmpDma,
65                      "file:///tmp/sample.txt",
66                      "MIME::text/plain",
67                      &pOIID
68    );
69
70 ///////////////////////////////////////////////////
71 //3. 登録フォルダを検索
72 ///////////////////////////////////////////////////
73
74   //3.1 ルートフォルダのOIIDの設定
75    CdbrReferentialContainer RootContainer;
76    rc = RootContainer.SetOIID(pSession,RootOIID);
77    if(rc != DMA_TRUE){
78      lmajor = RootContainer.GetLastError(&lminor,
79                                    &pErrorStrings);
80      printf(" ERROR !! major %x minor %x %s¥n",
81        lmajor,lminor,
82        (pErrorStrings == NULL) ? "NULL":pErrorStrings);
83      return FALSE;
84    }
85
86   //3.2 登録するフォルダの検索
87   //指定フォルダの子フォルダの一覧を取得する
88   //                 フォルダの個数をカウント
89    SDBR_PROPDEF PropA;
90    SDBR_PROPLIST* pPropList;
91    DmaBoolean bContinue = DMA_FALSE;
92    DmaInteger32 cnt;
93
94    PropA.PropId = dbrProp_ContaineesCount;
95
96    rc = RootContainer.GetPropertyValues(1,&PropA,&pPropList);
97    if(rc == DMA_TRUE &&
98      *pPropList->pItem[0].uniValue.plInteger32 > 0){
99        lTotal = *pPropList->pItem[0].uniValue.plInteger32;
100   }
101
102       //全子フォルダのプロパティ情報を取得
103   SDBR_OBJLIST* pObjList = NULL;
104   SDBR_PROPDEF PropB;
105   PropB.PropId = usrProp_FolderName;  //ユーザ定義のプロパティ
106   rc = RootContainer.GetContainableList(&bContinue,
107                         DBR_CONTAINMENT_REFERENTIAL,
108                         1,
109                         &PropB,
110                         lTotal,
111                         &pObjList);
112   if(rc != DMA_TRUE){
113     lmajor = RootContainer.GetLastError(&lminor,
114                                   &pErrorStrings);
115     printf(" ERROR !! major %x minor %x %s¥n",
116          lmajor,lminor,
117          (pErrorStrings == NULL) ? "NULL":pErrorStrings);
118     dbrDelete(pObjList);
119           return FALSE;
120   }
121
122       //指定された名前のフォルダを取得する
123   int j;
124   for(j = 0; j < pObjList->lCount; j++){
125      pList = pObjList->pItem[j].PropList.pItem;
126      pFolderName = GetPropValue(pList,
127      pObjList->pItem[j].PropList.lCount,pTargetId);
128
129     if(strcmp(pFolderName,pCFolderName) == 0)
130     {
131               break;
132     }
133   }
134       //フォルダのOIIDを取得する
135   pTargetOIID = pObjList->pItem[j].pOIID;
136       //目的のフォルダのOIIDの設定
137   CdbrReferentialContainer TargetContainer;
138   rc = TargetContainer.SetOIID(pSession,pTargetOIID);
139   if(rc != DMA_TRUE){
140     lmajor = TargetContainer.GetLastError(&lminor,
141                                     &pErrorStrings);
142     printf( "ERROR !! major %x minor %x %s¥n",
143          lmajor,lminor,
144          (pErrorStrings == NULL) ? "NULL":pErrorStrings);
145     return FALSE;
146   }
147   //3.3フォルダと文書の関連づけ
148   rc = TargetContainer.Link(&VRDoc);
149   if(rc != DMA_TRUE){
150     lmajor = TargetContainer.GetLastError(&lminor,
151                                     &pErrorStrings);
152     printf(" ERROR !! major %x minor %x %s¥n",
153          lmajor,lminor,
154          (pErrorStrings == NULL) ? "NULL":pErrorStrings);
155     return FALSE;
156   }
157       //ファイル実体のアップデート
158   VRDoc.UpdateContent(pFilePath,NULL);
159   //3.4 確定処理
160   pSession->Commit();
161
162 /////////////////////////////////////////////////////////
163 //4. 終了処理
164 /////////////////////////////////////////////////////////
165   //4.1 オブジェクトとの接続の解除
166   dbrDelete (pObjList);
167   VRDoc.ReleaseObject();
168   RootContainer.ReleaseObject();
169   TargetContainer.ReleaseObject();
170   //4.2 セッションの終了
171   pSession->Disconnect();
172   delete pSession;
173   return TRUE;
174 }
175 ////////////////////////////////////////////////////////
176 //SUB:プロパティIDがtargetIdであるもののプロパティ値を取得する
177 ////////////////////////////////////////////////////////
178  pDmaString_T GetPropValue(SDBR_PROP* pPropList,
179                  DmaInteger32  lListCount,
180                  pDmaId        pTargetId)
181 {
182   int i;
183   for (i = 0 ; i < lListCount; i++) {
184     //目的のプロパティIDと一致したらプロパティ値をリターンする
185     if (memcmp(&pPropList[i].PropId,
186                pTargetId,
187                sizeof *pTargetId) == 0)
188     {
189           return *pPropList[i].uniValue.ppString;
190     }
191   }
192   return NULL;
193 }

(b)　特定の文書を取り出した参照

ここでは，特定の文書を指定して参照するプログラムのコーディング例を示します。文書はバージョン管理されています。ここで参照とは，文書の実体を，指定したファイルに複写することです。このコーディング例では，文書のOIIDおよびバージョン番号および取り出した文書の実体を複写するファイルを指定して，関数を発行します。

図A-3に，特定の文書を取り出して参照するシーケンスを示します。

図A-3　特定の文書を取り出して参照するシーケンス

コーディング例

1 ///////////////////////////////////////////////////////
2 //機能：特定の文書を取り出して参照する
3 ///////////////////////////////////////////////////////
4 Bool GetVersionDoc(CdbrSession* pSession,
5         pDmaString_T pVRDOCId,
6         pDmaString_T pFilePath,
7         DmaInteger32 VersionCount)
8 {
9     DmaBoolean rc;
10    SDBR_DMAINFO TmpDmaConfigHist;
11    SDBR_DMAINFO TmpDmaDocVer;
12    pDmaString_T pErrorStrings = NULL;
13 ///////////////////////////////////////////////////
14 //1. CdbrVersionableDocumentのOIIDの設定
15 ///////////////////////////////////////////////////
16    CdbrVersionableDocument VRDoc;
17    pSession->Begin();
18    //VRDOCオブジェクトのOIIDの設定
19    rc = VRDoc.SetOIID(pSession,pVRDocId);
20    if(rc != DMA_TRUE)
21    {
22      lmajor = VRDoc.GetLastError(&lminor,&pErrorStrings);
23      printf(" ERROR !! major %x minor %x %s¥n",
24           lmajor,lminor,
25           (pErrorStrings == NULL) ? "NULL":pErrorStrings);
26    return FALSE;
27    }
28
29 ///////////////////////////////////////////////////
30 //2. バージョン一覧の取得
31 ///////////////////////////////////////////////////
32    SDBR_OBJLIST* pOBJList = NULL;     //バージョンは10個
33    DmaBoolean bContinue = DMA_FALSE;
34    DmaInteger32 lFetchCount;
35    rc = VRDoc.GetVersionList(&bContinue,
36                  0,         //プロパティリストは0
37                  NULL,      //プロパティは取得しない
38                  10,
39                  &pOBJList);
40    if(rc != DMA_TRUE)
41    {
42      lmajor = VRDoc.GetLastError(&lminor,&pErrorStrings);
43      printf(" ERROR !! major %x minor %x %s¥n",
44           lmajor,lminor,
45           (pErrorStrings == NULL) ? "NULL":pErrorStrings);
46      return FALSE;
47    }
48 ///////////////////////////////////////////////////
49 //3. 特定のバージョンの文書実体の取得
50 ///////////////////////////////////////////////////
51    rc = VRDoc.GetContent(pFilePath,
52                  pOBJList->pItem[VersionCount].pOIID);
53    if(rc != DMA_TRUE){
54      lmajor = VRDoc.GetLastError(&lminor,&pErrorStrings);
55      printf(" ERROR !! major %x minor %x %s¥n",
56           lmajor,lminor,
57           (pErrorStrings == NULL) ? "NULL":pErrorStrings);
58      return FALSE;
59    }
60      dbrDelete(pOBJList);
61      VRDoc.ReleaseObject();
62    pSession->Commit();
63      return TRUE;
64 }

(c)　CdbrEqlStatementクラスを使用した文書の検索

ここではCdbrEqlStatementクラスを使用して，edmSQL文で記述した検索条件を実行し，検索結果を取得するプログラムのコーディング例を示します。

次の図に，CdbrEqlStatementクラスを使用して検索するシーケンスを示します。

図A-4　CdbrEqlStatementクラスを使用して検索するシーケンス

コーディング例

1 /////////////////////////////////////////////////////////
2 //機能：CdbrEqlStatementクラスを使用して文書を検索する
3 /////////////////////////////////////////////////////////
4 Bool SearchObject(
5        CdbrSession* pSession
6        )
7 {
8     CdbrEqlStatement* pEql = NULL;
9     DmaBoolean rc;
10    pDmaString_T pErrorStrings = NULL;
11    pSession->Begin();
12
13 /////////////////////////////////////////////////////////
14 //1. CdbrEqlStatementオブジェクトの生成
15 /////////////////////////////////////////////////////////
16   pEql = new CdbrEqlStatement();
17
18 /////////////////////////////////////////////////////////
19 //2. オブジェクトの初期化とセッションオブジェクトへの登録
20 /////////////////////////////////////////////////////////
21   rc = pEql->Initialize(pSession);
22   if ( DMA_TRUE != rc ) {
23     //エラー処理
24     lmajor = pEql->GetLastError(&lminor, &pErrorStrings);
25     printf("ERROR !! major %x minor %x %s¥n",
26           lmajor, lminor,
27         (pErrorStrings == NULL) ? "NULL":pErrorStrings);
28   }
29
30 /////////////////////////////////////////////////////////
31 //3. edmSQL文の設定
32 /////////////////////////////////////////////////////////
33   rc = pEql->Set( (pDmaString_T)
34           "Select dmaProp_OIID"
35           " From usrClass_Folder"
36           " Where (usrProp_Date = ?) Or (usrProp_No = ?)");
37   if ( DMA_TRUE != rc ) {
38     //エラー処理
39     lmajor = pEql->GetLastError(&lminor, &pErrorStrings);
40     printf("ERROR !! major %x minor %x %s¥n",
41           lmajor, lminor,
42          (pErrorStrings == NULL) ? "NULL":pErrorStrings);
43   }
44
45 /////////////////////////////////////////////////////////
46 //4. edmSQL文の？パラメタの設定
47 //   ？パラメタの値の設定（？(1)：19991201 ？(2)：100）
48 /////////////////////////////////////////////////////////
49   rc = pEql->SetParam(1, (pDmaString_T)"19991201");
50   if ( DMA_TRUE != rc ) {
51     //エラー処理
52     lmajor = pEql->GetLastError(&lminor, &pErrorStrings);
53     printf("ERROR !! major %x minor %x %s¥n",
54           lmajor, lminor,
55          (pErrorStrings == NULL) ? "NULL":pErrorStrings);
56   }
57
58   rc = pEql->SetParam(2, 100);
59   if ( DMA_TRUE != rc ) {
60     //エラー処理
61     lmajor = pEql->GetLastError(&lminor, &pErrorStrings);
62     printf("ERROR !! major %x minor %x %s¥n",
63           lmajor, lminor,
64          (pErrorStrings == NULL) ? "NULL":pErrorStrings);
65   }
66
67 /////////////////////////////////////////////////////////
68 //5. ロック種別の設定（Writeロック）
69 /////////////////////////////////////////////////////////
60   DmaInteger32 lLockType = DBR_LOCK_WRITE;
71   rc = pEql->ChangeLockType(lLockType);
72   if ( DMA_TRUE != rc ) {
73     //エラー処理
74     lmajor = pEql->GetLastError(&lminor, &pErrorStrings);
75     printf("ERROR !! major %x minor %x %s¥n",
76           lmajor, lminor,
77          (pErrorStrings == NULL) ? "NULL":pErrorStrings);
78   }
79
80 /////////////////////////////////////////////////////////
81 //6. 検索結果取得件数の設定（100件）
82 /////////////////////////////////////////////////////////
83   DmaInteger32 lGetObjCount = 100;
84   rc = pEql->ChangeGetObjCount(lGetObjCount);
85   if ( DMA_TRUE != rc ) {
86     //エラー処理
87     lmajor = pEql->GetLastError(&lminor, &pErrorStrings);
88     printf("ERROR !! major %x minor %x %s¥n",
89           lmajor, lminor,
90          (pErrorStrings == NULL) ? "NULL":pErrorStrings);
91   }
92
93 /////////////////////////////////////////////////////////
94 //7. アクセス制御モードの設定（DBR_QUERY_WITH_ACL）
95 /////////////////////////////////////////////////////////
96   DmaInteger32 lACLMode = DBR_QUERY_WITH_ACL;
97   rc = pEql->ChangeACLMode(lACLMode);
98   if ( DMA_TRUE != rc ) {
99     //エラー処理
100    lmajor = pEql->GetLastError(&lminor, &pErrorStrings);
101    printf("ERROR !! major %x minor %x %s¥n",
102          lmajor, lminor,
103         (pErrorStrings == NULL) ? "NULL":pErrorStrings);
104  }
105
106 /////////////////////////////////////////////////////////
107 //8. 設定済みedmSQL文の実行
108 /////////////////////////////////////////////////////////
109   pDmaString_T pErrorMessage = NULL;
110   rc = pEql->Execute(&pErrorMessage);
111   if ( DMA_TRUE != rc ) {
112     //エラー処理
113     lmajor = pEql->GetLastError(&lminor, &pErrorStrings);
114     printf("ERROR !! major %x minor %x %s¥n",
115           lmajor, lminor,
116          (pErrorStrings == NULL) ? "NULL":pErrorStrings);
117     if ((ERR_DBR == lmajor) &&
118         (ERR_EQL_BAD_STATEMENT == lminor)) {
119        printf("StatementError !! %s¥n", pErrorMessage);
120     }
121   }
122   dbrDelete(pErrorMessage);
123   pErrorMessage = NULL;
124
125 /////////////////////////////////////////////////////////
126 //9. 結果を100件ずつ最後まで取得
127 /////////////////////////////////////////////////////////
128   DmaBoolean bContinue = DMA_TRUE;
129   DmaInteger32 lSearchCount = lGetObjCount;
130   SDBR_QUERYRESULT* pQueryResult = NULL;
131
132   while ( lGetObjCount <= lSearchCount )
133   {
134     rc = pEql->GetResult( bContinue, &lSearchCount,
135                           &pQueryResult );
136     if ( DMA_TRUE != rc ) {
137       //エラー処理
138       lmajor = pEql->GetLastError(&lminor, &pErrorStrings);
139       printf("ERROR !! major %x minor %x %s¥n",
140             lmajor, lminor,
141            (pErrorStrings == NULL) ? "NULL":pErrorStrings);
142     }
143     dbrDelete(lSearchCount, pQueryResult);
144   }
145
146 /////////////////////////////////////////////////////////
147 //10. セッションオブジェクトへの登録抹消
148 /////////////////////////////////////////////////////////
149   rc = pEql->Terminate();
150   if ( DMA_TRUE != rc ) {
151     //エラー処理
152      lmajor = pEql->GetLastError(&lminor, &pErrorStrings);
153      printf("ERROR !! major %x minor %x %s¥n",
154            lmajor, lminor,
155           (pErrorStrings == NULL) ? "NULL":pErrorStrings);
156   }
157
158 /////////////////////////////////////////////////////////
159 //11. CdbrEqlStatementオブジェクトを削除
160 /////////////////////////////////////////////////////////
161   delete pEql;
162   pEql = NULL;
163
164   pSession->Commit();
165   return TRUE;
166 }

(2)　文書のバージョン管理

(a)　文書のチェックアウト

ここでは，最新バージョンの文書をチェックアウトして，編集できるようにするプログラムのコーディング例を示します。

次の図に，文書をチェックアウトするシーケンスを示します。

図A-5　文書をチェックアウトするシーケンス

コーディング例

1 ///////////////////////////////////////////////////////
2 //機能：文書をチェックアウトする
3 ///////////////////////////////////////////////////////
4 Bool GetVersionDoc(CdbrSession* pSession,
5         pDmaString_T pVRDOCId,
6         pDmaString_T pFilePath,
7         ppDmaString_T ppVersionID)
8 {
9     DmaBoolean rc;
10    CdbrVersionableDocument VRDOC;
11    ppDmaString_T ppVerId=NULL;
12    pDmaString_T pErrorStrings = NULL;
13    pSession->Begin();
14 ///////////////////////////////////////////////////
15 //1.文書のOIIDの設定
16 ///////////////////////////////////////////////////
17    rc = VRDOC.SetOIID(pSession, pVRDOCId);
18    if(rc != DMA_TRUE){
19      lmajor = VRDOC.GetLastError(&lminor,&pErrorStrings);
20      printf(" ERROR !! major %x minor %x %s¥n",
21           lmajor,lminor,
22           (pErrorStrings == NULL) ? "NULL":pErrorStrings);
23      return FALSE;
24    }
25 ///////////////////////////////////////////////////
26 //2.文書のチェックアウト
27 ///////////////////////////////////////////////////
28    rc = VRDOC.VersionCheckOut(&pVerId);
29    if(rc != DMA_TRUE){
30      lmajor = VRDOC.GetLastError(&lminor,&pErrorStrings);
31      printf(" ERROR !! major %x minor %x %s¥n",
32           lmajor,lminor,
33           (pErrorStrings == NULL) ? "NULL":pErrorStrings);
34      return FALSE;
35    }
36 ///////////////////////////////////////////////////
37 //3.最新のバージョン（チェックアウトされたもの）の文書実体の取得
38 ///////////////////////////////////////////////////
39    rc = VRDOC.GetContent(pFilePath,pVerId);
40    if(rc != DMA_TRUE){
41      lmajor = VRDOC.GetLastError(&lminor,&pErrorStrings);
42      printf(" ERROR !! major %x minor %x %s¥n",
43           lmajor,lminor,
44           (pErrorStrings == NULL) ? "NULL":pErrorStrings);
45      return FALSE;
46    }
47 ///////////////////////////////////////////////////
48 //4. 確定処理
49 ///////////////////////////////////////////////////
50    pSession->Commit();
51
52    VRDOC.ReleaseObject();
53    *ppVersionID = (char *)malloc(strlen(pVerId)+1);
54    strcpy(*ppVersionID,pVerId);
55    dbrDelete(pVerId);
56    return TRUE;
57 }

(b)　チェックアウトした文書をチェックインして登録

ここでは，チェックアウトした文書を，チェックインして登録するプログラムのコーディング例を示します。

次の図に，チェックアウトした文書をチェックインして登録するシーケンスを示します。

図A-6　チェックアウトした文書をチェックインして登録するシーケンス

コーディング例

1 ///////////////////////////////////////////////////////
2 //機能：チェックアウトした文書をチェックインして登録する
3 ///////////////////////////////////////////////////////
4 Bool EntryDoc(CdbrSession* pSession,
5         pDmaString_T pFilePath,
6         pDmaString_T pVRDOCId,
7         pDmaString_T pVerId    //CheckOutメソッドで取得したもの
8 )
9 {
10    DmaBoolean rc;
11    CdbrVersionableDocument VRDOC;
12    pDmaString_T pErrorStrings = NULL;
13    pSession->Begin();
14 ///////////////////////////////////////////////////
15 //1. 文書のOIIDの設定（プロパティ値はNULL）
16 ///////////////////////////////////////////////////
17    rc = VRDOC.SetOIID(pSession, pVRDOCId);
18    if(rc != DMA_TRUE){
19      lmajor = VRDOC.GetLastError(&lminor,&pErrorStrings);
20      printf(" ERROR !! major %x minor %x %s¥n",
21           lmajor,lminor,
22           (pErrorStrings == NULL) ? "NULL":pErrorStrings);
23      return FALSE;
24    }
25
26 ///////////////////////////////////////////////////
27 //2. 最新のバージョン（チェックアウトされたもの）の文書実体の登録
28 ///////////////////////////////////////////////////
29    rc = VRDOC.UpdateContent(pFilePath,pVerId);
30    if(rc != DMA_TRUE){
31      lmajor = VRDOC.GetLastError(&lminor,&pErrorStrings);
32      printf(" ERROR !! major %x minor %x %s¥n",
33           lmajor,lminor,
34           (pErrorStrings == NULL) ? "NULL":pErrorStrings);
35      return FALSE;
36    }
37 ///////////////////////////////////////////////////
38 //3. 文書のチェックイン
39 ///////////////////////////////////////////////////
40    rc = VRDOC.VersionCheckIn();
41    if(rc != DMA_TRUE){
42      lmajor = VRDOC.GetLastError(&lminor,&pErrorStrings);
43      printf(" ERROR !! major %x minor %x %s¥n",
44           lmajor,lminor,
45           (pErrorStrings == NULL) ? "NULL":pErrorStrings);
46      return FALSE;
47    }
48 ///////////////////////////////////////////////////
49 //4. 確定処理
50 ///////////////////////////////////////////////////
51        pSession->Commit();
52        VRDOC.ReleaseObject();
53        return TRUE;
54 }

(3)　文書の構成管理

(a)　構成管理フォルダの作成

ここでは，構成管理フォルダを新規に作成するプログラムのコーディング例を示します。

次の図に，構成管理フォルダを新規に作成するシーケンスを示します。

図A-7　構成管理フォルダを新規に作成するシーケンス

コーディング例

1 /////////////////////////////////////////////////////
2 //機能：構成管理フォルダの新規作成
3 /////////////////////////////////////////////////////
4 Bool CreateVRFolder(CdbrSession* pSession,
5          ConfiguratedReferentialContainer** ppCFRFCT)
6 {
7    SDBR_DMAINFO TmpDmaCFRFCT;
8    SDBR_PROPLIST PropList;
9    CdbrConfiguratedReferentialContainer* pCFRFContainer;
10   pCFRContainer = new CdbrConfiguratedReferentialContainer();
11   DmaBoolean rc;
12   pDmaString_T pErrorStrings = NULL;
13   pSession->Begin();
14 /////////////////////////////////////////////////////
15 //1. プロパティを初期化して構成管理フォルダを作成
16 /////////////////////////////////////////////////////
17   pDmaString_T pOIID = NULL;          //生成するフォルダのOIID
18   TmpDmaCFRFCT.ClassId = ID_ConfigHist; //すでに知っている
19   TmpDmaCFRFCT.PropList.lCount = 0;   //プロパティ値なしで生成
20   TmpDmaCFRFCT.PropList.pItem = NULL; //プロパティ値なしで生成
21
22   rc = pCFRFContainer->CreateObject(pSession,
23                           1,
24                           &TmpDmaCFRFCT,
25                           &pOIID
26   );
27   if(rc != DMA_TRUE){
28     lmajor = pCFRFContainer->GetLastError(&lminor,
29                                  &pErrorStrings);
30     printf(" ERROR !! major %x minor %x %s¥n",
31          lmajor,lminor,
32          (pErrorStrings == NULL) ? "NULL":pErrorStrings);
33     return FALSE;
34   }
35 /////////////////////////////////////////////////////
36 //2. オブジェクトのポインタを取得
37 /////////////////////////////////////////////////////
38   *ppCFRFCT = pCFRFContainer;
39
40   pCFRFContainer->ReleaseObject();
41   pSession->Commit();
42   return TRUE;
43 }

(b)　構成管理フォルダの構成要素の一覧取得

ここでは，構成管理フォルダが管理している特定のバージョンの文書の一覧を取得するプログラムのコーディング例を示します。

次の図に，構成管理フォルダの構成要素の一覧を取得するシーケンスを示します。

図A-8　構成管理フォルダの構成要素の一覧を取得するシーケンス

コーディング例

1 ///////////////////////////////////////////////////
2 //機能：構成管理フォルダの構成要素一覧の取得
3 ///////////////////////////////////////////////////
4 Bool GetContainee(CdbrSession *pSession,
5          CdbrConfiguratedReferentialContainer* pCFRFCT)
6 {
7    DmaBoolean bContinue = DMA_TRUE;
8    DmaInteger32 FetchCount;
9    DmaInteger32 ObjListCount;
10   DmaBoolean rc;
11   pDmaString_T pErrorStrings = NULL;
12   pSession->Begin();
13 ///////////////////////////////////////////////////////////
14 //1. クラスのプロパティに存在する構成要素の個数を取得する
15 ///////////////////////////////////////////////////////////
16   SDBR_PROPDEF PropA;
17   PropA.PropId = dbrProp_ContaineesCountVT;
18                                //クラスのプロパティを指定
19   PropA.lType = DMA_DATATYPE_INTEGER32;
20   PropA.lCardinality = DMA_CARDINALITY_SINGLE;
21   SDBR_PROP*     pPropT;
22   SDBR_PROPLIST* pPropList;
23   DmaInteger32 cnt;
24   DmaInteger32 iPropCount = 1;
25   rc = pCFRFCT->GetPropertyValues(NULL,
26           iPropCount,&PropA,&pPropList);   //一つだけ取得
27   if(rc == DMA_TRUE){
28     lmajor = pCFRFCT->GetLastError(&lminor,&pErrorStrings);
29     printf(" ERROR !! major %x minor %x %s¥n",
30          lmajor,lminor,
31          (pErrorStrings == NULL) ? "NULL":pErrorStrings);
32     return FALSE;
33   }
34   pPropT = &pPropList->pItem[0];
35   if (rc == DMA_TRUE && *pPropT->uniValue.plInteger32 > 0){
36         ObjListCount = *pPropT->uniValue.plInteger32;
37   }
38 ///////////////////////////////////////////////////////////
39 //2. すべての構成要素のOIIDを取得
40 ///////////////////////////////////////////////////////////
41   SDBR_VTOBJLIST* pObjList = NULL;
42   rc = pCFRFCT->GetVTContaineeList( &bContinue,
43                     NULL,       //プロパティは取得しない
44                     0,          //プロパティは取得しない
45                     NULL,
46                     ObjListCount,
47                     &pObjList
48   );
49   if(rc != DMA_TRUE){
50     lmajor = pCFRFCT->GetLastError(&lminor,&pErrorStrings);
51     printf(" ERROR !! major %x minor %x %s¥n",
52          lmajor,lminor,
53          (pErrorStrings == NULL) ? "NULL":pErrorStrings);
54     return FALSE;
55   }
56 ///////////////////////////////////////////////////////////
57 //3. 結果出力
58 ///////////////////////////////////////////////////////////
59   int i;
60   for(i = 0;i < pObjList->lCount; i++)
61   {
62        printf("Id = %s",pObjList->pItem[i].pOIID);
63   }
67   dbrDelete(pObjList);
65 ///////////////////////////////////////////////////////////
66 //4. 終了処理
67 ///////////////////////////////////////////////////////////
68   dbrDelete(pPropList);
69   pCFRFCT->ReleaseObject();
70   delete pCFRFCT;
71   pSession->Commit();
72   return TRUE;
73 }

(c)　構成管理フォルダが管理する文書の構成管理モードの切り替え

ここでは，構成管理フォルダが管理する文書のバージョンの構成管理モードである，FIXモードとFLOATINGモードを切り替えるプログラムのコーディング例を示します。

図A-9　構成管理フォルダが管理する文書の構成管理モードを切り替えるシーケンス

コーディング例

1 /////////////////////////////////////////////////////////
2 //機能：構成管理フォルダが管理する文書の構成管理モードを切り替える
3 /////////////////////////////////////////////////////////
4 Bool ChangeFix(CdbrSession* pSession,
5          CdbrConfiguratedReferentialContainer* pCFRFCT,
6          pDmaString_T pLinkId,
7          pDmaString_T pAction,
8          pDmaString_T pOIID)
9 {
10    DmaBoolean rc;
11    pDmaString_T pErrorStrings = NULL;
12    pSession->Begin();
13    pCFRFCT->SetOIID(pSession, pOIID);
14 ///////////////////////////////////////////////////
15 //1. FIXかFLOATか判断する
16 ///////////////////////////////////////////////////
17 ///////////////////////////////////////////////////
18 //2. FIXにする
19 ///////////////////////////////////////////////////
20   if(!(strcmp("FIX",pAction)))
21   {
22     rc = pCFRFCT->SetVTFix(pLinkId,NULL);
23     if(rc != DMA_TRUE)
24     {
25       lmajor = pCFRFCT->GetLastError(&lminor,&pErrorStrings);
26       printf(" ERROR !! major %x minor %x %s¥n",
27            lmajor,lminor,
28            (pErrorStrings == NULL) ? "NULL":pErrorStrings);
29       return FALSE;
30      }
31   }
32 ///////////////////////////////////////////////////
33 //3. FLOATにする
34 ///////////////////////////////////////////////////
35   else if(!(strcmp("FLOAT",pAction)))
36   {
37     rc = pCFRFCT->SetVTFloat(pLinkId);
38     if(rc != DMA_TRUE)
39     {
40       lmajor = pCFRFCT->GetLastError(&lminor,&pErrorStrings);
41       printf(" ERROR !! major %x minor %x %s¥n",
42            lmajor,lminor,
43            (pErrorStrings == NULL) ? "NULL":pErrorStrings);
44       return FALSE;
45     }
46   }else{
47      lmajor = pCFRFCT->GetLastError(&lminor,&pErrorStrings);
48      printf(" ERROR !! major %x minor %x %s¥n",
49           lmajor,lminor,
50           (pErrorStrings == NULL) ? "NULL":pErrorStrings);
51      return FALSE;
52   }
53 ///////////////////////////////////////////////////
54 //4. 確定処理
55 ///////////////////////////////////////////////////
56   pSession->Commit();
57   return TRUE;
58 }

(4)　XML文書の管理

ここでは，XML文書を新規登録する方法として，XMLファイルからDMA情報リストと構造指定検索用のインデクスデータを生成し，その情報を基に文書オブジェクトの作成と構造指定検索インデクスの登録をするコーディング例で説明します。なお，コーディング例中で使用しているエラー判定関数checkAndThrowの定義は次のとおりです。

エラー判定関数checkAndThrowの定義

// 条件式の判定と例外のスロー
void checkAndThrow(int condition, CdbrCore& rObj)
{
   // 条件式が成り立たない場合，マイナーコードをスローする
   if (!condition) {
       DmaInteger32 lMinor = 0;
       rObj.GetLastError(&lMinor);
       throw DmaInteger32(lMinor);
   }
}

次の図に，XML文書を新規に登録するシーケンスを示します。

図A-10　XML文書を新規に登録するシーケンス

コーディング例

1 /////////////////////////////////////////////////////
2 // XML文書の新規登録
3 /////////////////////////////////////////////////////
4
5 void CreateObject(
6     pDmaId       pDocSpaceId, // 文書空間ID
7     pDmaString_T pUserId,     // ユーザID
8     pDmaString_T pPassword,   // パスワード
9     pDmaString_T pXmlFile,    // XMLファイル
10    pDmaString_T pMapDefId)   // マッピング定義ID
11 {
12    CdbrSession               session;
13    CdbrVersionableDocument   verDoc;
14    CdbrXmlTranslatorFactory  xmlTransFactory;
15    CdbrXmlTranslator         xmlTrans;
16    SDBR_DMAINFOLIST*         pDmaInfoList = NULL;
17    pDmaString_T              pOIID = NULL;
18    pDmaString_T              pMessage = NULL;
19    DmaBoolean                bRc;
20
21 ////////////////////////////////////////////////////
22 // 1. XML操作環境の設定と開始処理
23 ////////////////////////////////////////////////////
24   // XML管理オブジェクトの初期化
25    bRc = xmlTransFactory.Initialize(pDocSpaceId,
26                              NULL, &pMessage);
27    if (pMessage != NULL) {
28        cout << "message=" << pMessage << endl;
29    }
30    dbrDelete(pMessage);
31    checkAndThrow(bRc, xmlTransFactory);
32
33   // CdbrXmlTranslatorオブジェクトの生成
34    bRc = xmlTransFactory.CreateTranslator(&xmlTrans);
35    checkAndThrow(bRc, xmlTransFactory);
36
37   // セッションの接続
38    bRc = session.Connect(pDocSpaceId, pUserId, pPassword);
39    checkAndThrow(bRc, session);
40
41   // トランザクションの開始
42    bRc = session.Begin();
43    checkAndThrow(bRc, session);
44
45 ////////////////////////////////////////////////////////
46 // 2. XMLファイルからのDMA情報リスト，構造指定検索用データの生成
47 ////////////////////////////////////////////////////////
48    bRc = xmlTrans.GetDmaInfoList(pXmlFile,
49          DBR_XMLPARSE_NO_EXTERNAL_ENTITIES,
50          pMapDefId,DBR_INDEXTYPE_STRUCTURED,
51          "file:///tmp/NorParamFile.txt",
52          "file:///tmp/index.txt",
53          &pDmaInfoList, &pMessage);
54    if (pMessage != NULL) {
55        cout << "message=" << pMessage << endl;
56    }
57    dbrDelete(pMessage);
58    checkAndThrow(bRc, xmlTrans);
59
60 ////////////////////////////////////////////////////////
61 // 3. 文書オブジェクトの新規作成と構造指定検索インデクスの登録
62 ////////////////////////////////////////////////////////
63   // DMA情報リストを使用して文書オブジェクトを新規作成する
64    bRc = verDoc.CreateObject(&session,
65          pDmaInfoList->lCount,
66          pDmaInfoList->pItem,
67          pXmlFile, "text::xml", &pOIID);
68    dbrDelete(pDmaInfoList);
69    checkAndThrow(bRc, verDoc);
70
71   // 構造指定検索インデクスの登録
72    bRc = verDoc.CreateIndex("file:///tmp/index.txt");
73    checkAndThrow(bRc, verDoc);
74
75 ////////////////////////////////////////////////////////
76 // 4. 終了処理
77 ////////////////////////////////////////////////////////
78   // トランザクションのコミット
79    bRc = session.Commit();
80    checkAndThrow(bRc, session);
81
82   // セッションの切断
83    bRc = session.Disconnect();
84    checkAndThrow(bRc, session);
85 }

(5)　可変長配列の操作

ここでは，CdbrVariableArrayクラスとCdbrCompoundクラスを使用したVariableArray型プロパティの操作について，コーディング例を示します。

このコーディング例では，次の図に示す，プロパティ「Name」とプロパティ「Age」を定義したedmClass_Structクラスのオブジェクトを要素に持つVariableArray型のプロパティついて説明します。

図A-11　サンプルコーディングで使用するVariableArray型プロパティ

(a)　VariableArray型プロパティの取得

可変長配列を取得するためには，CdbrDMA::GetPropertyValuesメソッドなどの，プロパティを取得するメソッドを使用します。

取得したプロパティ構造体（SDBR_PROP）が，データ型がObject型（lType = DMA_DATATYPE_OBJECT）であり，かつ基本単位がVariableArray（lCardinality = EDM_DMA_CARDINALITY_VARRAY）の場合，メンバuniValue.ppObject[0]に可変長配列クラスCdbrVariableArrayクラスのインスタンスへのポインタが格納されます。

コーディング例を示します。

コーディング例

1  // VariableArray型プロパティを取得するサンプルコード
2  SDBR_PROPDEF    propdef;
3  SDBR_PROPLIST*  pPropList;
4  SDBR_PROP*      pProp;
5  DmaInteger32    n;
6  pDmaString_T    pName;
7  CdbrVariableArray* pVArray;
8  CdbrCompound       CompoValue;
9  propdef.PropId = usrProp_Member;
10 dma.GetPropertyValues(1,&propdef, &pPropList);
11 pProp = &pPropList->pItem[0];
12 if (pProp->lType == DMA_DATATYPE_OBJECT
13  && pProp->lCardinality == EDM_DMA_CARDINALITY_VARRAY)
14 {
15  pVArray = (CdbrVariableArray*) pProp->uniValue.ppObject[0];
16 }

(b)　可変長配列の値の取得

可変長配列の要素は，CdbrVariableArray::GetValueメソッドにインデクスを指定して取得します。

VariableArray型プロパティから取得した可変長配列オブジェクトの要素のデータ型は，複合データ型（DBR_DATATYPE_COMPOUND）です。したがって，CdbrCompoundクラスの変数のアドレスを指定します。

複合データ型からの値は，CdbrCompound::GetValueメソッドにプロパティIDを指定して，取得します。

コーディング例を次に示します。なお，ここでは，(a)で可変長配列を取得した続きから記述します。

コーディング例（(a)のコーディング例の続き）

17 if (pVArray->GetDataType() == DBR_DATATYPE_COMPOUND) {
18 // 要素の数だけ繰り返す
19 for (int n = 0; n < pVArray->GetCount(); n++) {
20  // 要素（複合データ型）の取得
21   pVArray->GetValue(n,& CompoValue);
22  // "Name"プロパティの取得と表示
23  CompoValue.GetValue(&usrProp_Name, &pName);
24  printf("Name=%s ", pName);
25   // "Age"プロパティの取得と表示
26   CompoValue.GetValue(&usrProp_Age, &lAge);
27   printf("Age=%d¥n", lAge);
28   dbrDelete(pName);
29  }
30 }

(c)　VariableArray型プロパティの設定

VariableArray型プロパティを設定する場合は，CdbrDMA::PutPropertyValuesメソッドなどの，プロパティを設定するメソッドを使用します。

次の図に可変長配列を設定するシーケンスを示します。

図A-12　可変長配列を設定するシーケンス

コーディング例

1  // 変数dmaはCdbrDMAクラスのインスタンス
2  SDBR_PROP     Prop;
3  SDBR_PROPLIST PropList;
4  Dmapv         pObj;
5  CdbrCompound CompoValue;
6  CdbrVariableArray  VArray(DBR_DATATYPE_COMPOUND);
7
8  // 要素となる複合データを作成する
9  CompoValue.SetValue( &usrProp_NAME, "中井");
10 CompoValue.SetValue( &usrProp_AGE, 25);
11 // 可変長配列の要素数を1にして，複合データを可変長配列に格納する
12 VArray.Resize(1);
13 VArray.SetValue(0,CompoValue);
14 // 可変長配列をプロパティ構造体に設定する
15 Prop.PropId = usrProp_Author;
16 Prop.lType = DMA_DATATYPE_OBJECT;
17 Prop.lCardinality = EDM_DMA_CARDINALITY_VARRAY;
18 Prop.lCount = 1;
19 pObj = &VArray;
20 Prop.uniValue.ppObject = &pObj;
21 // プロパティ構造体の値（＝可変長配列）をDMAオブジェクトに設定する
22 PropList.pItem = &Prop;
23 PropList.lCount = 1;
24 dma.PutPropertyValues(&PropList);

(d)　可変長配列の要素数の追加と削除

可変長配列の要素は，CdbrVariableArray::Addメソッドによって追加できます。追加した要素は，可変長配列の末尾に追加されます。

また，可変長配列の要素の削除は，CdbrVariableArray::Deleteメソッドで，引数に削除する要素のインデクスを指定して実行します。削除された要素以降の要素は，前に詰まります。変更した内容は，PutPropertyValuesメソッドなどによってプロパティを更新した時にオブジェクトに反映されます。

コーディング例を次に示します。なお，整数リテラルを指定する場合は，型指定をするか，サフィックスを指定する必要があります。

コーディング例

1      CdbrVariableArray  VArray(DBR_DATATYPE_COMPOUND);
2  //要素を作成する
3      CdbrCompound  CompoValue1,CompoValue2;
4      CompoValue1.SetValue( &usrProp_NAME, "島田");
5      CompoValue1.SetValue( &usrProp_AGE, (DmaInteger32)30);
6      CompoValue2.SetValue( &usrProp_NAME, "中井");
7      CompoValue2.SetValue( &usrProp_AGE, 25L);
8  //要素を二つ追加する
9      VArray.Add(CompoValue1);
10     VArray.Add(CompoValue2);
11 //先頭の要素を削除する
12     VArray.Delete(0);

(e)　すべての要素の削除

可変長配列のすべての要素を一括して削除するには，CdbrVariableArray::Resizeメソッドによって要素数に0を指定します。要素数0の可変長配列をVariableArray型プロパティに設定すると，VariableArray型プロパティのすべての要素が削除されます。

次に，コーディング例を示します。なお，ここでは，(a)でVariableArray型プロパティを取得した続きを記述します。pVArrayは，可変長配列のポインタです。

コーディング例（(a)のサンプルコーディングの続き）

17 SDBR_PROP     Prop;
18 SDBR_PROPLIST PropList;
19 Dmapv         pObj;
20
21 // 要素の数を０にする
22  pVArray->Resize(0)
23 // 変更内容をオブジェクトに反映する
24 Prop.PropId = usrProp_Author;
25 Prop.lType = DMA_DATATYPE_OBJECT;
26 Prop.lCardinality = EDM_DMA_CARDINALITY_VARRAY;
27 Prop.lCount = 1;
28 pObj = pVArray;
29 Prop.uniValue.ppObject = &pObj;
30 // プロパティ構造体の値（＝可変長配列）をDMAオブジェクトに設定する
31 // VariableArray型プロパティの要素はすべて削除される
32 PropList.pItem = &Prop;
33 PropList.lCount = 1;
34 dma.PutPropertyValues(&PropList);

(6)　エラー処理

ここでは，エラー処理をするプログラムのコーディング例を示します。

(a)　データベースエラーが発生した場合のエラー処理

ここでは，データベースエラーが発生した場合のエラー処理をするコーディング例を示します。

コーディング例

1  int  MainFunc( … )
2  {
3    int retry_count = 3;
4    …
5    while (retry_count > 0) {
6        rc = UserFunc1(…);
7        If (rc == RC_RETRY) {
8           retry_count--;
9        }
10       else {
11          retry_count = 0;
12       }
13   }
14   …
15 }
16
17 Int  UserFunc1( … )
18 {
19   CdbrReferentialContainer FolderObj;
20   DmaInteger32  lmajor;
21   DmaInteger32  lminor;
22   DmaInteger32  lSQLCode;
23   pDmaString_T  pSQLState;
24
25   pSession->Begin();
26
27   brc = FolderObj.SetOIID( pSession, pOIID );
28   if  (brc == DMA_FALSE)  goto ERROR_EXIT;
29
30   brc = FolderObj.PutPropertyValues( 引数省略 );
31
32   if (brc == DMA_FALSE) {
33      lmajor = FolderObj.GetLastError(&lminor,&pErrorStrings);
34      if (lmajor == ERR_DB && (lminor == ERR_DB_LOCKED ||
35                     lminor == ERR_DB_DEADLOCK_OCCURRED) ) {
36         pSession->Rollback();      // ロールバック
37         return RC_RETRY;
38      }
39      else if (lmajor == ERR_DB && lminor == ERR_DB_FAILED) {
40         pSession->Rollback();      // ロールバック
41         FolderObj.GetDBError(&lSQLCode, &pSQLState);
42         cout << "DB ERROR! SQLCode:" << lSQLCode << endl;
43                                    //SQLCodeを出力する
44         cout << "DB ERROR! SQLState:" << pSQLState << endl;
45                                    //SQLSTATEを出力する
46         return RC_FAILED;
47      }
48      else {
49         …
50      }
51   }
52
53   pSession->Commit();              // コミット
54   return RC_OK;
55
56 ERROR_EXIT:
57    …  // 適切なエラー処理
58           return RC_FAILED;
59         }
60

(b)　それ以外のエラーが発生したの場合のエラー処理

ここでは，データベースエラー以外が発生した場合の，単純なエラー処理をするコーディング例を示します。

コーディング例

1  int  MainFunc( … )
2  {
3      rc = UserFunc2( … );
4      If (rc == RC_FAILED) {
5         return FALSE;
6      }
7  }
8
9  Int  UserFunc2( … )
10 {
11     CdbrReferentialContainer FolderObj;
12     DmaInteger32  lmajor;
13     DmaInteger32  lminor;
14
15     pSession->Begin();
16
17     brc = FolderObj.SetOIID( pSession, pOIID );
18     if (brc == DMA_FALSE)  goto  ERROR_EXIT;
19
20     brc = FolderObj.PutPropertyValues( 引数省略 );
21     if (brc == DMA_FALSE)  goto  ERROR_EXIT;
22
23     pSession->Commit();                  //コミット
24     return RC_OK;
25
26 ERROR_EXIT:
27     pSession->Rollback();                //ロールバック
28     return RC_FAILED;
29          }

(c)　詳細メッセージを取得する場合のエラー処理

ここでは，エラー発生時に詳細メッセージを取得するコーディング例を示します。

コーディング例

1  int MainFunc(...)
2  {
3    /*セッションオブジェクトのポインタは*/
4    /*pSessionに格納されているものとする*/
5
6    rc = UserFunc3(pSession, ...);
7    if(rc == RC_FAILED) {
8      return FALSE;
9    }
10 }
11
12 int UserFunc3(CdbrSession* pSession,...)
13 {
14   CdbrReferentialContainer FolderObj;
15   DmaInteger32 lmajor;
16   DmaInteger32 lminor;
17   DmaInteger32 lSQLCode;
18   pDmaString_T pSQLState;
19   pDmaString_T pDetailErrorMessage = NULL;//詳細メッセージ用
20
21   pSession->Begin();
22  
23   brc = FolderObj.SetOIID(pSession,pOIID);
24   if(brc == DMA_FALSE) goto ERROR_EXIT;
25
26   brc = FolderObj.PutPropertyValues( 引数省略 );
27
28   if (brc == DMA_FALSE) {
29      lmajor = FolderObj.GetLastError(&lminor, &pErrorStrings);
30         if (lmajor == ERR_DB) {
31             FolderObj.GetDBError(&lSQLCode,&pSQLState);
32             cout << "DB ERROR! SQLCode:"<< lSQLCode << endl;
33                                        //SQLCodeを出力する
34             cout << "DB ERROR! SQLState:"<< pSQLState << endl;
35                                        //SQLStateを出力する
36
37      }
38
39     //
40     //　詳細メッセージを取得する
41     //
42     pSession->GetLastDetailError(&pDetailErrorMessage);
43     if(pDetailErrorMessage == NULL)
44     {
45        //詳細メッセージは存在しない
46      }
47     else
48     {
49        //詳細メッセージを画面に出力する
50        cout << "DETAIL ERROR :" << pDetailErrorMessage << endl;
51        dbrDelete(pDetailErrorMessage);
52     }
53
54   pSession->Rollback();  //ロールバック
55   return RC_FAILED;
56   }
57
58   pSession->Commit();    //コミット
59   return RC_OK;
60  
61 ERROR_EXIT:
62    …  //  適切なエラー処理を行う
63            return RC_FAILED;
64           }

付録B　DMAオブジェクトのプロパティ

ここでは，クラスライブラリのオブジェクトで参照，設定できるプロパティの定義元になるDMAのクラスのプロパティについて説明します。

＜この節の構成＞

付録B.1　DMAのクラスのプロパティ一覧

付録B.2　プロパティの説明

付録B.1　DMAのクラスのプロパティ一覧

ここでは，クラスライブラリのオブジェクトで参照，設定できるプロパティの定義元になる，主なDMAのクラスのプロパティ一覧を示します。

＜この項の構成＞

(1)　説明する項目

(2)　dmaClass_ConfigurationHistoryクラスのプロパティ

(3)　dmaClass_Containerクラスのプロパティ

(4)　dmaClass_DirectContainmentRelationshipクラスのプロパティ

(5)　dmaClass_DocVersionクラスのプロパティ

(6)　dmaClass_ReferentialContainmentRelationshipクラスのプロパティ

(7)　dmaClass_Renditionクラスのプロパティ

(8)　edmClass_ComponentDocVersionクラスのプロパティ

(9)　edmClass_ContainerVersionクラスのプロパティ

(10)　edmClass_ContentSearchクラスのプロパティ

(11)　edmClass_IndependentPersistenceクラスのプロパティ

(12)　edmClass_PublicACLクラスのプロパティ

(13)　edmClass_Relationshipクラスのプロパティ

(14)　edmClass_VersionTraceableContainmentRelationshipクラス

(15)　edmClass_VersionTracedComponentDocVersionクラスのプロパティ

(16)　edmClass_VersionTracedDocVersionクラスのプロパティ

(1)　説明する項目

各クラスの詳細は，次に示す項目に分けて説明しています。なお，DMAのクラス名について説明中では「dmaClass_DMAクラス」のように表記しています。「クラス」を除いた「dmaClass_DMA」の部分がクラス識別子です。

対応するクラスライブラリのクラス

説明するDMAのクラスと対応するクラスライブラリのクラスについて説明しています。

クラスの説明

クラスの特徴と機能，注意事項などについて説明しています。

スーパークラス

クラスの直上のスーパークラスを記述しています。

プロパティ一覧

クラスが保持するプロパティの特性を次のような一覧表で示しています。

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_X
○
－
Object型
Scalar型
dmaClass_X

プロパティの一覧表の各項目について説明します。

名前

プロパティのシステムIDを記述しています。表記の都合上，複数行にわたっている場合がありますが，実際は1行で記述します。

システム生成

DocumentBrokerが値を設定するプロパティかどうかを記述しています。

○：DocumentBrokerが値を設定するプロパティであることを示します。

－：クライアントが値を設定するプロパティであることを示します。

読み取り専用

読み取り専用のプロパティかまたは編集できるプロパティかを記述しています。

○：読み取り専用のプロパティであることを示します。

－：編集できるプロパティであることを示します。

データ型

プロパティ値のデータ型について記述しています。

基本単位

プロパティの基本単位（Scalar型，List型またはEnumeration型）について記述しています。

要求クラス

プロパティ値のデータ型がObject型の場合に，オブジェクトの基になっているクラスまたはサブクラスを記述しています。表記の都合上，複数行にわたっている場合がありますが，実際は1行で記述します。なお，要求クラスが複数ある場合は，ベースとなる共通のクラスを記述しています。

(2)　dmaClass_ConfigurationHistoryクラスのプロパティ

対応するクラスライブラリのクラス

CdbrConfiguratedReferentialContainerクラス

CdbrVersionableDocumentクラス

クラスの説明
dmaClass_ConfigurationHistoryクラスは，バージョン管理する文書のバージョン構成を保持するためのクラスです。文書をバージョン管理する時の最上位に位置します。

スーパークラス
dmaClass_Containableクラス

dmaClass_ConfigurationHistoryクラスのプロパティ一覧を，次の表に示します。

表B-1　dmaClass_ConfigurationHistoryクラスのプロパティ

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_
OIID
○
○
String型
Scalar型
－

dmaProp_
Class
Description
○
○
Object型
Scalar型
dmaClass_
Class
Description

dmaProp_
This
○
○
Object型
Scalar型
dmaClass_
Configuration
History

dmaProp_
Parent
○
○
Object型
Scalar型
dmaClass_
Direct
Containment
Relationship

dmaProp_
Parent
Container
○
○
Object型
Scalar型
dmaClass_
Container

dmaProp_
Containers
○
○
Object型
Enumeration型
dmaClass_
Referential
Containment
Relationship

dmaProp_
Versioned
ObjectClass
－
－
Object型
Scalar型
dmaClass_
Class
Description

dmaProp_
Primary
VersionSeries
○
○
Object型
Scalar型
dmaClass_
Version
Series

(3)　dmaClass_Containerクラスのプロパティ

対応するクラスライブラリのクラス

CdbrReferentialContainerクラス

クラスの説明
dmaClass_Containerクラスは，ほかのオブジェクトをDirectContainmentRelationshipオブジェクトまたはReferentialContainmentRelationshipオブジェクトを介して包含するためのクラスです。Containerオブジェクトは直接コンテントを持ちません。

スーパークラス

dmaClass_Containableクラス

dmaClass_Containerクラスのプロパティ一覧を，次の表に示します。

表B-2　dmaClass_Containerクラスのプロパティ一覧

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_
OIID
○
○
String型
Scalar型
－

dmaProp_
Class
Description
○
○
Object型
Scalar型
dmaClass_
Class
Description

dmaProp_
This
○
○
Object型
Scalar型
dmaClass_
Container

dmaProp_
Parent
○
○
Object型
Scalar型
dmaClass_
Direct
Containment
Relationship

dmaProp_
Parent
Container
○
○
Object型
Scalar型
dmaClass_
Container

dmaProp_
Containers
○
○
Object型
Enumeration型
dmaClass_
Referential
Containment
Relationship

dmaProp_
Children
○
○
Object型
Enumeration型
dmaClass_
Direct
Containment
Relationship

dmaProp_
Containees
○
○
Object型
Enumeration型
dmaClass_
Referential
Containment
Relationship

(4)　dmaClass_DirectContainmentRelationshipクラスのプロパティ

対応するクラスライブラリのクラス
なし。

クラスの説明
dmaClass_DirectContainmentRelationshipクラスは，一つの文書空間内でのオブジェクト間の直接型のコンテインメントを規定するクラスで，dmaClass_ContainmentRelationshipクラスのサブクラスです。
直接型のコンテインメントでは，Parent対Childは1:nの関係にあるため，包含されるChildに相当するオブジェクトは，dmaClass_DirectContainmentRelationshipクラスを介さずに，dmaProp_ParentContainerプロパティから，自身を包含するContainerオブジェクトを探索できます。
DocumentBrokerでは，このクラスは検索できません。

スーパークラス
dmaClass_ContainmentRelationshipクラス

dmaClass_DirectContainmentRelationshipクラスのプロパティ一覧を，次の表に示します。

表B-3　dmaClass_DirectContainmentRelationshipクラスのプロパティ

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_
OIID
○
○
String型
Scalar型
－

dmaProp_
Class
Description
○
○
Object型
Scalar型
dmaClass_
Class
Description

dmaProp_
This
○
○
Object型
Scalar型
dmaClass_
DocVersion

dmaProp_Head
－
－
Object型
Scalar型
dmaClass_Containable

dmaProp_Tail
－
－
Object型
Scalar型
dmaClass_Container

(5)　dmaClass_DocVersionクラスのプロパティ

対応するクラスライブラリのクラス

CdbrDocumentクラス

クラスの説明
dmaClass_DocVersionクラスは，文書を表現するオブジェクトのルートとなるクラスです。dmaClass_VersionableクラスおよびdmaClass_Containableクラスのプロパティを継承します。したがって，文書空間では，dmaClass_DocVersionクラスまたはそのサブクラスのインスタンスをバージョン管理したり，ほかの文書と関連づけて管理したりできます。

スーパークラス
dmaClass_Versionableクラス

dmaClass_DocVersionクラスのプロパティ一覧を，次の表に示します。

表B-4　dmaClass_DocVersionクラスのプロパティ

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_
OIID
○
○
String型
Scalar型
－

dmaProp_
Class
Description
○
○
Object型
Scalar型
dmaClass_
Class
Description

dmaProp_
This
○
○
Object型
Scalar型
dmaClass_
DocVersion

dmaProp_
Parent
○
○
Object型
Scalar型
dmaClass_
Direct
Containment
Relationship

dmaProp_
Parent
Container
○
○
Object型
Scalar型
dmaClass_
Container

dmaProp_
Containers
○
○
Object型
Enumeration型
dmaClass_
Referential
Containment
Relationship

dmaProp_
Version
Descriptions
○
○
Object型
Enumeration型
dmaClass_
Version
Description

dmaProp_
CurrentOf
SeriesCount
○
○
Integer32型
Scalar型
－

dmaProp_
Renditions
Present
○
○
String型
List型
－

dmaProp_
Renditions
－
－
Object型
List型
dmaClass_
Rendition

edmProp_
Renditions
Count
○
○
Integer32型
Scalar型
－

(6)　dmaClass_ReferentialContainmentRelationshipクラスのプロパティ

対応するクラスライブラリのクラス
なし。

クラスの説明
dmaClass_ReferentialContainmentRelationshipクラスは，文書空間内でのオブジェクト間の参照型のコンテインメントを規定するクラスで，dmaClass_ContainmentRelationshipクラスのサブクラスです。
DocumentBrokerでは，このクラスは検索できません。

スーパークラス
dmaClass_ContainmentRelationshipクラス

dmaClass_ReferentialContainmentRelationshipクラスのプロパティ一覧を，次の表に示します。

表B-5　dmaClass_ReferentialContainmentRelationshipクラスのプロパティ

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_
OIID
○
○
String型
Scalar型
－

dmaProp_
Class
Description
○
○
Object型
Scalar型
dmaClass_
Class
Description

dmaProp_
This
○
○
Object型
Scalar型
dmaClass_
DocVersion

dmaProp_Head
－
－
Object型
Scalar型
dmaClass_Containable

dmaProp_Tail
－
－
Object型
Scalar型
dmaClass_Container

(7)　dmaClass_Renditionクラスのプロパティ

対応するクラスライブラリのクラス
なし。

クラスの説明
dmaClass_Renditionクラスは，特定の形式でDocVersionオブジェクトのコンテントを表現するためのクラスです。特定の表現形式のコンテント（ContentTransferオブジェクトまたはContentTransfersオブジェクト）へのリファレンスを保持します。
Renditionオブジェクトは，DocVersionオブジェクトに従属するオブジェクトです。DocumentBrokerでは，Renditionオブジェクトが属しているDocVersionオブジェクトのdmaProp_RenditionsPresentプロパティに，Renditionオブジェクトが保持する表現形式を示す文字列（dmaProp_RenditionTypeプロパティの値）を設定します。

スーパークラス
dmaClass_DMAクラス

dmaClass_Renditionクラスのプロパティ一覧を，次の表に示します。

表B-6　dmaClass_Renditionクラスのプロパティ

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_
OIID
○
○
String型
Scalar型
－

dmaProp_
Class
Description
○
○
Object型
Scalar型
dmaClass_
Class
Description

dmaProp_
This
○
○
Object型
Scalar型
dmaClass_
DocVersion

dmaProp_RenditionType
－
－
String型
Scalar型
－

dmaProp_ContentElementsPresent
○
○
String型
List型
－

dmaProp_ContentElements
－
－
Object型
List型
dmaClass_ContentElement

(8)　edmClass_ComponentDocVersionクラスのプロパティ

対応するクラスライブラリのクラス

CdbrDocumentクラス

クラスの説明
edmClass_ComponentDocVersionクラスは，dmaClass_DocVersionクラスのサブクラスです。

スーパークラス
dmaClass_DocVersionクラス

edmClass_ComponentDocVersionクラスのプロパティ一覧を，次の表に示します。

表B-7　edmClass_ComponentDocVersionクラスのプロパティ

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_
OIID
○
○
String型
Scalar型
－

dmaProp_
Class
Description
○
○
Object型
Scalar型
dmaClass_
Class
Description

dmaProp_
This
○
○
Object型
Scalar型
dmaClass_
DocVersion

dmaProp_
Parent
○
○
Object型
Scalar型
dmaClass_
Direct
Containment
Relationship

dmaProp_
Parent
Container
○
○
Object型
Scalar型
dmaClass_
Container

dmaProp_
Containers
○
○
Object型
Enumeration型
dmaClass_
Referential
Containment
Relationship

dmaProp_
Version
Descriptions
○
○
Object型
Enumeration型
dmaClass_
Version
Description

dmaProp_
CurrentOf
SeriesCount
○
○
Integer32型
Scalar型
－

dmaProp_
Renditions
Present
○
○
String型
List型
－

dmaProp_
Renditions
－
－
Object型
List型
dmaClass_
Rendition

edmProp_CDContainers
○
○
Object型
Enumeration型
－

edmProp_
Renditions
Count
○
○
Integer32型
Scalar型
－

(9)　edmClass_ContainerVersionクラスのプロパティ

対応するクラスライブラリのクラス

CdbrVersionTraceableContainerクラス

クラスの説明
edmClass_ContainerVersionクラスは，構成管理コンテナの機能を持ち，格納しているオブジェクトの集合全体としてのバージョンを管理するためのクラスです。また，edmProp_VTContainersプロパティを保持し，ほかの構成管理コンテナ機能を持つオブジェクトの構成要素にもなれます。

スーパークラス
dmaClass_Versionableクラス

edmClass_ContainerVersionクラスのプロパティ一覧を，次の表に示します。

表B-8　edmClass_ContainerVersionクラス

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_
OIID
○
○
String型
Scalar型
－

dmaProp_
Class
Description
○
○
Object型
Scalar型
dmaClass_
Class
Description

dmaProp_
This
○
○
Object型
Scalar型
edmClass_
Container
Version

dmaProp_
Parent
○
○
Object型
Scalar型
dmaClass_
Direct
Containment
Relationship

dmaProp_
Parent
Container
○
○
Object型
Scalar型
dmaClass_
Container

dmaProp_
Containers
○
○
Object型
Enumeration型
dmaClass_
Referential
Containment
Relationship

edmProp_
VTContainers
○
○
Object型
Enumeration型
edmClass_
Version
Traceable
Containment
Relationship

dmaProp_
Children
○
○
Object型
Enumeration型
dmaClass_
Direct
Containment
Relationship

dmaProp_
Containees
○
○
Object型
Enumeration型
dmaClass_
Referential
Containment
Relationship

edmProp_
VTContainees
○
○
Object型
Enumeration型
edmClass_
Version
Traceable
Containment
Relationship

dmaProp_
Version
Descriptions
○
○
Object型
Enumeration型
dmaClass_
Version
Description

dmaProp_
CurrentOf
SeriesCount
○
○
Integer32型
Scalar型
－

(10)　edmClass_ContentSearchクラスのプロパティ

対応するクラスライブラリのクラス
なし。

クラスの説明
edmClass_ContentSearchクラスは，dmaClass_DocVersionクラスのサブクラスに仮想的に継承させて全文検索の対象にする文書を登録するためのクラスです。edmClass_ContentSearchクラスのプロパティを仮想的に継承したdmaClass_DocVersionクラスのサブクラスでは，edmClass_ContentSearchクラスの選択可能なプロパティを検索に使用するプロパティとして指定できます。また，検索可能なプロパティであるedmProp_TextIndexプロパティ，edmProp_StIndexプロパティ，edmProp_ConceptTextIndexプロパティ，edmProp_ConceptStIndexプロパティおよびedmProp_Contentプロパティを指定して全文検索ができます。

スーパークラス
dmaClass_DMAクラス

edmClass_ContentSearchクラスのプロパティ一覧を，次の表に示します。

表B-9　edmClass_ContentSearchクラスのプロパティの一覧

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_
OIID
○
○
String型
Scalar型
－

dmaProp_
Class
Description
○
○
Object型
Scalar型
dmaClass_
Class
Description

dmaProp_
This
○
○
Object型
Scalar型
edmClass_
Independent
Persistence

edmProp_
TextIndex
○
○
String型
Scalar型
－

edmProp_
StIndex
○
○
String型
Scalar型
－

edmProp_
ConceptText
Index
○
○
String型
Scalar型
－

edmProp_
ConceptSt
Index
○
○
String型
Scalar型
－

edmProp_
Content
○
○
String型
Scalar型
－

edmProp_
DocVersion
OIID
○
○
Id型
Scalar型
－

edmProp_
Score
○
○
Integer32型
Scalar型
－

edmProp_
RawScore
○
○
Integer32型
Scalar型
－

edmProp_
DocLength
○
○
Integer32型
Scalar型
－

edmProp_
ContentIndex
Status
○
○
Integer32型
Scalar型
－

(11)　edmClass_IndependentPersistenceクラスのプロパティ

対応するクラスライブラリのクラス

CdbrIndependentPersistenceクラス

クラスの説明
edmClass_IndependentPersistenceクラスは，ほかのオブジェクトに従属しないで，独立して存在するオブジェクトを新たに作成するためのクラスです。DocumentBrokerでは，このクラスを継承しているサブクラスを基にして作成したオブジェクトをDMAのオブジェクトとして扱います。
DocumentBrokerで，このクラスを基にサブクラスを定義する場合は，次の規則に従ってください。

クラス，プロパティの定義に関する規則

クラスまたはプロパティのGUIDは，DocumentBrokerが予約している値以外の値で定義する複数のクラスに同じGUIDを定義しない。

複数のプロパティに同じGUIDを定義する場合は，プロパティ名およびプロパティの型を同じにする。

edmClass_IndependentPersistenceクラスで定義しているプロパティは，すべて継承し，削除できない。

プロパティのデータ型に関する規則

定義できるプロパティのデータ型は次のとおりです。

Boolean型

Integer32型

String型

Object型（ただしVariableArray型だけ）

プロパティ値の設定および取得に関する規則

DocumentBrokerまたはクライアントアプリケーションが定義するGUIDかインデクスを使用して，プロパティ値の設定または取得ができます。

スーパークラス
dmaClass_DMAクラス

edmClass_IndependentPersistenceクラスのプロパティ一覧を，次の表に示します。

表B-10　edmClass_IndependentPersistenceクラスのプロパティの一覧

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_
OIID
○
○
String型
Scalar型
－

dmaProp_
Class
Description
○
○
Object型
Scalar型
dmaClass_
Class
Description

dmaProp_
This
○
○
Object型
Scalar型
edmClass_
Independent
Persistence

(12)　edmClass_PublicACLクラスのプロパティ

対応するクラスライブラリのクラス

CdbrPublicACLクラス

クラスの説明
edmClass_PublicACLクラスは，パブリックACLを表すオブジェクト，CdbrPublicACLオブジェクトの構成要素になるクラスです。

スーパークラス
dmaClass_DMAクラス
edmClass_PublicACLクラスのプロパティ一覧を，次の表に示します。

表B-11　edmClass_PublicACLクラスのプロパティ

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_
OIID
○
○
String型
Scalar型
－

dmaProp_
This
○
○
Object型
Scalar型
edmClass_PublicACL

edmProp_OwnerId
○
○
String型
Scalar型
－

(13)　edmClass_Relationshipクラスのプロパティ

対応するクラスライブラリのクラス
なし。

クラスの説明
edmClass_Relationshipクラスは，リレーションによってオブジェクト間の関連づけを設定するためのクラスで，dmaClass_Relationshipクラスのサブクラスです。

スーパークラス
dmaClass_Relationshipクラス

edmClass_Relationshipクラスのプロパティ一覧を，次の表に示します。

表B-12　edmClass_Relationshipクラスのプロパティ

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_
OIID
○
○
String型
Scalar型
－

dmaProp_
Class
Description
○
○
Object型
Scalar型
dmaClass_
Class
Description

dmaProp_
This
○
○
Object型
Scalar型
dmaClass_
DocVersion

dmaProp_
Head
－
－
Object型
Scalar型
dmaClass_DMA

dmaProp_
Tail
－
－
Object型
Scalar型
dmaClass_DMA

edmProp_RelationType
－
－
Integer32型
Scalar型
－

(14)　edmClass_VersionTraceableContainmentRelationshipクラス

対応するクラスライブラリのクラス
なし。

クラスの説明
edmClass_VersionTraceableContainmentRelationshipクラスは，文書空間内でのオブジェクト間の構成管理型のコンテインメントを規定するクラスで，dmaClass_ContainmentRelationshipクラスのサブクラスです。コンテナの構成要素の最新バージョンを追跡してコンテインメントを規定したり，任意のバージョンを固定してコンテインメントを規定できるプロパティを保持します。
DocumentBrokerでは，このクラスは検索できません。

スーパークラス
dmaClass_ContainmentRelationshipクラス

edmClass_VersionTraceableContainmentRelationshipクラスのプロパティ一覧を，次の表に示します。

表B-13　edmClass_VersionTraceableContainmentRelationshipクラスのプロパティ

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_
OIID
○
○
String型
Scalar型
－

dmaProp_
Class
Description
○
○
Object型
Scalar型
dmaClass_
Class
Description

dmaProp_
This
○
○
Object型
Scalar型
dmaClass_
DocVersion

dmaProp_Head
－
－
Object型
Scalar型
dmaClass_Containable

dmaProp_Tail
－
－
Object型
Scalar型
dmaClass_Container

edmProp_VTMode
○
○
Integer32型
Scalar型
－

edmProp_VTVersionSeries
○
○
Object型
Scalar型
dmaClass_VersionSeries

edmProp_VTConfigurationHistory
○
○
Object型
Scalar型
dmaClass_ConfigurationHistory

(15)　edmClass_VersionTracedComponentDocVersionクラスのプロパティ

対応するクラスライブラリのクラス

CdbrDocumentクラス

クラスの説明
edmClass_VersionTracedComponentDocVersionクラスは，構成管理型で包含される文書を表現するためのクラスで，dmaClass_DocVersionクラスのサブクラスです。構成管理型で包含されるためのedmProp_VTContainersプロパティを保持します。

スーパークラス
dmaClass_DocVersionクラス

edmClass_VersionTracedComponentDocVersionクラスのプロパティ一覧を，次の表に示します。

表B-14　edmClass_VersionTracedComponentDocVersionクラスのプロパティ

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_
OIID
○
○
String型
Scalar型
－

dmaProp_
Class
Description
○
○
Object型
Scalar型
dmaClass_
Class
Description

dmaProp_
This
○
○
Object型
Scalar型
dmaClass_
DocVersion

dmaProp_
Parent
○
○
Object型
Scalar型
dmaClass_
Direct
Containment
Relationship

dmaProp_
Parent
Container
○
○
Object型
Scalar型
dmaClass_
Container

dmaProp_
Containers
○
○
Object型
Enumeration型
dmaClass_
Referential
Containment
Relationship

dmaProp_
Version
Descriptions
○
○
Object型
Enumeration型
dmaClass_
Version
Description

dmaProp_
CurrentOf
SeriesCount
○
○
Integer32型
Scalar型
－

dmaProp_
Renditions
Present
○
○
String型
List型
－

dmaProp_
Renditions
－
－
Object型
List型
dmaClass_
Rendition

edmProp_CDContainers
○
○
Object型
Enumeration型
－

edmProp_
Renditions
Count
○
○
Integer32型
Scalar型
－

edmProp_VTContainers
○
○
Object型
Enumeration型
edmClass_VersionTraceableContainmentRelationship

(16)　edmClass_VersionTracedDocVersionクラスのプロパティ

対応するクラスライブラリのクラス

CdbrDocumentクラス

クラスの説明
edmClass_VersionTracedDocVersionクラスは，構成管理型で包含される文書を表現するためのクラスで，dmaClass_DocVersionクラスのサブクラスです。構成管理型で包含されるためのedmProp_VTContainersプロパティを保持します。

スーパークラス
dmaClass_DocVersionクラス

edmClass_VersionTracedDocVersionクラスのプロパティ一覧を，次の表に示します。

表B-15　edmClass_VersionTracedDocVersionクラスのプロパティ

名前
システム
生成
読み取り
専用
データ型
基本単位
要求
クラス

dmaProp_
OIID
○
○
String型
Scalar型
－

dmaProp_
Class
Description
○
○
Object型
Scalar型
dmaClass_
Class
Description

dmaProp_
This
○
○
Object型
Scalar型
dmaClass_
DocVersion

dmaProp_
Parent
○
○
Object型
Scalar型
dmaClass_
Direct
Containment
Relationship

dmaProp_
Parent
Container
○
○
Object型
Scalar型
dmaClass_
Container

dmaProp_
Containers
○
○
Object型
Enumeration型
dmaClass_
Referential
Containment
Relationship

dmaProp_
Version
Descriptions
○
○
Object型
Enumeration型
dmaClass_
Version
Description

dmaProp_
CurrentOf
SeriesCount
○
○
Integer32型
Scalar型
－

dmaProp_
Renditions
Present
○
○
String型
List型
－

dmaProp_
Renditions
－
－
Object型
List型
dmaClass_
Rendition

edmProp_
Renditions
Count
○
○
Integer32型
Scalar型
－

edmProp_VTContainers
○
○
Object型
Enumeration型
edmClass_VersionTraceableContainmentRelationship

付録B.2　プロパティの説明

ここでは，それぞれのプロパティについて説明します。

＜この項の構成＞

(1)　dmaProp_Childrenプロパティ

(2)　dmaProp_ClassDescriptionプロパティ

(3)　dmaProp_Containeesプロパティ

(4)　dmaProp_Containersプロパティ

(5)　dmaProp_ContentElementsプロパティ

(6)　dmaProp_ContentElementsPresentプロパティ

(7)　dmaProp_CurrentOfSeriesCountプロパティ

(8)　dmaProp_Headプロパティ

(9)　dmaProp_OIIDプロパティ

(10)　dmaProp_Parentプロパティ

(11)　dmaProp_ParentContainerプロパティ

(12)　dmaProp_PrimaryVersionSeriesプロパティ

(13)　dmaProp_Renditionsプロパティ

(14)　dmaProp_RenditionsPresentプロパティ

(15)　dmaProp_RenditionTypeプロパティ

(16)　dmaProp_Tailプロパティ

(17)　dmaProp_Thisプロパティ

(18)　dmaProp_VersionDescriptionsプロパティ

(19)　dmaProp_VersionedObjectClassプロパティ

(20)　edmProp_ConceptStIndexプロパティ

(21)　edmProp_ConceptTextIndexプロパティ

(22)　edmProp_Contentプロパティ（Version 1との互換用）

(23)　edmProp_ContentIndexStatusプロパティ

(24)　edmProp_DocLengthプロパティ

(25)　edmProp_DocVersionOIIDプロパティ

(26)　edmProp_OwnerIdプロパティ

(27)　edmProp_RawScoreプロパティ

(28)　edmProp_RelationTypeプロパティ

(29)　edmProp_RenditionsCountプロパティ

(30)　edmProp_Scoreプロパティ

(31)　edmProp_StIndexプロパティ

(32)　edmProp_TextIndexプロパティ

(33)　edmProp_VTContaineesプロパティ

(34)　edmProp_VTContainersプロパティ

(35)　edmProp_VTConfigurationHistoryプロパティ

(36)　edmProp_VTModeプロパティ

(37)　edmProp_VTVersionSeriesプロパティ

(1)　dmaProp_Childrenプロパティ

ContainerオブジェクトまたはContainerVersionオブジェクトが直接含むContainableオブジェクトとの包含関係を表すDirectContainmentRelationshipオブジェクトのリストです。DirectContainmentRelationshipオブジェクトは，ContainerオブジェクトとそのChildに相当するオブジェクトとの関連を表します。DirectContainmentRelationshipオブジェクトのdmaProp_TailプロパティのReflectiveプロパティです。

(2)　dmaProp_ClassDescriptionプロパティ

オブジェクトの基になっているクラスについて定義するClassDescriptionオブジェクトです。

オブジェクトに対して，オブジェクトの基になるクラスについての定義情報へのアクセスを提供します。

(3)　dmaProp_Containeesプロパティ

ContainerオブジェクトまたはContainerVersionオブジェクトが参照的に含むContainableオブジェクトとの包含関係を表すReferentialContainmentRelationshipオブジェクトのリストです。ReferentialContainmentRelationshipオブジェクトは，ContainerオブジェクトとContaineeに相当するオブジェクトとの関連を表します。

(4)　dmaProp_Containersプロパティ

指定したオブジェクトを参照型で包含しているContainerオブジェクトを識別するReferentialContainmentRelationshipオブジェクトのリストです。

(5)　dmaProp_ContentElementsプロパティ

Renditionオブジェクトに含まれるContentTransferオブジェクト，ContentTransfersオブジェクトまたはContentReferenceオブジェクトのリストです。

一つのRenditionオブジェクトに対してコンテントは，一つです。複数のコンテントをリストの要素としようとすると，インデクスが0だけがコンテントになります。

(6)　dmaProp_ContentElementsPresentプロパティ

コンテントが属しているDocVersionオブジェクトを最後に永続化した時点でContentTransferオブジェクト，ContentTransfersオブジェクトまたはContentReferenceオブジェクトのdmaProp_ComponentTypeプロパティが保持していた文字列のリストです。

DocumentBrokerが値を設定します。クライアントがこのプロパティの値を操作すると，実際の永続オブジェクトの状態と不一致となるので，操作しないでください。

dmaProp_ContentElementsPresentプロパティは，dmaProp_ContentElementsプロパティのリストの状態を動的に追跡しません。したがって，dmaProp_ContentElementsPresentプロパティとdmaProp_ContentElementsプロパティの値は等しくない場合もあります。

Renditionオブジェクトが属しているDocVersionオブジェクトに再接続した時点またはDocVersionオブジェクトのscratchpadオブジェクトを永続オブジェクトの状態に更新した時点で，dmaProp_ContentElementsPresentプロパティとdmaProp_ContentElementsプロパティは，同期します。

(7)　dmaProp_CurrentOfSeriesCountプロパティ

VersionSeriesオブジェクトに最新バージョンとしてチェックインした文書オブジェクト（DocVersionオブジェクト）に対してDocumentBrokerが付与する番号です。

クラスライブラリでは，そのオブジェクトのバージョンの状態を明確にするために，次の値を設定します。

表B-16　クラスライブラリで設定するdmaProp_CurrentOfSeriesCountプロパティの値

DocVersionオブジェクトの状態 | dmaProp_CurrentOfSeriesCountプロパティに設定される値
CdbrVersionableDocumentオブジェクトのカレントバージョンに対応するDocVersionオブジェクト | 1
チェックアウト中のDocVersionオブジェクト | -2
チェックイン後のDocVersionオブジェクト | チェックインによって追加されたDocVersionオブジェクト | 1
チェックインによって旧バージョンになったDocVersionオブジェクト | 0
バージョン管理の対象でないCdbrDocumentオブジェクトに包含されるDocVersionオブジェクト | -1

クライアントは，このプロパティの値の整合性を維持するために，すでに存在する文書オブジェクト（DocVersionオブジェクト）をチェックインする場合，その文書オブジェクトに編集可能なロック（writeロック）を設定して矛盾が起きないように注意してください。

(8)　dmaProp_Headプロパティ

関連づけられた二つのオブジェクトのうち，Head（関連の終点）側のオブジェクトです。例えば，コンテインメントでは，包含される側のオブジェクトです。

このプロパティは，コンテインメントやリレーションのプロパティです。クラスライブラリでは，コンテインメントやリレーションが設定されているオブジェクトのdmaProp_Thisプロパティとこのプロパティを組み合わせて，検索実行時に検索対象クラスを結合する場合に利用できます。

(9)　dmaProp_OIIDプロパティ

オブジェクトを識別する識別子です。

(10)　dmaProp_Parentプロパティ

このオブジェクトを直接型で包含しているParentに相当するオブジェクトを識別するDirectContainmentRelationshipオブジェクトです。

(11)　dmaProp_ParentContainerプロパティ

DirectContainmentRelationshipオブジェクトを介してこのオブジェクトを包含しているContainerオブジェクトです。

クライアントは，このdmaProp_ParentContainerプロパティによって，介在するDirectContainmentRelationshipオブジェクトを参照することなく，直接Parentに相当するContainerオブジェクトを探索できます。

DocumentBrokerでは，このプロパティによる探索を許可します。

(12)　dmaProp_PrimaryVersionSeriesプロパティ

バージョン管理する文書に対する最初のVersionSeriesオブジェクトです。

ConfigurationHistoryオブジェクトに，最初にVersionSeriesオブジェクトがバインドされるときに値が設定されます。

(13)　dmaProp_Renditionsプロパティ

DocVersionオブジェクトが保持するRenditionオブジェクトのリストです。

(14)　dmaProp_RenditionsPresentプロパティ

DocVersionオブジェクトを最後に永続化した時点でDocVersionオブジェクトのdmaProp_RenditionTypeプロパティが保持していた値のリストです。

DocVersionオブジェクトに接続すると，DocumentBrokerが値を設定します。

dmaProp_RenditionsPresentプロパティは，dmaProp_Renditionsプロパティのリストの状態を動的に追跡しません。したがって，dmaProp_RenditionsPresentプロパティとdmaProp_RenditionTypeプロパティの値は等しくない場合があります。

DocVersionオブジェクトに再接続した時点またはDocVersionオブジェクトのscratchpadオブジェクトを永続オブジェクトの状態に更新した時点で，dmaProp_RenditionsPresentプロパティとdmaProp_Renditionsプロパティの値は同期します。

(15)　dmaProp_RenditionTypeプロパティ

コンテントの表現形式を表す文字列です。

文字列の形式は次のようになります。

<rendition_type_space>::<typename>

DocumentBrokerでは，rendition_type_spaceにIANAで定義しているMIMEを使用します。表現形式がプレーンテキストの場合，次のように指定します。

MIME::text/plain

クラスライブラリでは，次のオブジェクトのdbrProp_RenditionTypeプロパティとして操作します。

CdbrDocumentクラス

CdbrVersionableDocumentクラス

(16)　dmaProp_Tailプロパティ

関連づけられた二つのオブジェクトのうち，Tail（関連の始点）側のオブジェクトです。例えば，コンテインメントでは，包含する側のオブジェクトです。

このプロパティは，コンテインメントやリレーションのプロパティです。クラスライブラリでは，コンテインメントやリレーションが設定されているオブジェクトのdmaProp_Thisプロパティとこのプロパティを組み合わせて，検索実行時に検索対象クラスを結合する場合に利用できます。

(17)　dmaProp_Thisプロパティ

オブジェクト自身です。

問い合わせの中で，オブジェクト間の関連を表現して，問い合わせの結果の中から候補のオブジェクトを選択するために使用できます。

クラスライブラリでは，コンテインメントやリレーションのdmaProp_HeadプロパティやdmaProp_Tailプロパティとこのプロパティを組み合わせて，検索実行時に検索対象クラスを結合する場合に利用できます。

(18)　dmaProp_VersionDescriptionsプロパティ

バージョン管理する文書と特定のVersionSeriesオブジェクトとを結び付けるVersionDescriptionオブジェクトのリストです。

文書をバージョン管理する場合にだけ必要となります。

(19)　dmaProp_VersionedObjectClassプロパティ

バージョン管理する文書のベースとなるクラスについて定義するClassDescriptionオブジェクトです。

バージョン管理する文書は，すべてこのプロパティのClassDescriptionオブジェクトが定義するクラスを基に作成される必要があります。

DocumentBrokerでは，このプロパティに設定されたClassDescriptionオブジェクトで，バージョン管理する文書のオブジェクトであるかどうかを確認しません。このプロパティの値は，あらかじめDocumentBrokerサーバのメタ情報ファイル（edms.ini）に設定してください。DocumentBrokerサーバのメタ情報ファイルについては，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

(20)　edmProp_ConceptStIndexプロパティ

全文検索用に登録した文書の全文データです。

このプロパティは，全文検索エンジンに対して，全文検索用の登録情報を参照することを示すためにあります。したがって，SELECT句に検索結果として取得するプロパティには指定できません。

このプロパティでは，概念検索および構造指定検索を含む全文検索が実行できます。

(21)　edmProp_ConceptTextIndexプロパティ

全文検索用に登録した文書の全文データです。

このプロパティは，全文検索エンジンに対して，全文検索用の登録情報を参照することを示すためにあります。したがって，SELECT句に検索結果として取得するプロパティには指定できません。

このプロパティでは，概念検索を含む全文検索が実行できます。

(22)　edmProp_Contentプロパティ（Version 1との互換用）

全文検索用に登録した文書の全文データです。

このプロパティは，全文検索エンジンに対して，全文検索用の登録情報を参照することを示すためにあります。したがって，SELECT句に検索結果として取得するプロパティには指定できません。

このプロパティでは，構造指定検索を含む全文検索が実行できます。

(23)　edmProp_ContentIndexStatusプロパティ

全文検索インデクスの登録状態を示します。設定される値は次のとおりです。

表B-17　edmProp_ContentIndexStatusプロパティに設定される値

値 | 意　味
0 | 文書は未登録です。
1 | 文書は登録されていますが，全文検索インデクスは未登録です。
2 | 文書および全文検索インデクスが登録されています。
3 | 文書が更新されていますが，全文検索インデクスが更新されていないため，文書と全文検索インデクスの内容が一致しません。
100以降 | DocumentBroker Text Search Index Loader Version 2が使用する値です。

(24)　edmProp_DocLengthプロパティ

検索した文書の長さです。

バイト単位で示します。

(25)　edmProp_DocVersionOIIDプロパティ

全文検索用に登録したDocVersionオブジェクトのOIIDです。

(26)　edmProp_OwnerIdプロパティ

オブジェクトの所有者を表す文字列です。

クラスライブラリでは，dbrProp_OwnerIdプロパティとして扱います。ただし，検索条件に指定する場合は，「edmProp_OwnerId」と指定します。

(27)　edmProp_RawScoreプロパティ

ランキング検索した場合のスコアです。

検索する時に算出されて値が設定されます。ランキング検索時のスコアを取得するための形式的なプロパティです。スコアは，検索結果集合内で正規化されずに返されます。

(28)　edmProp_RelationTypeプロパティ

Relationshipオブジェクトを使用した関連の種類を定義します。ユーザプログラムで任意に設定できますが，0以下の値は設定できません。

(29)　edmProp_RenditionsCountプロパティ

一つの文書中に登録されているレンディションの数を表すカウンタです。マスタレンディションだけが登録されている場合，値は常に1になります。サブレンディションが登録されると，マスタレンディションと登録されたサブレンディションの数を合わせた値になります。

(30)　edmProp_Scoreプロパティ

ランキング検索した場合のスコアです。

検索する時に算出されて値が設定されます。ランキング検索時のスコアを取得するための形式的なプロパティです。スコアは，検索結果集合内で正規化されて返されます。

(31)　edmProp_StIndexプロパティ

全文検索用に登録した文書の全文データです。

このプロパティは，全文検索エンジンに対して，全文検索用の登録情報を参照することを示すためにあります。したがって，SELECT句に検索結果として取得するプロパティには指定できません。

このプロパティでは，構造指定検索を含む全文検索が実行できます。

(32)　edmProp_TextIndexプロパティ

全文検索用に登録した文書の全文データです。

このプロパティは，全文検索エンジンに対して，全文検索用の登録情報を参照することを示すためにあります。したがって，SELECT句に検索結果として取得するプロパティには指定できません。

このプロパティでは，プレーンテキストに対する全文検索が実行できます。

(33)　edmProp_VTContaineesプロパティ

ContainerVersionオブジェクトが構成管理の対象として含むContainableオブジェクトとの包含関係を表すVersionTraceableContainmentRelationshipオブジェクトのリストです。

(34)　edmProp_VTContainersプロパティ

ContainerVersionオブジェクトが構成管理の対象として含まれる上位のContainerとの包含関係を表すVersionTraceableContainmentRelationshipオブジェクトのリストです。

(35)　edmProp_VTConfigurationHistoryプロパティ

VersionTraceableContainmentRelationshipオブジェクトが指している包含される側のオブジェクトのバージョンを統合しているConfigurationHistoryオブジェクトです。

(36)　edmProp_VTModeプロパティ

包合するオブジェクトの最新バージョンを追跡するか（FLOATINGモード），バージョンを固定するか（FIXモード）を設定します。

(37)　edmProp_VTVersionSeriesプロパティ

VersionTraceableContainmentRelationshipオブジェクトが指している包含される側のオブジェクトのバージョンを管理しているVersionSeriesオブジェクトです。

付録C　クラスライブラリのメソッドで使用する構造体

クラスライブラリのメソッドでは，オブジェクトを作成したりプロパティを設定したりするときに，設定する情報を構造体として指定します。

また，既存のオブジェクトの情報やプロパティの値を取得する場合，情報を構造体として取得します。

ここでは，クラスライブラリのメソッドで指定する構造体について説明します。

＜この節の構成＞

付録C.1　オブジェクトの情報を設定，参照する構造体

付録C.2　検索に使用する構造体

付録C.3　構造体で指定する定数

付録C.1　オブジェクトの情報を設定，参照する構造体

ここでは，オブジェクトを作成，参照または更新するときに，オブジェクトの情報およびプロパティの情報を扱う構造体についてアルファベット順で説明します。

＜この項の構成＞

(1)　SDBR_CONTENTINFO構造体（コンテント情報構造体）

(2)　SDBR_CONTENTLIST構造体（コンテント情報リスト構造体）

(3)　SDBR_DMAINFO構造体（DMAオブジェクト生成用の構造体）

(4)　SDBR_DMAINFOLIST構造体（DMA情報リスト構造体）

(5)　SDBR_FILELINK_PATHINFO構造体（File Linkパス情報構造体）

(6)　SDBR_LINKEDOBJINFO構造体（リンク付きオブジェクト情報構造体）

(7)　SDBR_LINKEDOBJLIST構造体（リンク付きオブジェクトリスト構造体）

(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）

(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）

(10)　SDBR_PATHINFO構造体（ファイルパス情報構造体）

(11)　SDBR_PATHLIST構造体（ファイルパス情報リスト構造体）

(12)　SDBR_PROP構造体（プロパティ構造体）

(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）

(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）

(15)　SDBR_REFERENCE_PATHINFO構造体（リファレンスパス情報構造体）

(16)　SDBR_RELATIONINFO構造体（リレーション情報構造体）

(17)　SDBR_RELATIONLIST構造体（リレーションリスト構造体）

(18)　SDBR_RENDITION_COMMENTINFO構造体（レンディションコメント情報構造体）

(19)　SDBR_RENDITIONINFO構造体（レンディション情報構造体）

(20)　SDBR_RENDITIONLIST構造体（レンディションリスト構造体）

(21)　SDBR_VROBJINFO構造体（バージョン識別子付きオブジェクト情報構造体）

(22)　SDBR_VROBJLIST構造体（バージョン識別子付きオブジェクトリスト構造体）

(23)　SDBR_VTLINKEDOBJINFO構造体（構成管理リンク付きオブジェクト情報構造体）

(24)　SDBR_VTLINKEDOBJLIST構造体（構成管理リンク付きオブジェクトリスト構造体）

(25)　SDBR_VTOBJINFO構造体（構成管理オブジェクト情報構造体）

(26)　SDBR_VTOBJLIST構造体（構成管理オブジェクトリスト構造体）

(1)　SDBR_CONTENTINFO構造体（コンテント情報構造体）

説明

マルチファイル管理機能を使用する場合に，一つのコンテントの情報を指定したり，取得したりする場合に使用する構造体です。

形式

struct SDBR_CONTENTINFO {
 pDmaString_T   pComponentType;  //ファイルを識別する文字列
 pDmaString_T   pRetrievalName;  //ファイル名
 DmaUInteger32  lContentSize;    //コンテントのサイズ
};

メンバの説明

出力されるメンバの説明

pComponentType
格納しているコンテントのComponentTypeが設定されます。

pRetrievalName
格納しているコンテントのRetrievalNameが設定されます。

lContentSize
格納しているコンテントのサイズが設定されます。

入力するメンバの説明

CdbrDocument::GetContentInfoメソッドまたはCdbrVersionableDocument::GetContentInfoメソッドで取得した構造体を変更しないで，入力する構造体としてください。

この構造体を出力または入力するメソッド

この構造体を出力するメソッド

CdbrDocument::GetContentInfoメソッド

CdbrVersionableDocument::GetContentInfoメソッド

この構造体を入力するメソッド

CdbrDocument::GetContentAndLockメソッド

CdbrVersionableDocument::GetContentAndLockメソッド

(2)　SDBR_CONTENTLIST構造体（コンテント情報リスト構造体）

説明

マルチファイル管理機能を使用する場合に，マルチファイル文書の情報を指定したり，取得したりする場合に使用する構造体です。

形式

struct SDBR_CONTENTLIST {
 DmaInteger32        lCount;            //登録コンテント数
 SDBR_CONTENTINFO*   pItem;             //コンテント情報構造体の
                                        //ポインタ
 DmaInteger32        lValidMode;        //有効モード
 DmaBoolean          bIsMultiContents;  //マルチファイル識別
};

メンバの説明

出力されるメンバの説明

lCount
登録したコンテント数が設定されます。

pItem
すべてのコンテント情報を格納したSDBR_CONTENTINFO構造体のポインタが設定されます。

lValidMode
DocumentBrokerがシステムとして定義する値が設定されます。

bIsMultiContents
マルチファイル文書の場合，DMA_TRUEが設定されます。マルチファイル文書ではない場合，DMA_FALSEが設定されます。

入力するメンバの説明

CdbrDocument::GetContentInfoメソッドまたはCdbrVersionableDocument::GetContentInfoメソッドで取得した構造体を変更しないで，入力する構造体としてください。

この構造体を出力または入力するメソッド

この構造体を出力するメソッド

CdbrDocument::GetContentInfoメソッド

CdbrVersionableDocument::GetContentInfoメソッド

この構造体を入力するメソッド

CdbrDocument::GetContentAndLockメソッド

CdbrVersionableDocument::GetContentAndLockメソッド

(3)　SDBR_DMAINFO構造体（DMAオブジェクト生成用の構造体）

説明

クラスライブラリのオブジェクトを作成するときに，構成要素にするDMAオブジェクトの基になるDMAのクラスの情報を指定します。

なお，それぞれのDMAオブジェクトにプロパティを設定する場合は，プロパティリスト構造体（SDBR_PROPLIST構造体）を指定します。

また，マッピング定義情報に従ってXMLファイルからプロパティを抽出する場合，DMAオブジェクト生成用の情報が設定される構造体です。

形式

// DMAオブジェクト生成用の構造体
struct SDBR_DMAINFO {
 DmaId            ClassId;   //DMAオブジェクトのクラス識別子
 SDBR_PROPLIST    PropList;  //プロパティ情報のリスト
};

メンバの説明

出力されるメンバの説明

ClassId
DMAオブジェクトのクラス識別子が設定されます。

PropList
マッピング定義情報に従ってXMLファイルから抽出したプロパティのリストを格納したSDBR_PROPLIST構造体のアドレスが設定されます。

入力するメンバの説明

ClassId
新規に作成するDMAオブジェクトのクラス識別子を指定します。
作成するDMAオブジェクトと指定するクラス識別子の関係を次に示します。

表C-1　 DMAオブジェクトを作成する場合に指定するクラス識別子

作成するオブジェクト
指定するクラス識別子

CdbrConfiguratedReferentialContainerオブジェクト
1番目の要素としてdmaClass_ConfigurationHistoryクラスまたはそのサブクラスのクラス識別子，2番目の要素としてedmClass_ContainerVersionクラスまたはそのサブクラスのクラス識別子を指定します。
2番目の要素を省略した場合（メソッドの引数lDMAInfoListCountが1の場合）は，edmClass_ContainerVersionクラスを使用してDMAオブジェクトが作成されます。1番目の要素を省略した場合（メソッドの引数lDMAInfoListCountが0でpDMAInfoListがNULLの場合），edmClass_ContainerVersionクラスとdmaClass_ConfigurationHistoryクラスを使用してDMAオブジェクトが作成されます。

CdbrDocumentオブジェクト
dmaClass_DocVersionクラスまたはそのサブクラスのクラス識別子を指定します。
省略した場合（メソッドの引数lDMAInfoListCountが0でpDMAInfoListがNULLの場合），edmClass_VersionTracedComponentDocVersionクラスを使用してDMAオブジェクトが作成されます。

CdbrIndependentPersistenceオブジェクト
edmClass_IndependentPersistenceクラスまたはそのサブクラスのクラス識別子を指定します。
省略した場合（メソッドの引数lDMAInfoListCountが0でpDMAInfoListがNULLの場合），edmClass_IndependentPersistenceクラスを使用してDMAオブジェクトが作成されます。

CdbrPublicACLオブジェクト
edmClass_PublicACLクラスのクラス識別子を指定します。
省略した場合（メソッドの引数lDMAInfoListCountが0でpDMAInfoListがNULLの場合），edmClass_PublicACLクラスを使用してDMAオブジェクトが作成されます。

CdbrReferentialContainerオブジェクト
dmaClass_Containerクラスまたはそのサブクラスのクラス識別子を指定します。
省略した場合（メソッドの引数lDMAInfoListCountが0でpDMAInfoListがNULLの場合），dmaClass_Containerクラスを使用してDMAオブジェクトが作成されます。

CdbrVersionableDocumentオブジェクト
1番目の要素としてdmaClass_ConfigurationHistoryクラスまたはそのサブクラスのクラス識別子，2番目の要素としてdmaClass_DocVersionクラスまたはそのサブクラスのクラス識別子を指定します。
2番目の要素を省略した場合（メソッドの引数lDMAInfoListCountが1の場合），edmClass_VersionTracedComponentDocVersionクラスを使用してDMAオブジェクトが作成されます。1番目の要素を省略した場合（メソッドの引数lDMAInfoListCountが0でpDMAInfoListがNULLの場合），edmClass_VersionTracedComponentDocVersionクラスを使用してDocVersionオブジェクトが作成され，dmaClass_ConfigurationHistoryクラスを使用してConfigurationHistoryオブジェクトが作成されます。

CdbrVersionTraceableContainerオブジェクト
edmClass_ContainerVersionクラスまたはそのサブクラスのクラス識別子を指定します。
省略した場合（メソッドの引数lDMAInfoListCountが0でpDMAInfoListがNULLの場合），edmClass_ContainerVersionクラスを使用してDMAオブジェクトが作成されます。

PropList
オブジェクトの初期値として設定するプロパティを設定したSDBR_PROPLIST構造体のアドレスを指定します。

この構造体を出力または入力するメソッド

この構造体を出力するメソッド

CdbrXmlTranslator::GetDmaInfoListメソッド

この構造体を入力するメソッド

CdbrConfiguratedReferentialContainer::CreateObjectメソッド

CdbrDocument::CreateObjectメソッド

CdbrIndependentPersistence::CreateObjectメソッド

CdbrPublicACL::CreateObjectメソッド

CdbrReferentialContainer::CreateObjectメソッド

CdbrVersionableDocument::CreateObjectメソッド

CdbrVersionTraceableContainer::CreateObjectメソッド

(4)　SDBR_DMAINFOLIST構造体（DMA情報リスト構造体）

説明

マッピング定義情報に従ってXMLファイルからプロパティを抽出してDMA情報リスト（文書オブジェクトを作成するときのプロパティの初期値のリスト）を作成する場合に，DMA情報（SDBR_DMAINFO構造体）の個数とポインタが設定される構造体です。

形式

struct SDBR_DMAINFOLIST {
 DmaInteger32     lCount;     //DMAオブジェクトの情報の個数
 SDBR_DMAINFO*    pItem;      //DMAオブジェクトの情報
};

メンバの説明

lCount
DMAオブジェクトの情報の個数が設定されます。

pItem
DMAオブジェクトの情報がSDBR_DMAINFO構造体として設定されます。なお，設定される構造体の配列の要素数は，マッピング定義情報で指定したクラスの数と同じです。

この構造体を出力するメソッド

CdbrXmlTranslator::GetDmaInfoListメソッド

(5)　SDBR_FILELINK_PATHINFO構造体（File Linkパス情報構造体）

説明

File Link連携機能を使用する場合に，HiRDB File Linkで必要な情報を格納する構造体です。

File Link文書を登録または更新するときには，登録するファイルまたはディレクトリや登録先など，HiRDB File Linkが必要とする情報を指定します。File Link文書を取得するときには，取得先のクライアントのファイルパスまたはディレクトリパスを指定します。

形式

// File Linkパス情報構造体
struct SDBR_FILELINK_PATHINFO {
 pDmaString_T  pFilePath;          // 登録ファイルもしくは
                                   //   ディレクトリのURL
                                   // または取得先のファイルもしくは
                                   //   ディレクトリのURL
 pDmaString_T  pFamName;           // FAM名
 pDmaString_T  pFamFilePath;       // コンテント保管先パス
 DmaInteger32  lContentDeleteMode; // コンテント削除モード
 DmaInteger32  lFileNamingMode;    // コンテント名自動生成モード
};

メンバの説明

なお，文書の取得時には，メンバpFilePathの指定だけが有効になります。

pFilePath
文書の登録・更新時に，クライアントにあるファイルを登録または更新する場合は，登録するコンテントとして，クライアントにあるファイルまたはディレクトリのパス名を，URL形式で指定します。ファイルパスを指定した場合は，指定したファイルが登録されます。ディレクトリパスを指定した場合は，指定したディレクトリおよびそのサブディレクトリ下のすべてのファイルが登録されます。
文書の登録・更新時に，すでにHiRDB File Linkで管理されているデータをコンテントとして登録する場合は，NULLを指定します。
文書の取得時には，コンテントの取得先として，クライアントのファイルパスまたはディレクトリパスを指定します。

pFamName
HiRDB File Linkのflsetupコマンドの -famオプションで指定したFAM名を指定します。FAM名の詳細については，マニュアル「HiRDB File Link」を参照してください。

pFamFilePath
コンテント保管先のパスを指定します。保管先のパスの設定については，マニュアル「HiRDB File Link」を参照してください。

lContentDeleteMode
文書のコンテントをRemoveObjectメソッドまたはDeleteRenditionメソッドによって削除するときに，保管先のファイルの実体を削除することを指定します。必ず，DBR_CONTENTDELETE_SYNCを指定してください。

lFileNamingMode
文書のコンテントを登録するときに，保管先でのコンテント名を自動生成するかどうかを指定します。
自動生成機能を使用しない場合はDBR_FILENAMING_SPECIFYを指定してください。使用する場合はDBR_FILENAMING_AUTOを指定してください。

この構造体を出力するメソッド

CdbrDocument::AddRenditionメソッド

CdbrDocument::CreateObjectメソッド

CdbrDocument::GetContentAndLockメソッド

CdbrDocument::UpdateContentメソッド

CdbrDocument::UpdateContentAndRenditionTypeメソッド

CdbrVersionableDocument::AddRenditionメソッド

CdbrVersionableDocument::CreateObjectメソッド

CdbrVersionableDocument::GetContentAndLockメソッド

CdbrVersionableDocument::UpdateContentメソッド

CdbrVersionableDocument::UpdateContentAndRenditionTypeメソッド

(6)　SDBR_LINKEDOBJINFO構造体（リンク付きオブジェクト情報構造体）

説明

コンテナによってオブジェクト間の関連づけを設定している場合に，コンテナが包含しているオブジェクトの情報やリンク識別子などが設定される構造体です。また，包含しているオブジェクトのプロパティやリンクのプロパティ情報を取得する場合，プロパティリスト構造体（SDBR_PROPLIST構造体）が設定されます。

形式

struct SDBR_LINKEDOBJINFO{
 pDmaString_T   pOIID;        //オブジェクトのOIID
 DmaInteger32   lType;        //オブジェクトの種別
 pDmaString_T   pLinkId;      //リンク識別子
 SDBR_PROPLIST  PropList;     //オブジェクトのプロパティリスト
 SDBR_PROPLIST  LinkPropList; //リンクのプロパティリスト
};

メンバの説明

pOIID
コンテナが指しているオブジェクトのOIIDが設定されます。または，オブジェクトを指しているコンテナのOIIDが設定されます。

lType
オブジェクトの種別を表す値として，対応するクラスライブラリのクラスを示す定数が設定されます。定数とクラスライブラリのクラスの関係は，「付録C.3　構造体で指定する定数」を参照してください。

pLinkId
オブジェクトのリンク識別子が設定されます。

PropList
オブジェクトがメソッドの引数で指定したプロパティを持つ場合，プロパティ情報がSDBR_PROPLIST構造体として設定されます。

LinkPropList
オブジェクトのリンクがメソッドの引数で指定したプロパティを持つ場合，プロパティの識別子，型および値の一覧がSDBR_PROPLIST構造体として設定されます。

この構造体を出力するメソッド

CdbrConfiguratedReferentialContainer::GetContainableListメソッド

CdbrConfiguratedReferentialContainer::GetContainableListAndLockメソッド

CdbrContainable::GetContainerListメソッド

CdbrContainable::GetContainerListAndLockメソッド

CdbrReferentialContainer::GetContainableListメソッド

CdbrReferentialContainer::GetContainableListAndLockメソッド

(7)　SDBR_LINKEDOBJLIST構造体（リンク付きオブジェクトリスト構造体）

説明

リンク付きオブジェクト情報構造体（SDBR_LINKEDOBJINFO構造体）の個数とポインタが設定される構造体です。

形式

struct SDBR_LINKEDOBJLIST{
 DmaInteger32        lCount; //リンク付きオブジェクト情報の個数
 SDBR_LINKEDOBJINFO* pItem;  //リンク付きオブジェクト情報
};

メンバの説明

lCount
リンク付きオブジェクト情報を表すSDBR_LINKEDOBJINFO構造体の個数が設定されます。

pItem
SDBR_LINKEDOBJINFO構造体の先頭のアドレスへのポインタが設定されます。このとき，SDBR_LINKEDOBJINFO構造体の個数分の領域が確保されます。

この構造体を出力するメソッド

CdbrConfiguratedReferentialContainer::GetContainableListメソッド

CdbrConfiguratedReferentialContainer::GetContainableListAndLockメソッド

CdbrContainable::GetContainerListメソッド

CdbrContainable::GetContainerListAndLockメソッド

CdbrReferentialContainer::GetContainableListメソッド

CdbrReferentialContainer::GetContainableListAndLockメソッド

(8)　SDBR_OBJINFO構造体（オブジェクト情報構造体）

説明

オブジェクト間の情報が設定される構造体です。例えば，コンテナによってオブジェクト間の関連づけを設定している場合，指定したコンテナが包含しているオブジェクトの情報，または指定したオブジェクトが包含されているコンテナの情報が設定されます。

また，オブジェクトのプロパティ情報を取得する場合には，プロパティリスト構造体（SDBR_PROPLIST構造体）が設定されます。

形式

struct SDBR_OBJINFO {
 pDmaString_T     pOIID;      // オブジェクトのOIID
 DmaInteger32     lType;      // オブジェクトの種別
 SDBR_PROPLIST    PropList;   // プロパティリスト構造体
};

メンバの説明

pOIID
メソッドの実行結果となるオブジェクトのOIIDが設定されます。例えば，バージョン付きコンテナの場合は，指定したバージョンに対応するオブジェクトのOIIDが設定されます。
なお，次に示すメソッドではバージョン識別子が設定されます。
CdbrVersionable::GetVersionListメソッド
CdbrVersionable::GetVersionListAndLockメソッド

lType
オブジェクトの種別を表す値として，対応するクラスライブラリのクラスを示す定数が設定されます。定数とクラスライブラリのクラスの関係は，「付録C.3　構造体で指定する定数」を参照してください。
なお，次に示すメソッドではlTypeに相当する情報が設定されても，その内容は保証できません。
CdbrVersionable::GetVersionListメソッド
CdbrVersionable::GetVersionListAndLockメソッド

PropList
対象オブジェクトが，メソッドの引数で指定したプロパティを持つ場合，プロパティ情報がSDBR_PROPLIST構造体として設定されます。

この構造体を出力するメソッド

CdbrConfiguratedReferentialContainer::GetContainableListメソッド

CdbrConfiguratedReferentialContainer::GetContainableListAndLockメソッド

CdbrContainable::GetContainerListメソッド

CdbrContainable::GetContainerListAndLockメソッド

CdbrContainable::GetPublicACLListメソッド

CdbrContainable::GetPublicACLListAndLockメソッド

CdbrDocument::GetVersionableListメソッド

CdbrDocument::GetVersionableListAndLockメソッド

CdbrIndependentPersistence::GetPublicACLListメソッド

CdbrIndependentPersistence::GetPublicACLListAndLockメソッド

CdbrPublicACL::GetBindObjectListメソッド

CdbrPublicACL::GetBindObjectListAndLockメソッド

CdbrReferentialContainer::GetContainableListメソッド

CdbrReferentialContainer::GetContainableListAndLockメソッド

CdbrVersionable::GetPublicACLListメソッド

CdbrVersionable::GetPublicACLListAndLockメソッド

CdbrVersionable::GetVersionListメソッド

CdbrVersionable::GetVersionListAndLockメソッド

CdbrVersionTraceableContainer::GetVersionableListメソッド

CdbrVersionTraceableContainer::GetVersionableListAndLockメソッド

(9)　SDBR_OBJLIST構造体（オブジェクトリスト構造体）

説明

オブジェクト情報構造体（SDBR_OBJINFO構造体）の個数とポインタが設定される構造体です。

形式

struct SDBR_OBJLIST {
 DmaInteger32     lCount;    //オブジェクト情報の個数
 SDBR_OBJINFO*    pItem;     //オブジェクト情報
};

メンバの説明

lCount
取得したOBJINFO構造体の個数が設定されます。

pItem
SDBR_OBJINFO構造体の先頭のアドレスへのポインタが設定されます。このとき，SDBR_OBJINFO構造体の個数分の領域が確保されます。

この構造体を出力するメソッド

CdbrConfiguratedReferentialContainer::GetContainableListメソッド

CdbrConfiguratedReferentialContainer::GetContainableListAndLockメソッド

CdbrContainable::GetContainerListメソッド

CdbrContainable::GetContainerListAndLockメソッド

CdbrContainable::GetPublicACLListメソッド

CdbrContainable::GetPublicACLListAndLockメソッド

CdbrDocument::GetVersionableListメソッド

CdbrDocument::GetVersionableListAndLockメソッド

CdbrIndependentPersistence::GetPublicACLListメソッド

CdbrIndependentPersistence::GetPublicACLListAndLockメソッド

CdbrPublicACL::GetBindObjectListメソッド

CdbrPublicACL::GetBindObjectListAndLockメソッド

CdbrReferentialContainer::GetContainableListメソッド

CdbrReferentialContainer::GetContainableListAndLockメソッド

CdbrVersionable::GetPublicACLListメソッド

CdbrVersionable::GetPublicACLListAndLockメソッド

CdbrVersionable::GetVersionListメソッド

CdbrVersionable::GetVersionListAndLockメソッド

CdbrVersionTraceableContainer::GetVersionableListメソッド

CdbrVersionTraceableContainer::GetVersionableListAndLockメソッド

(10)　SDBR_PATHINFO構造体（ファイルパス情報構造体）

説明

マルチファイル管理機能を使用する場合に，一つのファイルの情報を指定する構造体です。

形式

struct SDBR_PATHINFO {
 pDmaString_T      pFilePath;        //ファイルのURL
 pDmaString_T      pComponentType;   //ファイルを識別する文字列
};

メンバの説明

pFilePath
ファイルのURLを指定します。"file://"で始まる文字列で指定してください。
URLの値からファイル名が抽出され，そのファイル名がデータベースに登録されます。

pComponentType
複数のファイルを識別するための任意の文字列を指定します。文書空間で使用する文字コード種別がUTF-8の場合，印刷可能なASCIIコードで記述してください。
NULLを指定した場合，データベースには空文字列が格納されます。
文字列長は，0～255（バイト）

この構造体を入力するメソッド

CdbrDocument::CreateObjectメソッド

CdbrDocument::UpdateContentメソッド

CdbrVersionableDocument::CreateObjectメソッド

CdbrVersionableDocument::UpdateContentメソッド

(11)　SDBR_PATHLIST構造体（ファイルパス情報リスト構造体）

説明

マルチファイル管理機能を使用する場合に，マルチファイル文書の複数のファイルのファイルパス情報を指定する構造体です。

形式

struct SDBR_PATHLIST {
 DmaInteger32        lCount;   //登録ファイル数
 SDBR_PATHINFO*      pItem;    //ファイルパス情報構造体のポインタ
};

メンバの説明

lCount
登録するファイルの数を指定します。指定できるのは，「1～メタ情報の初期設定コマンド（EDMInitMeta）で定義する最大要素数」の範囲の値です。なお，この範囲内の値であっても，BLOBに定義した最大サイズを超えた場合はエラーになります。

pItem
ファイルパス情報構造体のメンバを配列として確保した領域の先頭アドレスを指定します。

この構造体を入力するメソッド

CdbrDocument::CreateObjectメソッド

CdbrDocument::UpdateContentメソッド

CdbrVersionableDocument::CreateObjectメソッド

CdbrVersionableDocument::UpdateContentメソッド

(12)　SDBR_PROP構造体（プロパティ構造体）

説明

参照系メソッドによってオブジェクトのプロパティを参照するときに，取得したプロパティの情報が設定される構造体です。

また，更新系メソッドによってオブジェクトのプロパティを設定するときに，設定するプロパティの情報を指定する構造体です。

なお，プロパティ構造体（SDBR_PROP構造体）を入力に使用する場合，同じプロパティ識別子を指定したプロパティ構造体（SDBR_PROP構造体）をプロパティリスト構造体（SDBR_PROPLIST構造体）に複数指定した場合は，エラーになります。

形式

struct SDBR_PROP {
 DmaId              PropId;        //プロパティ識別子
 DmaInteger32       lType;         //データ型
 DmaInteger32       lCardinality;  //基本単位
 DmaInteger32       lCount;        //値の個数
 union {                           //プロパティの値
   pDmaBoolean      pbBoolean;     //Boolean型
   pDmaInteger32    plInteger32;   //Integer32型
   pDmaId           pId;           //ID型
   pDmapv           ppObject;      //Object型
   ppDmaString_T    ppString;      //String型
  } uniValue;
};

メンバの説明

出力されるメンバの説明

PropId
プロパティ識別子が設定されます。

lType
プロパティのデータ型が設定されます。設定される値を次に示します。
DMA_DATATYPE_BOOLEAN：Boolean型
DMA_DATATYPE_ID： ID型
DMA_DATATYPE_INTEGER32： Integer32型
DMA_DATATYPE_OBJECT：Object型
DMA_DATATYPE_STRING：String型

lCardinality
基本単位が設定されます。設定される値を次に示します。
DMA_CARDINALITY_SINGLE：Scalar（スカラー）型
DMA_CARDINALITY_ENUM：Enumeration（列挙）型
DMA_CARDINALITY_LIST：List（リスト）型
EDM_DMA_CARDINALITY_VARRAY：VariableArray（可変長配列）型

lCount
プロパティの値の要素数が設定されます。要素数は，lCardinalityの値に応じて設定されます。lCardinalityの値と設定される値を次に示します。
DMA_CARDINALITY_SINGLEの場合：１
DMA_CARDINALITY_ENUMまたはDMA_CARDINALITY_LISTの場合：０以上の値
EDM_DMA_CARDINALITY_VARRAYの場合：1

共用体uniValueのメンバ
プロパティの値は，共用体uniValueのメンバpbBoolean，plInteger32，pId，ppObject，ppStringのうち，lTypeに設定された型と名前が一致するものが示す領域に設定されます。

注意事項

lTypeがDMA_DATATYPE_OBJECTで，lCardinalityがEDM_DMA_CARDINALITY_VARRAYの場合，CdbrVariableArrayオブジェクトへのポインタを取得します。このポインタは，構造体をdbrDelete関数で削除すると，同時に解放または削除されますので，個別に解放する必要はありません。ただし，dbrDelete関数をコールしたあとで，このポインタは使用できません。

入力するメンバの説明

PropId
プロパティ識別子を指定します。
同じプロパティ識別子を指定したSDBR_PROP構造体をSDBR_PROPLIST構造体に複数指定した場合は，エラーになります。

lType
プロパティの型を示す値として，次の値を指定します。
DMA_DATATYPE_BOOLEAN：Boolean型
DMA_DATATYPE_ID： ID型
DMA_DATATYPE_INTEGER32： Integer32型
DMA_DATATYPE_OBJECT：Object型
DMA_DATATYPE_STRING：String型

lCardinality
基本単位として，次の値を指定します。
DMA_CARDINALITY_SINGLE：Scalar（スカラー）型
DMA_CARDINALITY_LIST：List（リスト）型
EDM_DMA_CARDINALITY_VARRAY：VariableArray（可変長配列）型

lCount
プロパティの値の要素数を指定します。要素数は，lCardinalityの値に応じて指定します。lCardinalityの値と指定する値を次に示します。
DMA_CARDINALITY_SINGLEの場合：この値は無視されます。
DMA_CARDINALITY_LISTの場合：０以上の値を指定します。
EDM_DMA_CARDINALITY_VARRAYの場合：1を指定します。

共用体uniValueのメンバ
プロパティの値は，共用体uniValueのメンバpbBoolean，plInteger32，pId，ppObject，ppStringのうち，lTypeに指定した型と名前が一致するものが示す領域に指定します。

この構造体を出力または入力するメソッド

この構造体を出力するメソッド

CdbrConfiguratedReferentialContainer::GetContainableListメソッド

CdbrConfiguratedReferentialContainer::GetContainableListAndLockメソッド

CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesメソッド

CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesAndLockメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListAndLockメソッド

CdbrContainable::GetContainerListメソッド

CdbrContainable::GetContainerListAndLockメソッド

CdbrContainable::GetPublicACLListメソッド

CdbrContainable::GetPublicACLListAndLockメソッド

CdbrDMA::GetPropertyValuesメソッド

CdbrDMA::GetPropertyValuesAndLockメソッド

CdbrDocument::GetRelationListメソッド

CdbrDocument::GetRelationListAndLockメソッド

CdbrDocument::GetRenditionListメソッド

CdbrDocument::GetRenditionListAndLockメソッド

CdbrDocument::GetVersionableListメソッド

CdbrDocument::GetVersionableListAndLockメソッド

CdbrIndependentPersistence::GetPublicACLListメソッド

CdbrIndependentPersistence::GetPublicACLListAndLockメソッド

CdbrPublicACL::GetBindObjectListメソッド

CdbrPublicACL::GetBindObjectListAndLockメソッド

CdbrReferentialContainer::GetContainableListメソッド

CdbrReferentialContainer::GetContainableListAndLockメソッド

CdbrReferentialContainer::GetLinkPropertyValuesメソッド

CdbrReferentialContainer::GetLinkPropertyValuesAndLockメソッド

CdbrSession::GetUserInfoメソッド

CdbrVersionable::GetPropertyValuesメソッド

CdbrVersionable::GetPropertyValuesAndLockメソッド

CdbrVersionable::GetPublicACLListメソッド

CdbrVersionable::GetPublicACLListAndLockメソッド

CdbrVersionable::GetVersionListメソッド

CdbrVersionable::GetVersionListAndLockメソッド

CdbrVersionableDocument::GetRelationListメソッド

CdbrVersionableDocument::GetRelationListAndLockメソッド

CdbrVersionableDocument::GetRenditionListメソッド

CdbrVersionableDocument::GetRenditionListAndLockメソッド

CdbrVersionTraceableContainer::GetVersionableListメソッド

CdbrVersionTraceableContainer::GetVersionableListAndLockメソッド

CdbrVersionTraceableContainer::GetVTContaineeListメソッド

CdbrVersionTraceableContainer::GetVTContaineeListAndLockメソッド

CdbrXmlTranslator::GetDmaInfoListメソッド

この構造体を入力するメソッド

CdbrConfiguratedReferentialContainer::CreateObjectメソッド

CdbrConfiguratedReferentialContainer::Linkメソッド

CdbrConfiguratedReferentialContainer::LinkAndLockメソッド

CdbrConfiguratedReferentialContainer::LinkVTFixメソッド

CdbrConfiguratedReferentialContainer::LinkVTFixAndLockメソッド

CdbrConfiguratedReferentialContainer::LinkVTFloatメソッド

CdbrConfiguratedReferentialContainer::LinkVTFloatAndLockメソッド

CdbrConfiguratedReferentialContainer::PutLinkPropertyValuesメソッド

CdbrDMA::PutPropertyValuesメソッド

CdbrDocument::AddRenditionメソッド

CdbrDocument::CreateObjectメソッド

CdbrDocument::CreateRelationメソッド

CdbrDocument::PutRelationPropertyValuesメソッド

CdbrDocument::PutRenditionPropertyValuesメソッド

CdbrIndependentPersistence::CreateObjectメソッド

CdbrPublicACL::CreateObjectメソッド

CdbrReferentialContainer::CreateObjectメソッド

CdbrReferentialContainer::Linkメソッド

CdbrReferentialContainer::LinkAndLockメソッド

CdbrReferentialContainer::PutLinkPropertyValuesメソッド

CdbrVersionable::PutPropertyValuesメソッド

CdbrVersionableDocument::AddRenditionメソッド

CdbrVersionableDocument::CreateObjectメソッド

CdbrVersionableDocument::CreateRelationメソッド

CdbrVersionableDocument::PutRelationPropertyValuesメソッド

CdbrVersionableDocument::PutRenditionPropertyValuesメソッド

CdbrVersionTraceableContainer::CreateObjectメソッド

CdbrVersionTraceableContainer::LinkVTFixメソッド

CdbrVersionTraceableContainer::LinkVTFixAndLockメソッド

CdbrVersionTraceableContainer::LinkVTFloatメソッド

CdbrVersionTraceableContainer::LinkVTFloatAndLockメソッド

(13)　SDBR_PROPDEF構造体（プロパティ定義情報構造体）

説明

オブジェクトのプロパティを参照するときに，参照するプロパティのプロパティ識別子を指定する構造体です。

形式

struct SDBR_PROPDEF {
 DmaId        PropId;        // プロパティ識別子
};

メンバの説明

PropId
プロパティ識別子を指定します。

この構造体を入力するメソッド

CdbrConfiguratedReferentialContainer::GetContainableListメソッド

CdbrConfiguratedReferentialContainer::GetContainableListAndLockメソッド

CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesメソッド

CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesAndLockメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListAndLockメソッド

CdbrContainable::GetContainerListメソッド

CdbrContainable::GetContainerListAndLockメソッド

CdbrContainable::GetPublicACLListメソッド

CdbrContainable::GetPublicACLListAndLockメソッド

CdbrDMA::GetPropertyValuesメソッド

CdbrDMA::GetPropertyValuesAndLockメソッド

CdbrDocument::GetRelationListメソッド

CdbrDocument::GetRelationListAndLockメソッド

CdbrDocument::GetRenditionListメソッド

CdbrDocument::GetRenditionListAndLockメソッド

CdbrDocument::GetVersionableListメソッド

CdbrDocument::GetVersionableListAndLockメソッド

CdbrIndependentPersistence::GetPublicACLListメソッド

CdbrIndependentPersistence::GetPublicACLListAndLockメソッド

CdbrPublicACL::GetBindObjectListメソッド

CdbrPublicACL::GetBindObjectListAndLockメソッド

CdbrReferentialContainer::GetContainableListメソッド

CdbrReferentialContainer::GetContainableListAndLockメソッド

CdbrReferentialContainer::GetLinkPropertyValuesメソッド

CdbrReferentialContainer::GetLinkPropertyValuesAndLockメソッド

CdbrSession::GetUserInfoメソッド

CdbrVersionable::GetPropertyValuesメソッド

CdbrVersionable::GetPropertyValuesAndLockメソッド

CdbrVersionable::GetPublicACLListメソッド

CdbrVersionable::GetPublicACLListAndLockメソッド

CdbrVersionable::GetVersionListメソッド

CdbrVersionable::GetVersionListAndLockメソッド

CdbrVersionableDocument::GetRelationListメソッド

CdbrVersionableDocument::GetRelationListAndLockメソッド

CdbrVersionableDocument::GetRenditionListメソッド

CdbrVersionableDocument::GetRenditionListAndLockメソッド

CdbrVersionTraceableContainer::GetVersionableListメソッド

CdbrVersionTraceableContainer::GetVersionableListAndLockメソッド

CdbrVersionTraceableContainer::GetVTContaineeListメソッド

CdbrVersionTraceableContainer::GetVTContaineeListAndLockメソッド

(14)　SDBR_PROPLIST構造体（プロパティリスト構造体）

説明

参照系メソッドによってオブジェクトのプロパティを参照するときに，プロパティ構造体（SDBR_PROP構造体）の個数とポインタが設定される構造体です。

また，更新系メソッドによってオブジェクトのプロパティを設定するときに，プロパティ構造体（SDBR_PROP構造体）とその個数を指定する構造体です。なお，プロパティを設定する場合，同じプロパティ識別子を指定したプロパティ構造体（SDBR_PROP構造体）をプロパティリスト構造体（SDBR_PROPLIST構造体）に複数指定した場合は，エラーになります。

形式

struct SDBR_PROPLIST{
 DmaInteger32    lCount;    //プロパティ情報の個数
 SDBR_PROP*      pItem;     //プロパティ情報
};

メンバの説明

出力されるメンバの説明

lCount
取得したSDBR_PROP構造体の個数が設定されます。取得する必要がある値がデータベースに設定されていないなどで，プロパティをまったく取得しなかった場合，0が設定されます。

pItem
プロパティの識別子と値が格納されたSDBR_PROP構造体の先頭のアドレスへのポインタが設定されます。プロパティをまったく取得しなかった場合，NULLが設定されます。
このとき，SDBR_PROP構造体の個数分の領域が確保されます。

入力するメンバの説明

lCount
pItemに指定するプロパティ情報の個数を指定します。CreateObjectメソッドをコールするときに0を指定した場合は，プロパティの値は設定されません。負の数を指定した場合は，エラーになります。

pItem
初期値として設定するプロパティの識別子と値を格納したSDBR_PROP構造体の先頭のアドレスを指定します。NULLを指定した場合，プロパティの値は設定されません。
なお，lCountが正の整数のときにpItemにNULLを指定すると，エラーになります。

この構造体を出力または入力するメソッド

この構造体を出力するメソッド

CdbrConfiguratedReferentialContainer::GetContainableListメソッド

CdbrConfiguratedReferentialContainer::GetContainableListAndLockメソッド

CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesメソッド

CdbrConfiguratedReferentialContainer::GetLinkPropertyValuesAndLockメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListAndLockメソッド

CdbrContainable::GetContainerListメソッド

CdbrContainable::GetContainerListAndLockメソッド

CdbrContainable::GetPublicACLListメソッド

CdbrContainable::GetPublicACLListAndLockメソッド

CdbrDMA::GetPropertyValuesメソッド

CdbrDMA::GetPropertyValuesAndLockメソッド

CdbrDocument::GetRelationListメソッド

CdbrDocument::GetRelationListAndLockメソッド

CdbrDocument::GetRenditionListメソッド

CdbrDocument::GetRenditionListAndLockメソッド

CdbrDocument::GetVersionableListメソッド

CdbrDocument::GetVersionableListAndLockメソッド

CdbrIndependentPersistence::GetPublicACLListメソッド

CdbrIndependentPersistence::GetPublicACLListAndLockメソッド

CdbrPublicACL::GetBindObjectListメソッド

CdbrPublicACL::GetBindObjectListAndLockメソッド

CdbrReferentialContainer::GetContainableListメソッド

CdbrReferentialContainer::GetContainableListAndLockメソッド

CdbrReferentialContainer::GetLinkPropertyValuesメソッド

CdbrReferentialContainer::GetLinkPropertyValuesAndLockメソッド

CdbrSession::GetUserInfoメソッド

CdbrVersionable::GetPropertyValuesメソッド

CdbrVersionable::GetPropertyValuesAndLockメソッド

CdbrVersionable::GetPublicACLListメソッド

CdbrVersionable::GetPublicACLListAndLockメソッド

CdbrVersionable::GetVersionListメソッド

CdbrVersionable::GetVersionListAndLockメソッド

CdbrVersionableDocument::GetRelationListメソッド

CdbrVersionableDocument::GetRelationListAndLockメソッド

CdbrVersionableDocument::GetRenditionListメソッド

CdbrVersionableDocument::GetRenditionListAndLockメソッド

CdbrVersionTraceableContainer::GetVersionableListメソッド

CdbrVersionTraceableContainer::GetVersionableListAndLockメソッド

CdbrVersionTraceableContainer::GetVTContaineeListメソッド

CdbrVersionTraceableContainer::GetVTContaineeListAndLockメソッド

CdbrXmlTranslator::GetDmaInfoListメソッド

この構造体を入力するメソッド

CdbrConfiguratedReferentialContainer::CreateObjectメソッド

CdbrConfiguratedReferentialContainer::Linkメソッド

CdbrConfiguratedReferentialContainer::LinkAndLockメソッド

CdbrConfiguratedReferentialContainer::LinkVTFixメソッド

CdbrConfiguratedReferentialContainer::LinkVTFixAndLockメソッド

CdbrConfiguratedReferentialContainer::LinkVTFloatメソッド

CdbrConfiguratedReferentialContainer::LinkVTFloatAndLockメソッド

CdbrConfiguratedReferentialContainer::PutLinkPropertyValuesメソッド

CdbrDMA::PutPropertyValuesメソッド

CdbrDocument::AddRenditionメソッド

CdbrDocument::CreateObjectメソッド

CdbrDocument::CreateRelationメソッド

CdbrDocument::PutRelationPropertyValuesメソッド

CdbrDocument::PutRenditionPropertyValuesメソッド

CdbrIndependentPersistence::CreateObjectメソッド

CdbrPublicACL::CreateObjectメソッド

CdbrReferentialContainer::CreateObjectメソッド

CdbrReferentialContainer::Linkメソッド

CdbrReferentialContainer::LinkAndLockメソッド

CdbrReferentialContainer::PutLinkPropertyValuesメソッド

CdbrVersionable::PutPropertyValuesメソッド

CdbrVersionableDocument::AddRenditionメソッド

CdbrVersionableDocument::CreateObjectメソッド

CdbrVersionableDocument::CreateRelationメソッド

CdbrVersionableDocument::PutRelationPropertyValuesメソッド

CdbrVersionableDocument::PutRenditionPropertyValuesメソッド

CdbrVersionTraceableContainer::CreateObjectメソッド

CdbrVersionTraceableContainer::LinkVTFixメソッド

CdbrVersionTraceableContainer::LinkVTFixAndLockメソッド

CdbrVersionTraceableContainer::LinkVTFloatメソッド

CdbrVersionTraceableContainer::LinkVTFloatAndLockメソッド

(15)　SDBR_REFERENCE_PATHINFO構造体（リファレンスパス情報構造体）

説明

リファレンスファイル管理機能を使用する場合に，リファレンスファイル管理機能で必要な情報が設定される構造体です。

形式

// リファレンスパス情報構造体
struct SDBR_REFERENCE_PATHINFO {
 DmaInteger32  lContentOperateMode;  // 操作モード
 pDmaString_T  pEntry;            // ファイルのパスおよびロケーション
 pDmaString_T  pTargetPath;       // コンテント格納先パス
 pDmaString_T  pDeleteRootPath;   // 削除ディレクトリのルートパス
};

メンバの説明

lContentOperateMode
リファレンスパス情報構造体で指定するパス操作モードを指定します。リファレンスパス情報構造体で指定する内容は，この指定に基づき，チェックされます。コンテントロケーションをコンテントの相対パスで管理する場合は，DBR_OPERATEMODE_USER_RELATIVE_CONTENTを指定します。コンテントがないオブジェクトを作成する場合は，DBR_OPERATEMODE_NONEを指定します。

pEntry
文書の作成時に登録するコンテントのパス，またはコンテント取得時のコンテントのダウンロード先のパスを，URL形式で指定します。なお，CdbrSession::SetReferencePathで指定したコンテント格納先ベースパス，pTargetPath，DocumentBrokerがコンテントを管理するためのディレクトリ（35バイト），およびpEntryで指定したファイル名を合わせた文字列長（パスの区切り文字も含む）が，Windowsの場合1～259（バイト），AIXの場合1～1022（バイト）となるように指定してください。また，ファイルURLから切り出したファイル名長は，1～255（バイト）としてください。

pTargetPath
コンテントの登録先となるサーバマシン上のディレクトリのパスを指定します。pTargetPathを指定するときの注意事項を次に示します。
●DocumentSpace構成定義ファイルのReferenceStorageModeエントリにOriginを指定した場合
コンテントロケーション（ContentLocationプロパティ）には，このメンバで指定された文字列に，DocumentBrokerがコンテントを管理するためのディレクトリおよびpEntryで指定されたファイル名が結合されて格納されます。このとき，"/"（半角）を区切り文字として設定します。CdbrSession::SetReferencePathで指定したコンテント格納先ベースパス，pTargetPathで指定したコンテント格納先パス，DocumentBrokerがコンテントを管理するためのディレクトリ（35バイト），およびpEntryで指定したファイル名を合わせた文字列長（パスの区切り文字も含む）が，Windowsのときは1～259（バイト），AIXのときは1～1022（バイト）となるように指定してください。
●DocumentSpace構成定義ファイルのReferenceStorageModeエントリにDivideを指定した場合
コンテントロケーション（ContentLocationプロパティ）には，このメンバで指定された文字列に，DocumentBrokerがコンテントを管理するためのディレクトリおよびDocumentBrokerが指定するファイル名が結合されて格納されます。このとき，"/"（半角）を区切り文字として設定します。CdbrSession::SetReferencePathで指定したコンテント格納先ベースパス，pTargetPathで指定したコンテント格納先パス，DocumentBrokerがコンテントを管理するためのディレクトリ（6バイト），およびDocumentBrokerが指定するファイル名（最大59バイト）を合わせた文字列長（パスの区切り文字も含む）が，Windowsのときは1～259（バイト），AIXのときは1～1022（バイト）となるように指定してください。
また，ファイルURLから切り出したファイル名長は，1～255（バイト）としてください。なお，文書空間で使用する文字コード種別がUTF-8の場合，印刷可能なASCIIコードで記述できる値を指定してください。

pDeleteRootPath
文書を削除する場合，登録したコンテントの削除と同時にコンテントを格納したディレクトリを削除するときは，削除するディレクトリのルートパスを指定します。ただし，この指定は，コンテントを登録したオブジェクトの場合だけ有効になります。ディレクトリの削除は，コンテントロケーションで示されるパス上の格納ディレクトリから，この引数で指定されたディレクトリの下位のディレクトリまでの間のディレクトリが，削除の対象となります。最下位層のディレクトリから順に削除し，エラーとなった時点で処理を終了します。この指定が，コンテントロケーションのパスと一致していない場合，エラーになります。NULLを指定した場合，登録されているコンテントおよびDocumentBrokerがコンテントを管理するためのディレクトリが削除されます。
パス長は，Windowsの場合1～259（バイト），AIXの場合1～1022（バイト）で指定してください。指定できるパスは，CdbrSession::SetReferencePathメソッドで指定したコンテント格納先ベースパスから，コンテント格納先ベースパスとpTargetPathで指定したコンテント格納先パス（DocumentBrokerがコンテントを管理するためのディレクトリを含まない）の間のパスです。コンテント格納先ベースパスより上位のパスおよびDocumentBrokerがコンテントを管理するためのディレクトリは指定できません。なお，文書空間で使用する文字コード種別がUTF-8の場合，印刷可能なASCIIコードで記述できる値を指定してください。

この構造体を出力するメソッド

CdbrDMA::RemoveObjectメソッド

CdbrDocument::AddRenditionメソッド

CdbrDocument:: ConvertContentTypeメソッド

CdbrDocument::CreateObjectメソッド

CdbrDocument::GetContentAndLockメソッド

CdbrDocument::UpdateContentAndRenditionTypeメソッド

CdbrVersionableDocument::AddRenditionメソッド

CdbrVersionableDocument::ConvertContentTypeメソッド

CdbrVersionableDocument::CreateObjectメソッド

CdbrVersionableDocument::GetContentAndLockメソッド

CdbrVersionableDocument::UpdateContentAndRenditionTypeメソッド

(16)　SDBR_RELATIONINFO構造体（リレーション情報構造体）

説明

文書間リレーション情報の一覧を取得した場合に，個々のリレーションに関する情報が設定される構造体です。

形式

// リレーション情報構造体
struct SDBR_RELATIONINFO {
 pDmaString_T   pOIID;       //文書オブジェクトのOIID
 DmaInteger32   lType;       //オブジェクトの種別
 pDmaString_T   pRelId;      //リレーション識別子
 SDBR_PROPLIST  PropList;    //オブジェクトのプロパティリスト
 SDBR_PROPLIST  RelPropList; //リレーションのプロパティリスト
}

メンバの説明

pOIID
文書を表すオブジェクトのOIIDが設定されます。

lType
オブジェクトの種別を表す値として，対応するクラスライブラリのクラスを示す定数が設定されます。定数とクラスライブラリのクラスの関係は，「付録C.3　構造体で指定する定数」を参照してください。

pRelId
リレーション識別子が設定されます。

PropList
オブジェクトがメソッドの引数pPropDefListで指定されたプロパティを持つ場合，プロパティの識別子，型，および値の一覧が，SDBR_PROPLIST構造体として設定されます。

RelPropList
リレーションがメソッドの引数pRelLinkPropDefListで指定されたプロパティを持つ場合，プロパティの識別子，型，および値の一覧が，SDBR_PROPLIST構造体として設定されます。

なお，リレーション先のオブジェクトが削除されていてリレーション情報だけが残っている場合，pOIID = NULL，lType = DBR_CLASS_UNKNOWN，PropList.lCount = 0，PropList.pItem = NULLになり，pRelIdとRelPropListだけに正当な値が設定されます。

この構造体を出力するメソッド

CdbrDocument::GetRelationListメソッド

CdbrDocument::GetRelationListAndLockメソッド

CdbrVersionableDocument::GetRelationListメソッド

CdbrVersionableDocument::GetRelationListAndLockメソッド

(17)　SDBR_RELATIONLIST構造体（リレーションリスト構造体）

説明

文書間リレーション情報の一覧を取得した場合に，リレーション情報構造体（SDBR_RELATIONINFO構造体）の個数とそのポインタが設定される構造体です。

形式

// リレーションリスト構造体
struct SDBR_RELATIONLIST {
 DmaInteger32       lCount; //リレーションしている数
 SDBR_RELATIONINFO* pItem;  //リレーション情報構造体へのポインタ
}

メンバの説明

lCount
文書間リレーション情報である，SDBR_RELATIONINFO構造体の個数が設定されます。

pItem
SDBR_RELATIONINFO構造体へのポインタが設定されます。この領域は，SDBR_RELATIONINFO構造体の個数分確保されます。

この構造体を出力するメソッド

CdbrDocument::GetRelationListメソッド

CdbrDocument::GetRelationListAndLockメソッド

CdbrVersionableDocument::GetRelationListメソッド

CdbrVersionableDocument::GetRelationListAndLockメソッド

(18)　SDBR_RENDITION_COMMENTINFO構造体（レンディションコメント情報構造体）

説明

コンテント変換格納機能を使用する場合に，追加するサブレンディションに付与するコメントの情報をコメント情報構造体で指定します。

形式

// レンディションコメント情報構造体
struct SDBR_RENDITION_COMMENTINFO {
 DmaBoolean      bIsInvestSourceComment; // 変換元コメント付与フラグ
 DmaInteger32    lInvestMode;            // コメント付与方式
 pDmaString_T    pRenditionComment;      // レンディションコメント
};

メンバの説明

bIsInvestSourceComment
pRenditionCommentで指定するレンディションコメントを変換前のレンディションに付与するか，変換後のレンディションに付与するかを指定します。
・DMA_TRUE
変換前のレンディションにコメントを付与します。
・DMA_FALSE
変換後のレンディションにコメントを付与します。
ユティリティ製品を使用する場合などにマスタレンディションのレンディションタイプを変更したくない場合などでは，bIsChangeMaster とbIsInvestSourceCommentの指定によりサブレンディションにコメントを付与します。

lInvestMode
コメントの付与方式を指定します。
・DBR_INVESTMODE_APPEND
レンディションタイプの末尾にコメントを追加します。
・DBR_INVESTMODE_REPLACE
レンディションタイプの末尾にコメントがある場合，コメント部分を指定されたコメントで置き換えます。複数のコメントが存在する場合は，末尾のコメントを置き換えます。コメントがない場合は，レンディションタイプの末尾にコメントを追加します。

pRenditionComment
レンディションに付与するレンディションコメントを指定します。コメントの指定には，コンテントタイプを表す文字列を指定することを推奨します。レンディションタイプとコメントの間には１バイトのスペースが設定されます。NULLを指定した場合は，DocumentBrokerが自動的にコメント（”edms-cnv”）を付与します。空文字列（""）は指定できません。
指定するコメントは，変換するレンディションのレンディションタイプの文字列長とレンディションコメントの文字列長を合わせて255バイト以内にしてください。255バイトを超えた場合は，DMARC_BAD_PARAMETERのエラーとなります。なお，レンディションコメントには，印刷可能なASCIIコードで記述できる値を指定してください。

この構造体を入力するメソッド

CdbrDocument:: ConvertContentTypeメソッド

CdbrVersionableDocument::ConvertContentTypeメソッド

(19)　SDBR_RENDITIONINFO構造体（レンディション情報構造体）

説明

マルチレンディション文書のレンディション一覧を取得した場合に，個々のレンディションに関する情報が設定される構造体です。この構造体の配列要素の1番目に格納されるのは，マスタレンディションに関する情報です。サブレンディションの情報は二番目以降に格納されます。

形式

// レンディション情報構造体
struct SDBR_RENDITIONINFO {
 pDmaString_T  pRenditionType; //RenditionTypeを表す文字列
 SDBR_PROPLIST PropList;       //プロパティリスト構造体
};

メンバの説明

pRenditionType
RenditionTypeを表す文字列が設定されます。サブレンディションのRenditionTypeは必ず設定されます。

PropList
オブジェクトがメソッドの引数pPropDefListで指定されたプロパティを持つ場合，そのプロパティの個数，プロパティ識別子，型，および値の一覧が，SDBR_PROPLIST構造体として設定されます。

この構造体を出力するメソッド

CdbrDocument::GetRenditionListメソッド

CdbrDocument::GetRenditionListAndLockメソッド

CdbrVersionableDocument::GetRenditionListメソッド

CdbrVersionableDocument::GetRenditionListAndLockメソッド

(20)　SDBR_RENDITIONLIST構造体（レンディションリスト構造体）

説明

マルチレンディション文書のレンディション一覧を取得した場合に，レンディション情報構造体（SDBR_RENDITIONINFO構造体）の個数とそのポインタが設定される構造体です。

形式

// レンディションリスト構造体
struct SDBR_RENDITIONLIST {
 DmaInteger32         lCount;  //レンディション情報の数
 SDBR_RENDITIONINFO*  pItem;   //レンディション情報構造体
};

メンバの説明

lCount
取得したレンディション情報構造体である，SDBR_RENDITIONINFO構造体の個数が設定されます。

pItem
レンディション情報構造体（SDBR_RENDITIONINFO構造体）の配列の先頭アドレスが設定されます。この領域は，SDBR_RENDITIONINFO構造体の個数分確保されます。

この構造体を出力するメソッド

CdbrDocument::GetRenditionListメソッド

CdbrDocument::GetRenditionListAndLockメソッド

CdbrVersionableDocument::GetRenditionListメソッド

CdbrVersionableDocument::GetRenditionListAndLockメソッド

(21)　SDBR_VROBJINFO構造体（バージョン識別子付きオブジェクト情報構造体）

説明

指定したオブジェクトを1バージョンとして包含しているバージョン管理オブジェクト（CdbrVersionableクラスのサブクラスのオブジェクト）の一覧を取得する時に，そのバージョン管理オブジェクトの情報が設定される構造体です。同時に，メソッドをコールしたオブジェクトがバージョン管理オブジェクトのどのバージョンに当たるかを示すバージョン識別子も取得できます。

形式

// バージョン識別子付きオブジェクト情報構造体
struct SDBR_VROBJINFO {
 pDmaString_T     pOIID;        // オブジェクトのOIID
 DmaInteger32     lType;        // オブジェクトの種別
 pDmaString_T     pVersionId;   // バージョン識別子
 SDBR_PROPLIST    PropList;     // プロパティリスト構造体
};

メンバの説明

pOIID
オブジェクトのOIIDが設定されます。

lType
オブジェクトの種別を表す値として，対応するクラスライブラリのクラスを示す定数が設定されます。定数とクラスライブラリのクラスの関係は，「付録C.3　構造体で指定する定数」を参照してください。

pVersionId
バージョン識別子が設定されます。

PropList
オブジェクトがメソッドの引数で指定されたプロパティを持つ場合，プロパティリスト（SDBR_PROPLIST構造体）が設定されます。

この構造体を出力するメソッド

CdbrDocument::GetVersionableListメソッド

CdbrDocument::GetVersionableListAndLockメソッド

CdbrVersionTraceableContainer::GetVersionableListメソッド

CdbrVersionTraceableContainer::GetVersionableListAndLockメソッド

(22)　SDBR_VROBJLIST構造体（バージョン識別子付きオブジェクトリスト構造体）

説明

バージョン識別子付きオブジェクト情報構造体（SDBR_VROBJINFO構造体）の個数とポインタが設定される構造体です。

形式

// バージョン識別子付きオブジェクトリスト構造体
struct SDBR_VROBJLIST {
 DmaInteger32       lCount;
 SDBR_VROBJINFO*    pItem;
};

メンバの説明

lCount
バージョン識別子付きオブジェクト構造体である，SDBR_VROBJINFO構造体の個数が設定されます。

pItem
SDBR_VROBJINFO構造体へのポインタが設定されます。この領域はSDBR_VROBJINFO構造体の個数分確保されます。

この構造体を出力するメソッド

CdbrDocument::GetVersionableListメソッド

CdbrDocument::GetVersionableListAndLockメソッド

CdbrVersionTraceableContainer::GetVersionableListメソッド

CdbrVersionTraceableContainer::GetVersionableListAndLockメソッド

(23)　SDBR_VTLINKEDOBJINFO構造体（構成管理リンク付きオブジェクト情報構造体）

説明

バージョン付きコンテナが構成管理しているオブジェクトと，そのオブジェクトを関連づけているリンクの情報が設定される構造体です。

形式

struct SDBR_VTLINKEDOBJINFO{
 pDmaString_T  pOIID;        //オブジェクトのOIID
 pDmaString_T  pVerOIID;     //バージョントレースの対象になる
                             // オブジェクトのOIID
 pDmaString_T  pLinkID;      //リンク識別子
 DmaInteger32  lTraceMode;   //構成管理モード
 DmaInteger32  lType;        //オブジェクトの種別
 SDBR_PROPLIST PropList;     //プロパティリスト
 SDBR_PROPLIST LinkPropList; //リンクのプロパティリスト
};

メンバの説明

pOIID
指している構成要素のバージョン（構成管理モードがFLOATINGモードの場合は最新のバージョン，FIXモードの場合は固定のバージョン）に対応するオブジェクトのOIIDが設定されます。DMAオブジェクトでは，DocVersionオブジェクトのOIIDまたはContainerVersionオブジェクトのOIIDに該当します。

pVerOIID
構成要素のOIIDが設定されます。DMAオブジェクトでは，ConfigurationHistoryオブジェクトのOIIDに該当します。

pLinkID
対応する構成管理型の関連づけのリンク識別子が設定されます。

lTraceMode
オブジェクトのバージョンが固定されているかどうかが設定されます。バージョンが固定されている（FIXモード）場合はDBR_MODE_FIXが，バージョンが固定されていない（FLOATINGモード）場合はDBR_MODE_UNFIXが設定されます。

lType
オブジェクトの種別を表す値として，対応するクラスライブラリのクラスを示す定数が設定されます。定数とクラスライブラリのクラスの関係は，「付録C.3　構造体で指定する定数」を参照してください。

PropList
オブジェクトがメソッドの引数で指定したプロパティを持つ場合，プロパティ情報のリスト（SDBR_PROPLIST構造体）が設定されます。

LinkPropList
リンクがメソッドの引数で指定したプロパティを持つ場合，プロパティ情報のリスト（SDBR_PROPLIST構造体）が設定されます。

この構造体を出力するメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListAndLockメソッド

CdbrVersionTraceableContainer::GetVTContaineeListメソッド

CdbrVersionTraceableContainer::GetVTContaineeListAndLockメソッド

(24)　SDBR_VTLINKEDOBJLIST構造体（構成管理リンク付きオブジェクトリスト構造体）

説明

バージョン付きコンテナが構成管理をしているオブジェクトの情報と関連づけているリンクの情報を参照するときに，構成管理リンク付きオブジェクト情報構造体（SDBR_VTLINKEDOBJINFO構造体）の個数とポインタが設定される構造体です。

形式

struct SDBR_VTLINKEDOBJLIST{
 DmaInteger32          lCount; //リンク付きオブジェクト情報の個数
 SDBR_VTLINKEDOBJINFO* pItem;  //リンク付きオブジェクト情報
};

メンバの説明

lCount
取得したSDBR_VTLINKEDOBJLIST構造体の個数が格納されます。

pItem
SDBR_VTLINKEDOBJINFO構造体の先頭のアドレスへのポインタが格納されます。このとき，lCountに設定されたSDBR_VTLINKEDOBJINFO構造体の個数分の領域が確保されます。

この構造体を出力するメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListAndLockメソッド

CdbrVersionTraceableContainer::GetVTContaineeListメソッド

CdbrVersionTraceableContainer::GetVTContaineeListAndLockメソッド

(25)　SDBR_VTOBJINFO構造体（構成管理オブジェクト情報構造体）

説明

バージョン付きコンテナが構成管理しているオブジェクトの情報が設定される構造体です。

形式

struct SDBR_VTOBJINFO{
 pDmaString_T  pOIID;      //オブジェクトのOIID
 pDmaString_T  pVerOIID;   //バージョントレースの対象になる
                           // オブジェクトのOIID
 pDmaString_T  pLinkID;    //オブジェクトのリンク識別子
 DmaInteger32  lTraceMode; //構成管理モード
 DmaInteger32  lType;      //オブジェクトの種別
 SDBR_PROPLIST PropList;   //プロパティ情報のリスト
};

メンバの説明

pOIID
指している構成要素のバージョン（構成管理モードがFLOATINGモードの場合は最新のバージョン，FIXモードの場合は固定のバージョン）に対応するオブジェクトのOIIDが設定されます。DMAオブジェクトでは，DocVersionオブジェクトのOIIDまたはContainerVersionオブジェクトのOIIDに該当します。

pVerOIID
構成要素のOIIDが設定されます。DMAオブジェクトでは，ConfigurationHistoryオブジェクトのOIIDに該当します。

pLinkID
対応する構成管理型の関連づけのリンク識別子が設定されます。

lTraceMode
オブジェクトのバージョンが固定されているかどうかが設定されます。バージョンが固定されている（FIXモード）場合はDBR_MODE_FIXが，バージョンが固定されていない（FLOATINGモード）場合はDBR_MODE_UNFIXが設定されます。

lType
オブジェクトの種別を表す値として，対応するクラスライブラリのクラスを示す定数が設定されます。定数とクラスライブラリのクラスの関係は，「付録C.3　構造体で指定する定数」を参照してください。

PropList
オブジェクトがメソッドの引数で指定したプロパティを持つ場合，プロパティリスト構造体（SDBR_PROPLIST構造体）が設定されます。

この構造体を出力するメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListAndLockメソッド

CdbrVersionTraceableContainer::GetVTContaineeListメソッド

CdbrVersionTraceableContainer::GetVTContaineeListAndLockメソッド

(26)　SDBR_VTOBJLIST構造体（構成管理オブジェクトリスト構造体）

説明

バージョン付きコンテナが構成管理しているオブジェクトの情報を参照するときに，オブジェクト情報構造体（SDBR_VTOBJINFO構造体）の個数とポインタが設定される構造体です。

形式

struct SDBR_VTOBJLIST{
 DmaInteger32    lCount; //構成管理オブジェクト情報の個数
 SDBR_VTOBJINFO* pItem;  //構成管理オブジェクト情報
};

メンバの説明

lCount
取得したSDBR_VTOBJINFO構造体の個数が格納されます。

pItem
SDBR_VTOBJINFO構造体の先頭のアドレスへのポインタが設定されます。このとき，lCountに設定されたSDBR_VTOBJINFO構造体の個数分の領域が確保されます。

この構造体を出力するメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListメソッド

CdbrConfiguratedReferentialContainer::GetVTContaineeListAndLockメソッド

CdbrVersionTraceableContainer::GetVTContaineeListメソッド

CdbrVersionTraceableContainer::GetVTContaineeListAndLockメソッド

付録C.2　検索に使用する構造体

ここでは，検索に使用する構造体について説明します。

＜この項の構成＞

(1)　検索結果として取得する構造体

(1)　検索結果として取得する構造体

(a)　SDBR_QUERYRESULT構造体（検索結果構造体）

説明

検索結果が格納される構造体です。検索を実行したとき，検索結果として取得できるプロパティの個数とプロパティ情報が設定されます。検索結果が０件の場合には，検索結果構造体の内容はNULLです。

形式

struct SDBR_QUERYRESULT {
 DmaInteger32         lPropCount;     //プロパティ個数
 SDBR_PROPERTIES*     pProperties;    //プロパティ情報
};

メンバの説明

lPropCount
検索結果として取得したプロパティの個数が設定されます。

pProperties
検索結果として取得したプロパティのプロパティ情報を表すSDBR_PROPERTIES構造体の先頭のアドレスへのポインタが設定されます。

この構造体を出力するメソッド

CdbrEqlStatement::GetResultメソッド

(b)　SDBR_PROPERTIES構造体

説明

検索結果として取得したプロパティの情報が設定される構造体です。

形式

struct SDBR_PROPERTIES {
 DmaInteger32      lType;         //データ型
 DmaInteger32      lCardinality;  //基本単位
 DmaInteger32      lCount;        //プロパティ値の個数
 union {                          //プロパティ値を
                                  //　格納する共用体
   pDmaBoolean     pbBoolean;     //Boolean
   pDmaId          pId;           //ID
   pDmaInteger32   plInteger;     //Integer
   pDmapv          pplObject;     //Object
   ppDmaString_T   ppString;      //String
 } uValue;
};

メンバの説明

lType
プロパティの型を示す値として，設定される値を次に示します。
DMA_DATATYPE_BOOLEAN：Boolean型
DMA_DATATYPE_ID： ID型
DMA_DATATYPE_INTEGER32： Integer32型
DMA_DATATYPE_OBJECT：Object型
DMA_DATATYPE_STRING：String型

lCardinality
基本単位が設定されます。設定される値を次に示します。
DMA_CARDINALITY_SINGLE：Scalar（スカラー）型
DMA_CARDINALITY_ENUM：Enumeration（列挙）型
DMA_CARDINALITY_LIST：List（リスト）型
EDM_DMA_CARDINALITY_VARRAY：VariableArray（可変長配列）型

lCount
プロパティの値の要素数が設定されます。要素数は，lCardinalityの値に応じて設定されます。lCardinalityの値と設定される値を次に示します。なお，検索結果である，SDBR_QUERYRESULT構造体の内容がNULLの場合，lCountには０が設定されます。
DMA_CARDINALITY_SINGLEの場合：１
DMA_CARDINALITY_ENUMまたはDMA_CARDINALITY_LISTの場合：０以上の値
EDM_DMA_CARDINALITY_VARRAYの場合：1

共用体uValueのメンバ
プロパティの値は，共用体uValueのメンバpbBoolean，plInteger，pId，pplObject，ppStringのうち，lTypeに設定された型と名前が一致するものが示す領域に設定されます。

この構造体を出力するメソッド

CdbrEqlStatement::GetResultメソッド

付録C.3　構造体で指定する定数

ここでは，複数の構造体で共通して使用する定数について説明します。

＜この項の構成＞

(1)　クラスライブラリのクラスを表す定数

(1)　クラスライブラリのクラスを表す定数

オブジェクト情報を取得する時に，そのオブジェクトがクラスライブラリで提供するどのクラスのオブジェクトであるかは，構造体に設定される定数から判断できます。この定数は，次に示す構造体のlTypeにオブジェクトの種別を表す値（クラス識別子）として設定されます。

SDBR_LINKEDOBJINFO構造体

SDBR_OBJINFO構造体

SDBR_RELATIONINFO構造体

SDBR_VROBJINFO構造体

SDBR_VTLINKEDOBJINFO構造体

SDBR_VTOBJINFO構造体

オブジェクトの種別を表す値（クラス識別子）とクラスライブラリのクラスとの対応を，次の表に示します。

表C-2　オブジェクトの種別を表す値（クラス識別子）とクラスライブラリのクラスとの対応

オブジェクトの種別を表す値（クラス識別子） | クラスライブラリのクラス
DBR_CLASS_ALL | すべてのクラス
DBR_CLASS_CONFIGURATEDREFERENTIALCONTAINER | CdbrConfiguratedReferentialContainerクラス
DBR_CLASS_DOCUMENT | CdbrDocumentクラス
DBR_CLASS_INDEPENDENTPERSISTENCE | CdbrIndependentPersistenceクラス
DBR_CLASS_PUBLICACL | CdbrPublicACLクラス
DBR_CLASS_REFERENTIALCONTAINER | CdbrReferentialContainerクラス
DBR_CLASS_RFCT_OR_VTCT | CdbrReferentialContainerクラスとCdbrVersionTraceableContainerクラスのOR条件
DBR_CLASS_VERSIONABLEDOCUMENT | CdbrVersionableDocumentクラス
DBR_CLASS_VERSIONTRACEABLECONTAINER | CdbrVersionTraceableContainerクラス
DBR_CLASS_UNKNOWN | クラスの種別が不明

どのクラス識別子が指定できるかについては，それぞれのメソッドを参照してください。

付録D　メソッドの実行に必要なパーミッション（アクセス制御機能を使用する場合）

ここでは，アクセス制御機能を使用している場合に，それぞれのメソッドをコールする時に必要なパーミッションについて説明します。

＜この節の構成＞

付録D.1　パーミッション一覧で使用する記号

付録D.2　メソッドの実行に必要なパーミッション一覧

付録D.1　パーミッション一覧で使用する記号

ここでは，「付録D.2　メソッドの実行に必要なパーミッション一覧」で使用する記号について説明します。

パーミッションが必要かどうかを表す記号

○：メソッドの実行に必要なパーミッションです。

－：メソッドの実行に不要なパーミッションです。

なお，すべてのパーミッションに「－」が入っている場合は，そのメソッドの実行に必要なパーミッションはありません。

複数のオブジェクトに関係するメソッドの場合の記号

複数のオブジェクトに関係するメソッドでは，どのオブジェクト対して必要なパーミッションか，「○」とともに次の記号で示しています。

表D-1　パーミッションが必要なオブジェクトを表す記号

記号 | 意味
b | バインドしているオブジェクトに必要なパーミッション
d | リンクによって関連づけるオブジェクトに必要なパーミッション
dp | リンクによって関連づけるバージョン付きオブジェクトに必要なパーミッション
dv | リンクによって関連づけるバージョンなしオブジェクトに必要なパーミッション
o | メソッドをコールしたオブジェクトに必要なパーミッション
p | バージョン付きオブジェクトに必要なパーミッション
q | 検索でヒットするオブジェクトに必要なパーミッション
t | ClassTypeを取得する対象となるオブジェクトに必要なパーミッション
v | 1バージョンに該当するオブジェクト（バージョンなしオブジェクト）に必要なパーミッション
vc | カレントバージョンに対応するDMAオブジェクトのContainerVersionオブジェクトに必要なパーミッション
vd | カレントバージョンに対応するDMAオブジェクトのDocVersionオブジェクトに必要なパーミッション

付録D.2　メソッドの実行に必要なパーミッション一覧

ここでは，メソッドの実行に必要なパーミッションの一覧を，クラスごとに示します。なお，クラスおよびメソッドはアルファベット順に並んでいます。

＜この項の構成＞

(1)　CdbrCompoundクラスのメソッドのコールに必要なパーミッション

(2)　CdbrConfiguratedReferentialContainerクラスのメソッドのコールに必要なパーミッション

(3)　CdbrContainableクラスのメソッドのコールに必要なパーミッション

(4)　CdbrCoreクラスのメソッドのコールに必要なパーミッション

(5)　CdbrDMAクラスのメソッドのコールに必要なパーミッション

(6)　CdbrDocumentクラスのメソッドのコールに必要なパーミッション

(7)　CdbrEqlStatementクラスのメソッドのコールに必要なパーミッション

(8)　CdbrIndependentPersistenceクラスのメソッドのコールに必要なパーミッション

(9)　CdbrPublicACLクラスのメソッドのコールに必要なパーミッション

(10)　CdbrReferentialContainerクラスのメソッドのコールに必要なパーミッション

(11)　CdbrSessionクラスのメソッドのコールに必要なパーミッション

(12)　CdbrVariableArrayクラスのメソッドのコールに必要なパーミッション

(13)　CdbrVersionableクラスのメソッドのコールに必要なパーミッション

(14)　CdbrVersionableDocumentクラスのメソッドのコールに必要なパーミッション

(15)　CdbrVersionTraceableContainerクラスのメソッドのコールに必要なパーミッション

(16)　CdbrXmlTranslatorクラスのメソッドのコールに必要なパーミッション

(17)　CdbrXmlTranslatorFactoryクラスのメソッドのコールに必要なパーミッション

(18)　関数のコールに必要なパーミッション

(1)　CdbrCompoundクラスのメソッドのコールに必要なパーミッション

CdbrCompoundクラスのメソッドのコールに必要なパーミッションはありません。

(2)　CdbrConfiguratedReferentialContainerクラスのメソッドのコールに必要なパーミッション

次の表に，CdbrConfiguratedReferentialContainerクラスのメソッドのコールに必要なパーミッションを示します。なお，この表で使用する記号については，「付録D.1　パーミッション一覧で使用する記号」を参照してください。

表D-2　CdbrConfiguratedReferentialContainerクラスのメソッドのコールに必要なパーミッション

メソッド名
パーミッション

PRIM_
READ
_PROPS
PRIM_
READ
_CONTENTS
PRIM_
WRITE
_PROPS
PRIM_
WRITE
_CONTENTS
PRIM_
LINK
PRIM_
VERSION
PRIM_
DELETE
CREATE

~CdbrConfiguratedReferentialContainer
－
－
－
－
－
－
－
－

CdbrConfiguratedReferentialContainer
－
－
－
－
－
－
－
－

CreateObject
－
－
－
－
－
－
－
○

GetContainableList
○
o,v,d
－
－
－
－
－
－
－

GetContainableList
（リンクのプロパティを指定する場合）
○
o,v,d
－
－
－
－
－
－
－

GetContainableListAndLock
○
o,v,d
－
－
－
－
－
－
－

GetContainableListAndLock（リンクのプロパティを指定する場合）
○
o,v,d
－
－
－
－
－
－
－

GetLinkPropertyValues
○
o,v
－
－
－
－
－
－
－

GetLinkPropertyValuesAndLock
○
o,v
－
－
－
－
－
－
－

GetVTContaineeList
○
o,v,dv
－
－
－
－
－
－
－

GetVTContaineeList
（リンクのプロパティを指定する場合）
○
o,v,dv
－
－
－
－
－
－
－

GetVTContaineeListAndLock
○
o,v,dv
－
－
－
－
－
－
－

GetVTContaineeListAndLock
（リンクのプロパティを指定する場合）
○
o,v,dv
－
－
－
－
－
－
－

Link
○
o,d
－
－
－
○
v
－
－
－

Link
（リンクのプロパティを指定する場合）
○
o,d
－
－
－
○
v
－
－
－

LinkAndLock
○
o,d
－
－
－
○
v
－
－
－

LinkAndLock
（リンクのプロパティを指定する場合）
○
o,d
－
－
－
○
v
－
－
－

LinkVTFix
○
o,dp,dv
－
－
－
○
v
－
－
－

LinkVTFixAndLock
○
o,dp,dv
－
－
－
○
v
－
－
－

LinkVTFloat
○
o,dp,dv
－
－
－
○
v
－
－
－

LinkVTFloatAndLock
○
o,dp,dv
－
－
－
○
v
－
－
－

PutLinkPropertyValues
○
o
－
－
－
○
v
－
－
－

SetVTFix
○
o
－
－
－
○
v
－
－
－

SetVTFloat
○
o
－
－
－
○
v
－
－
－

Unlink
○
o
－
－
－
○
v
－
－
－

Unlink
（リンク識別子を指定する場合）
○
o
－
－
－
○
v
－
－
－

UnlinkAndLock
○
o
－
－
－
○
v
－
－
－

UnlinkAndLock
（リンク識別子を指定する場合）
○
o
－
－
－
○
v
－
－
－

UnlinkVT
○
o
－
－
－
○
v
－
－
－

UnlinkVTAndLock
○
o
－
－
－
○
v
－
－
－

(3)　CdbrContainableクラスのメソッドのコールに必要なパーミッション

次の表に，CdbrContainableクラスのメソッドのコールに必要なパーミッションを示します。なお，この表で使用する記号については，「付録D.1　パーミッション一覧で使用する記号」を参照してください。

表D-3　CdbrContainableクラスのメソッドのコールに必要なパーミッション

メソッド名
パーミッション

PRIM_
READ
_PROPS
PRIM_
READ
_CONTENTS
PRIM_
WRITE
_PROPS
PRIM_
WRITE
_CONTENTS
PRIM_
LINK
PRIM_
VERSION
PRIM_
DELETE
CREATE

~CdbrContainable
－
－
－
－
－
－
－
－

CdbrContainable
－
－
－
－
－
－
－
－

GetContainerList
○
o,d
－
－
－
－
－
－
－

GetContainerList
（リンクのプロパティを指定する場合）
○
o,d
－
－
－
－
－
－
－

GetContainerListAndLock
○
o,d
－
－
－
－
－
－
－

GetContainerListAndLock
（リンクのプロパティを指定する場合）
○
o,d
－
－
－
－
－
－
－

次の表に，CdbrContainableクラスのアクセス制御情報を操作するメソッドのコールに必要なパーミッションを示します。なお，この表で使用する記号については，「付録D.1　パーミッション一覧で使用する記号」を参照してください。

表D-4　CdbrContainableクラスのアクセス制御情報を操作するメソッドのコールに必要なパーミッション

メソッド
パーミッション

PRIM_READ_PROPS
CREATE
CHANGE_PERM

BindPublicACL
－
－
○

GetPublicACLList
○
－
－

GetPublicACLListAndLock
○
－
－

UnbindPublicACL
－
－
○

(4)　CdbrCoreクラスのメソッドのコールに必要なパーミッション

CdbrCoreクラスのメソッドをコールする場合に必要なパーミッションはありません。

(5)　CdbrDMAクラスのメソッドのコールに必要なパーミッション

次の表に，CdbrDMAクラスのメソッドのコールに必要なパーミッションを示します。なお，この表で使用する記号については，「付録D.1　パーミッション一覧で使用する記号」を参照してください。

表D-5　CdbrDMAクラスのメソッドのコールに必要なパーミッション

メソッド名
パーミッション

PRIM_
READ
_PROPS
PRIM_
READ
_CONTENTS
PRIM_
WRITE
_PROPS
PRIM_
WRITE
_CONTENTS
PRIM_
LINK
PRIM_
VERSION
PRIM_
DELETE
CREATE

~CdbrDMA
－
－
－
－
－
－
－
－

ConnectObject
○
－
－
－
－
－
－
－

GetOIID
－
－
－
－
－
－
－
－

GetPropertyValues
○※¹
－
－
－
－
－
－
－

GetPropertyValuesAndLock
○※¹
－
－
－
－
－
－
－

GetType
－
－
－
－
－
－
－
－

PutPropertyValues
－
－
○※²
－
－
－
－
－

ReleaseObject
－
－
－
－
－
－
－
－

RemoveObject
－
－
－
－
－
－
○※³
－

SetOIID
－
－
－
－
－
－
－
－

注※1

CdbrPublicACLオブジェクトに対してコールする場合は不要です。

注※2

アクセス制御情報を表すプロパティを更新する場合は，別のアクセス制御情報変更権（DBR_PERM_CHANGE_PERM）が必要です。ただし，所有者（dbrProp_OwnerIdプロパティ）およびセキュリティACL（dbrProp_SACLプロパティ）を更新できるのは，所有者またはセキュリティ管理者だけです。

注※3

バージョン付きオブジェクトとバージョン関係にあるバージョンなしオブジェクトの場合は，バージョン付きオブジェクトに基本バージョン管理権が必要です。

(6)　CdbrDocumentクラスのメソッドのコールに必要なパーミッション

次の表に，CdbrDocumentクラスのメソッドのコールに必要なパーミッションを示します。なお，この表で使用する記号については，「付録D.1　パーミッション一覧で使用する記号」を参照してください。

表D-6　CdbrDocumentクラスのメソッドのコールに必要なパーミッション

メソッド名
パーミッション

PRIM_
READ
_PROPS
PRIM_
READ
_CONTENTS
PRIM_
WRITE
_PROPS
PRIM_
WRITE
_CONTENTS
PRIM_
LINK
PRIM_
VERSION
PRIM_
DELETE
CREATE

~CdbrDocument
－
－
－
－
－
－
－
－

AddRendition
－
－
－
○
－
－
－
－

CdbrDocument
－
－
－
－
－
－
－
－

ChangeMasterRendition
－
－
－
○
－
－
－
－

CreateIndex
－
－
－
○
－
－
－
－

CreateObject
－
－
－
－
－
－
－
○

CreateRelation
○
d
－
－
－
○
o
－
－
－

DeleteRendition
－
－
－
○
－
－
－
－

GetContent
－
○
－
－
－
－
－
－

GetContentAndLock
－
○
－
－
－
－
－
－

GetRelationList
○
o,d※
－
－
－
－
－
－
－

GetRelationListAndLock
○
o,d※
－
－
－
－
－
－
－

GetRenditionList
○
－
－
－
－
－
－
－

GetRenditionListAndLock
○
－
－
－
－
－
－
－

GetVersionableList
○
o,p
－
－
－
－
－
－
－

GetVersionableListAndLock
○
o,p
－
－
－
－
－
－
－

PutRelationPropertyValues
－
－
－
－
○
o
－
－
－

PutRenditionPropertyValues
－
－
○
－
－
－
－
－

RemoveIndex
－
－
－
○
－
－
－
－

RemoveRelation
－
－
－
－
○
o
－
－
－

UpdateContent
－
－
－
○
－
－
－
－

UpdateContentAndRenditionType
－
－
－
○
－
－
－
－

注※

リンク先オブジェクトのプロパティを取得しない場合，リンク先オブジェクトの基本プロパティ参照権（DBR_PERM_PRIM_READ_PROPS）は不要です。

(7)　CdbrEqlStatementクラスのメソッドのコールに必要なパーミッション

次の表に，CdbrEqlStatementクラスのメソッドのコールに必要なパーミッションを示します。なお，この表で使用する記号については，「付録D.1　パーミッション一覧で使用する記号」を参照してください。

表D-7　CdbrEqlStatementクラスのメソッドのコールに必要なパーミッション

メソッド名
パーミッション

PRIM_
READ_
PROPS
PRIM_
READ_
CONTENTS
PRIM_
WRITE
_PROPS
PRIM_
WRITE_
CONTENTS
PRIM_
LINK
PRIM_
VERSION
PRIM_
DELETE
CREATE

~CdbrEqlStatement
－
－
－
－
－
－
－
－

CdbrEqlStatement
－
－
－
－
－
－
－
－

ChangeACLMode
－
－
－
－
－
－
－
－

ChangeGetObjCount
－
－
－
－
－
－
－
－

ChangeLockType
－
－
－
－
－
－
－
－

DeleteResult
－
－
－
－
－
－
－
－

Execute
－
－
－
－
－
－
－
－

GetACLMode
－
－
－
－
－
－
－
－

GetResult
○
q
○
q※
－
－
－
－
－
－

Initialize
－
－
－
－
－
－
－
－

Set
－
－
－
－
－
－
－
－

SetParam
－
－
－
－
－
－
－
－

SetObjParam
－
－
－
－
－
－
－
－

SetOIIDParam
－
－
－
－
－
－
－
－

Terminate
－
－
－
－
－
－
－
－

注※

全文検索を実行する場合，基本コンテント参照権（PRIM_READ_CONTENTS）がないオブジェクトは取得できません。

(8)　CdbrIndependentPersistenceクラスのメソッドのコールに必要なパーミッション

次の表に，CdbrIndependentPersistenceクラスのメソッドのコールに必要なパーミッションを示します。なお，この表で使用する記号については，「付録D.1　パーミッション一覧で使用する記号」を参照してください。

表D-8　CdbrIndependentPersistenceクラスのメソッドのコールに必要なパーミッション

メソッド名
パーミッション

PRIM_
READ
_PROPS
PRIM_
READ
_CONTENTS
PRIM_
WRITE
_PROPS
PRIM_
WRITE
_CONTENTS
PRIM_
LINK
PRIM_
VERSION
PRIM_
DELETE
CREATE

~CdbrIndependentPersistence
－
－
－
－
－
－
－
－

CdbrIndependentPersistence
－
－
－
－
－
－
－
－

CreateObject
－
－
－
－
－
－
－
○

次の表に，CdbrIndependentPersistenceクラスのアクセス制御情報を操作するメソッドのコールに必要なパーミッションを示します。なお，この表で使用する記号については，「付録D.1　パーミッション一覧で使用する記号」を参照してください。

表D-9　CdbrIndependentPersistenceクラスのアクセス制御情報を操作するメソッドのコールに必要なパーミッション

メソッド
パーミッション

PRIM_READ_PROPS
CREATE
CHANGE_PERM

BindPublicACL
－
－
○

GetPublicACLList
○
－
－

GetPublicACLListAndLock
○
－
－

UnbindPublicACL
－
－
○

(9)　CdbrPublicACLクラスのメソッドのコールに必要なパーミッション

次の表に，CdbrPublicACLクラスのアクセス制御情報を操作するメソッドのコールに必要なパーミッションを示します。なお，この表で使用する記号については，「付録D.1　パーミッション一覧で使用する記号」を参照してください。

表D-10　CdbrPublicACLクラスのアクセス制御情報を操作するメソッドのコールに必要なパーミッション

メソッド
パーミッション

PRIM_READ_PROPS
CREATE
CHANGE_PERM

~CdbrPublicACL
－
－
－

CdbrPublicACL
－
－
－

CreateObject
－
○
－

GetBindObjectList
○
b
－
－

GetBindObjectListAndLock
○
b
－
－

(10)　CdbrReferentialContainerクラスのメソッドのコールに必要なパーミッション

次の表に，CdbrReferentialContainerクラスのメソッドのコールに必要なパーミッションを示します。なお，この表で使用する記号については，「付録D.1　パーミッション一覧で使用する記号」を参照してください。

表D-11　CdbrReferentialContainerクラスのメソッドのコールに必要なパーミッション

メソッド名
パーミッション

PRIM_
READ
_PROPS
PRIM_
READ
_CONTENTS
PRIM_
WRITE
_PROPS
PRIM_
WRITE
_CONTENTS
PRIM_
LINK
PRIM_
VERSION
PRIM_
DELETE
CREATE

~CdbrReferentialContainer
－
－
－
－
－
－
－
－

CdbrReferentialContainer
－
－
－
－
－
－
－
－

CreateObject
－
－
－
－
－
－
－
○

GetContainableList
○
o,d
－
－
－
－
－
－
－

GetContainableList
（リンクの識別子を指定する場合）
○
o,d
－
－
－
－
－
－
－

GetContainableListAndLock
○
o,d
－
－
－
－
－
－
－

GetContainableListAndLock
（リンクの識別子を指定する場合）
○
o,d
－
－
－
－
－
－
－

GetLinkPropertyValues
○
－
－
－
－
－
－
－

GetLinkPropertyValuesAndLock
○
－
－
－
－
－
－
－

Link
○
d
－
－
－
○
o
－
－
－

Link
（リンクの識別子を指定する場合）
○
d
－
－
－
○
o
－
－
－

LinkAndLock
○
d
－
－
－
○
o
－
－
－

LinkAndLock
（リンクの識別子を指定する場合）
○
d
－
－
－
○
o
－
－
－

PutLinkPropertyValues
－
－
－
－
○
－
－
－

Unlink
－
－
－
－
○
－
－
－

Unlink
（リンクの識別子を指定する場合）
－
－
－
－
○
－
－
－

UnlinkAndLock
－
－
－
－
○
－
－
－

UnlinkAndLock
（リンクの識別子を指定する場合）
－
－
－
－
○
－
－
－

(11)　CdbrSessionクラスのメソッドのコールに必要なパーミッション

CdbrSessionクラスのメソッドのコールに必要なパーミッションはありません。

(12)　CdbrVariableArrayクラスのメソッドのコールに必要なパーミッション

CdbrVariableArrayクラスのメソッドのコールに必要なパーミッションはありません。

(13)　CdbrVersionableクラスのメソッドのコールに必要なパーミッション

次の表に，CdbrVersionableクラスのメソッドのコールに必要なパーミッションを示します。なお，この表で使用する記号については，「付録D.1　パーミッション一覧で使用する記号」を参照してください。

表D-12　CdbrVersionableクラスのメソッドのコールに必要なパーミッション

メソッド名
パーミッション

PRIM_
READ
_PROPS
PRIM_
READ
_CONTENTS
PRIM_
WRITE
_PROPS
PRIM_
WRITE
_CONTENTS
PRIM
_LINK
PRIM_
VERSION
PRIM_
DELETE
CREATE

~CdbrVersionable
－
－
－
－
－
－
－
－

CdbrVersionable
－
－
－
－
－
－
－
－

DeleteVersion
－
－
－
－
－
○
o
○
v
－

GetPropertyValues
○
o,v
－
－
－
－
－
－
－

GetPropertyValuesAndLock
○
o,v
－
－
－
－
－
－
－

GetReservationStatus
○
o
－
－
－
－
－
－
－

GetReservationStatusAndLock
○
o
－
－
－
－
－
－
－

GetVersionList
○
o,v
－
－
－
－
－
－
－

GetVersionListAndLock
○
o,v
－
－
－
－
－
－
－

PutPropertyValues
○
o
－
○
v
－
－
－
－
－

VersionCheckIn
－
－
－
－
－
○
o
－
－

VersionCheckOut
○
vc
○
vd
－
－
－
○
o
－
－

VersionRevoke
－
－
－
－
－
○
o
－
－

次の表に，CdbrVersionableクラスのアクセス制御情報を操作するメソッドのコールに必要なパーミッションを示します。なお，この表で使用する記号については，「付録D.1　パーミッション一覧で使用する記号」を参照してください。

表D-13　CdbrVersionableクラスのアクセス制御情報を操作するメソッドのコールに必要なパーミッション

メソッド
パーミッション

PRIM_READ_PROPS
CREATE
CHANGE_PERM

BindPublicACL
○
o
－
○
v

GetPublicACLList
○
o,v
－
－

GetPublicACLListAndLock
○
o,v
－
－

UnbindPublicACL
○
o
－
○
v

(14)　CdbrVersionableDocumentクラスのメソッドのコールに必要なパーミッション

次の表に，CdbrVersionableDocumentクラスのメソッドのコールに必要なパーミッションを示します。なお，この表で使用する記号については，「付録D.1　パーミッション一覧で使用する記号」を参照してください。

表D-14　CdbrVersionableDocumentクラスのメソッドのコールに必要なパーミッション

メソッド名
パーミッション

PRIM_
READ
_PROPS
PRIM_
READ
_CONTENTS
PRIM_
WRITE
_PROPS
PRIM_
WRITE
_CONTENTS
PRIM
_LINK
PRIM_
VERSION
PRIM_
DELETE
CREATE

~CdbrVersionableDocument
－
－
－
－
－
－
－
－

AddRendition
○
o
－
－
○
v
－
－
－
－

CdbrVersionableDocument
－
－
－
－
－
－
－
－

ChangeMasterRendition
○
o
－
－
○
v
－
－
－
－

CreateIndex
○
o
－
－
○
v
－
－
－
－

CreateObject
－
－
－
－
－
－
－
○

CreateRelation
○
d
－
－
－
○
o
－
－
－

DeleteRendition
○
o
－
－
○
v
－
－
－
－

GetContent
○
o
○
v
－
－
－
－
－
－

GetContentAndLock
○
o
○
v
－
－
－
－
－
－

GetRelationList
○
o,d※
－
－
－
－
－
－
－

GetRelationListAndLock
○
o,d※
－
－
－
－
－
－
－

GetRenditionList
○
o,v
－
－
－
－
－
－
－

GetRenditionListAndLock
○
o,v
－
－
－
－
－
－
－

PutRelationPropertyValues
－
－
－
－
○
o
－
－
－

PutRenditionPropertyValues
○
o
－
○
v
－
－
－
－
－

RemoveIndex
○
o
－
－
○
v
－
－
－
－

RemoveRelation
－
－
－
－
○
o
－
－
－

UpdateContent
○
o
－
－
○
v
－
－
－
－

UpdateContentAndRenditionType
○
o
－
－
○
v
－
－
－
－

注※

リンク先オブジェクトのプロパティを取得しない場合，リンク先オブジェクトの基本プロパティ参照権（DBR_PERM_PRIM_READ_PROPS）は不要です。

(15)　CdbrVersionTraceableContainerクラスのメソッドのコールに必要なパーミッション

次の表に，CdbrVersionTraceableContainerクラスのメソッドのコールに必要なパーミッションを示します。なお，この表で使用する記号については，「付録D.1　パーミッション一覧で使用する記号」を参照してください。

表D-15　CdbrVersionTraceableContainerクラスのメソッドのコールに必要なパーミッション

メソッド名
パーミッション

PRIM_
READ
_PROPS
PRIM_
READ
_CONTENTS
PRIM_
WRITE
_PROPS
PRIM_
WRITE
_CONTENTS
PRIM
_LINK
PRIM_
VERSION
PRIM_
DELETE
CREATE

~CdbrVersionTraceableContainer
－
－
－
－
－
－
－
－

CdbrVersionTraceableContainer
－
－
－
－
－
－
－
－

CreateObject
－
－
－
－
－
－
－
○

GetVersionableList
○
o,p
－
－
－
－
－
－
－

GetVersionableListAndLock
○
o,p
－
－
－
－
－
－
－

GetVTContaineeList
○
o,dv
－
－
－
－
－
－
－

GetVTContaineeList (リンクのプロパティ指定あり)
○
o,dv
－
－
－
－
－
－
－

GetVTContaineeListAndLock
○
o,dv
－
－
－
－
－
－
－

GetVTContaineeListAndLock (リンクのプロパティ指定あり)
○
o,dv
－
－
－
－
－
－
－

LinkVTFix
○
dp,dv
－
－
－
○
o
－
－
－

LinkVTFixAndLock
○
dp,dv
－
－
－
○
o
－
－
－

LinkVTFloat
○
dp,dv
－
－
－
○
o
－
－
－

LinkVTFloatAndLock
○
dp,dv
－
－
－
○
o
－
－
－

SetVTFix
－
－
－
－
○
－
－
－

SetVTFixAndLock
－
－
－
－
○
－
－
－

SetVTFloat
－
－
－
－
○
－
－
－

SetVTFloatAndLock
－
－
－
－
○
－
－
－

UnlinkVT
－
－
－
－
○
－
－
－

UnlinkVTAndLock
－
－
－
－
○
－
－
－

(16)　CdbrXmlTranslatorクラスのメソッドのコールに必要なパーミッション

CdbrXmlTranslatorクラスのメソッドのコールに必要なパーミッションはありません。

(17)　CdbrXmlTranslatorFactoryクラスのメソッドのコールに必要なパーミッション

CdbrXmlTranslatorFactoryクラスのメソッドのコールに必要なパーミッションはありません。

(18)　関数のコールに必要なパーミッション

クラスライブラリで提供している関数，dbrDelete関数を実行する場合に必要なパーミッションはありません。

付録E　メソッド実行時の排他制御（ロック）

クラスライブラリの各メソッドには，ユーザが明示的にロックの種類を設定して実行するものと，DocumentBrokerによってあらかじめ決められた種類のロックで実行するものがあります。ここでは，これらのロックについて説明します。

なお，クラスライブラリのオブジェクトのうち，どのDMAオブジェクトに対してロックが設定されるかについては，マニュアル「DocumentBroker Version 3　クラスライブラリ　C++　解説」を参照してください。

＜この節の構成＞

付録E.1　メソッド実行時の明示的なロックと暗黙のロック

付録E.2　メソッド実行時のロック一覧

付録E.1　メソッド実行時の明示的なロックと暗黙のロック

オブジェクトを操作する時には，複数のユーザから同時にオブジェクトに対して操作が実行されないように，排他制御をする必要があります。排他制御はオブジェクトに対してロックを設定することで実現できます。

ロックはメソッドで設定します。クラスライブラリのメソッドによるロックの設定方法には，次に示す方法があります。

処理と同時にロックを設定するメソッド（～AndLockメソッド）による明示的なロックの設定

処理を実行するときに明示的にロックを設定するメソッドを使用する方法です。

これらのメソッドでは，事前にSetOIIDメソッドによって接続したオブジェクトに対して，処理と同時に指定したロックが設定できます。

SetOIIDメソッドと～AndLockメソッドを組み合わせた操作を実行することで，ConnectObjectメソッドによってロックを設定して操作するよりも，データベースへのアクセス回数が減り，高速な処理ができます。

ConnectObjectメソッドによる明示的なロックの設定

オブジェクトに接続するときに明示的にロックを設定する，ConnectObjectメソッドを使用する方法です。このメソッドでは，クラスライブラリを構成するDMAオブジェクトのうち，トップオブジェクトに当たるオブジェクトにロックを設定します。

検索の実行結果に対する明示的なロックの設定

検索の実行結果に対して明示的にロックを設定する方法です。

CdbrEqlStatement::ChangeLockTypeメソッドの引数でロックの種類を明示的に指定します。このメソッドで指定したロックが，そのあとで実行するCdbrEqlStatement::Executeメソッドの実行結果（検索結果集合）に対して設定されます。

なお，この方法で明示的なロックを設定しない場合は，検索の実行結果に対してロックは設定されません。暗黙に設定されるロックはありません。

それ以外のメソッドによる暗黙のロックの設定

ユーザが明示的にロックを設定するメソッドをコールしなかった場合，DocumentBrokerによってデータベースのアクセスに必要なロックを暗黙に設定させる方法です。設定されるロックの種類は，メソッドごとに異なります。

付録E.2　メソッド実行時のロック一覧

ここでは，クラスごとに，明示的にロックを設定できるメソッドの一覧と，あらかじめDocumentBrokerによってメソッドに設定されている暗黙のロックの一覧を示します。

＜この項の構成＞

(1)　CdbrCompoundクラス

(2)　CdbrConfiguratedReferentialContainerクラス

(3)　CdbrContainableクラス

(4)　CdbrCoreクラス

(5)　CdbrDMAクラス

(6)　CdbrDocumentクラス

(7)　CdbrEqlStatementクラス

(8)　CdbrIndependentPersistenceクラス

(9)　CdbrPublicACLクラス

(10)　CdbrReferentialContainerクラス

(11)　CdbrSessionクラス

(12)　CdbrVariableArrayクラス

(13)　CdbrVersionableクラス

(14)　CdbrVersionableDocumentクラス

(15)　CdbrVersionTraceableContainerクラス

(16)　CdbrXmlTranslatorクラス

(17)　CdbrXmlTranslatorFactoryクラス

(1)　CdbrCompoundクラス

(a)　明示的にロックを設定できるメソッド

CdbrCompoundクラスには，明示的にロックを設定できるメソッドはありません。

(b)　暗黙のロックが設定されているメソッドとロックの種類

CdbrCompoundクラスには，暗黙のロックが設定されているメソッドはありません。

(2)　CdbrConfiguratedReferentialContainerクラス

(a)　明示的にロックを設定できるメソッド

CdbrConfiguratedReferentialContainerクラスの明示的にロックを設定できるメソッドを次に示します。

GetContainableListAndLockメソッド

GetLinkPropertyValuesAndLockメソッド

GetVTContaineeListAndLockメソッド

LinkAndLockメソッド

LinkVTFixAndLockメソッド

LinkVTFloatAndLockメソッド

UnlinkAndLockメソッド

UnlinkVTAndLockメソッド

(b)　暗黙のロックが設定されているメソッドとロックの種類

CdbrConfiguratedReferentialContainerクラスの暗黙のロックが設定されているメソッドとロックの種類を，次の表に示します。

表E-1　CdbrConfiguratedReferentialContainerクラスの暗黙のロックが設定されているメソッドとロックの種類

メソッド | 設定されているロックの種類
~CdbrConfiguratedReferentialContainer | －
CdbrConfiguratedReferentialContainer | －
CreateObject | writeロック
GetContainableList | readロック
GetLinkPropertyValues | readロック
GetVTContaineeList | readロック
Link※¹ | readロック
LinkVTFix※² | readロック
LinkVTFloat※² | readロック
PutLinkPropertyValues | writeロック
SetVTFix | readロック
SetVTFloat | readロック
Unlink※¹ | readロック
UnlinkVT※² | readロック

（凡例）　－：該当しません。

注※１

関連づける要素または関連づけを削除する要素にもロックが設定されます。DirectContainmentRelationshipによる関連づけの場合はwriteロックが，ReferentialContainmentRelationshipによる関連づけの場合はreadロックが設定されます。

注※２

関連づける要素または関連づけを削除する要素にreadロックが設定されます。

(3)　CdbrContainableクラス

(a)　明示的にロックを設定できるメソッド

CdbrContainableクラスの明示的にロックを設定できるメソッドを次に示します。

GetContainerListAndLockメソッド

GetPublicACLListAndLockメソッド

(b)　暗黙のロックが設定されているメソッドとロックの種類

CdbrContainableクラスの暗黙のロックが設定されているメソッドとロックの種類を，次の表に示します。

表E-2　CdbrContainableクラスの暗黙のロックが設定されているメソッドとロックの種類

メソッド | 設定されているロックの種類
~CdbrContainable | －
BindPublicACL | writeロック
CdbrContainable | －
GetContainerList | readロック
GetPublicACLList | readロック
UnbindPublicACL | writeロック

（凡例）　－：該当しません。

(4)　CdbrCoreクラス

(a)　明示的にロックを設定できるメソッド

CdbrCoreクラスには，明示的にロックを設定できるメソッドはありません。

(b)　暗黙のロックが設定されているメソッドとロックの種類

CdbrCoreクラスには，暗黙のロックが設定されているメソッドはありません。

(5)　CdbrDMAクラス

(a)　明示的にロックを設定できるメソッド

CdbrDMAクラスの明示的にロックを設定できるメソッドを次に示します。

GetPropertyValuesAndLockメソッド

(b)　暗黙のロックが設定されているメソッドとロックの種類

CdbrDMAクラスの暗黙のロックが設定されているメソッドとロックの種類を次の表に示します。

表E-3　CdbrDMAクラスの暗黙のロックが設定されているメソッドとロックの種類

メソッド | 設定されているロックの種類
~CdbrDMA | －
CdbrDMA | －
ConnectObject | 明示的に指定したロック
GetOIID | －
GetPropertyValues | readロック
GetType | －
PutPropertyValues | writeロック
ReleaseObject | －
RemoveObject | writeロック
SetOIID | －

（凡例）　－：該当しません。

(6)　CdbrDocumentクラス

(a)　明示的にロックを設定できるメソッド

CdbrDocumentクラスの明示的にロックを設定できるメソッドを次に示します。

GetContentAndLockメソッド

GetContentInfoメソッド

GetRelationListAndLockメソッド

GetRenditionListAndLockメソッド

GetVersionableListAndLockメソッド

(b)　暗黙のロックが設定されているメソッドとロックの種類

CdbrDocumentクラスの暗黙のロックが設定されているメソッドとロックの種類を，次の表に示します。

表E-4　CdbrDocumentクラスの暗黙のロックが設定されているメソッドとロックの種類

メソッド | 設定されているロックの種類
~CdbrDocument | －
AddRendition | writeロック
CdbrDocument | －
ChangeMasterRendition | writeロック
CreateIndex | writeロック
CreateObject | writeロック
CreateRelation | writeロック
DeleteRendition | writeロック
GetContent | readロック
GetRelationList | readロック
GetRenditionList | readロック
GetVersionableList | readロック
PutRelationPropertyValues | writeロック
PutRenditionPropertyValues | writeロック
RemoveIndex | writeロック
RemoveRelation | writeロック
UpdateContent | writeロック
UpdateContentAndRenditionType | writeロック

（凡例）　－：該当しません。

(7)　CdbrEqlStatementクラス

(a)　明示的にロックを設定できるメソッド

CdbrEqlStatementクラスの明示的にロックを設定できるメソッドを次に示します。

ChangeLockTypeメソッド
ChangeLockTypeメソッドで指定したロックが，そのあとで実行するCdbrEqlStatement::Executeメソッドの実行結果（検索結果集合）に対して設定されます。

(b)　暗黙のロックが設定されているメソッドとロックの種類

CdbrEqlStatementクラスには，暗黙のロックが設定されているメソッドはありません。

(8)　CdbrIndependentPersistenceクラス

(a)　明示的にロックを設定できるメソッド

CdbrIndependentPersistenceクラスの明示的にロックを設定できるメソッドを次に示します。

GetPublicACLListAndLockメソッド

(b)　暗黙のロックが設定されているメソッドとロックの種類

CdbrIndependentPersistenceクラスの暗黙のロックが設定されているメソッドとロックの種類を，次の表に示します。

表E-5　CdbrIndependentPersistenceクラスの暗黙のロックが設定されているメソッドとロックの種類

メソッド | 設定されているロックの種類
~CdbrIndependentPersistence | －
BindPublicACL | writeロック
CdbrIndependentPersistence | －
CreateObject | writeロック
GetPublicACLList | readロック
UnbindPublicACL | writeロック

（凡例）　－：該当しません。

(9)　CdbrPublicACLクラス

(a)　明示的にロックを設定できるメソッド

CdbrPublicACLクラスの明示的にロックを設定できるメソッドを次に示します。

GetBindObjectListAndLockメソッド

(b)　暗黙のロックが設定されているメソッドとロックの種類

CdbrPublicACLクラスの暗黙のロックが設定されているメソッドとロックの種類を，次の表に示します。

表E-6　CdbrPublicACLクラスの暗黙のロックが設定されているメソッドとロックの種類

メソッド | 設定されているロックの種類
~CdbrPublicACL | －
CdbrPublicACL | －
CreateObject | writeロック
GetBindObjectList | readロック

（凡例）　－：該当しません。

(10)　CdbrReferentialContainerクラス

(a)　明示的にロックを設定できるメソッド

CdbrReferentialContainerクラスの明示的にロックを設定できるメソッドを次に示します。

GetContainableListAndLockメソッド

GetLinkPropertyValuesAndLockメソッド

LinkAndLockメソッド

UnlinkAndLockメソッド

(b)　暗黙のロックが設定されているメソッドとロックの種類

CdbrReferentialContainerクラスの暗黙のロックが設定されているメソッドとロックの種類を，次の表に示します。

表E-7　CdbrReferentialContainerクラスの暗黙のロックが設定されているメソッドとロックの種類

メソッド | 設定されているロックの種類
~CdbrReferentialContainer | －
CdbrReferentialContainer | －
CreateObject | writeロック
GetContainableList | readロック
GetLinkPropertyValues | readロック
Link※ | readロック
PutLinkPropertyValues | writeロック
Unlink※ | readロック

（凡例）　－：該当しません。

注※

関連づける要素または関連づけを削除する要素にもロックが設定されます。DirectContainmentRelationshipによる関連づけの場合はwriteロックが，ReferentialContainmentRelationshipによる関連づけの場合はreadロックが設定されます。

(11)　CdbrSessionクラス

(a)　明示的にロックを設定できるメソッド

CdbrSessionクラスには，明示的にロックを設定できるメソッドはありません。

(b)　暗黙のロックが設定されているメソッド

CdbrSessionクラスには，暗黙のロックが設定されているメソッドはありません。

(12)　CdbrVariableArrayクラス

(a)　明示的にロックを設定できるメソッド

CdbrVariableArrayクラスには，明示的にロックを設定できるメソッドはありません。

(b)　暗黙のロックが設定されているメソッド

CdbrVariableArrayクラスには，暗黙のロックが設定されているメソッドはありません。

(13)　CdbrVersionableクラス

(a)　明示的にロックを設定できるメソッド

CdbrVersionableクラスの明示的にロックを設定できるメソッドを次に示します。

GetPropertyValuesAndLockメソッド

GetPublicACLListAndLockメソッド

GetReservationStatusAndLockメソッド

GetVersionListAndLockメソッド

(b)　暗黙のロックが設定されているメソッドとロックの種類

CdbrVersionableクラスの暗黙のロックが設定されているメソッドとロックの種類を，次の表に示します。

表E-8　CdbrVersionableクラスの暗黙のロックが設定されているメソッドとロックの種類

メソッド | 設定されているロックの種類
~CdbrVersionable | －
BindPublicACL | writeロック
CdbrVersionable | －
DeleteVersion | writeロック
GetPropertyValues | readロック
GetPublicACLList | readロック
GetReservationStatus | readロック
GetVersionList | readロック
PutPropertyValues | writeロック
UnbindPublicACL | writeロック
VersionCheckIn | writeロック
VersionCheckOut | writeロック
VersionRevoke | writeロック

（凡例）　－：該当しません。

(14)　CdbrVersionableDocumentクラス

(a)　明示的にロックを設定できるメソッド

CdbrVersionableDocumentクラスの明示的にロックを設定できるメソッドを次に示します。

GetContentAndLockメソッド

GetContentInfoメソッド

GetRelationListAndLockメソッド

GetRenditionListAndLockメソッド

(b)　暗黙のロックが設定されているメソッドとロックの種類

CdbrVersionableDocumentクラスの暗黙のロックが設定されているメソッドとロックの種類を，次の表に示します。

表E-9　CdbrVersionableDocumentクラスの暗黙のロックが設定されているメソッドとロックの種類

メソッド | 設定されているロックの種類
~CdbrVersionableDocument | －
AddRendition | writeロック
CdbrVersionableDocument | －
ChangeMasterRendition | writeロック
CreateIndex | writeロック
CreateObject | writeロック
CreateRelation | writeロック
DeleteRendition | writeロック
GetContent | readロック
GetRelationList | readロック
GetRenditionList | readロック
PutRelationPropertyValues | writeロック
PutRenditionPropertyValues | writeロック
RemoveIndex | writeロック
RemoveRelation | writeロック
UpdateContent | writeロック
UpdateContentAndRenditionType | writeロック

（凡例）　－：該当しません。

(15)　CdbrVersionTraceableContainerクラス

(a)　明示的にロックを設定できるメソッド

CdbrVersionTraceableContainerクラスの明示的にロックを設定できるメソッドを次に示します。

GetVersionableListAndLockメソッド

GetVTContaineeListAndLockメソッド

LinkVTFixAndLockメソッド

LinkVTFloatAndLockメソッド

SetVTFixAndLockメソッド

SetVTFloatAndLockメソッド

UnlinkVTAndLockメソッド

(b)　暗黙のロックが設定されているメソッドとロックの種類

CdbrVersionTraceableContainerクラスの暗黙のロックが設定されているメソッドとロックの種類を，次の表に示します。

表E-10　CdbrVersionTraceableContainerクラスの暗黙のロックが設定されているメソッドとロックの種類

メソッド | 設定されているロックの種類
~CdbrVersionTraceableContainer | －
CdbrVersionTraceableContainer | －
CreateObject | writeロック
GetVersionableList | readロック
GetVTContaineeList | readロック
LinkVTFix | writeロック
LinkVTFloat | writeロック
SetVTFix | writeロック
SetVTFloat | writeロック
UnlinkVT | writeロック

（凡例）　－：該当しません。

(16)　CdbrXmlTranslatorクラス

(a)　明示的にロックを設定できるメソッド

CdbrXmlTranslatorクラスには，明示的にロックを設定できるメソッドはありません。

(b)　暗黙のロックが設定されているメソッド

CdbrXmlTranslatorクラスには，暗黙のロックが設定されているメソッドはありません。

(17)　CdbrXmlTranslatorFactoryクラス

(a)　明示的にロックを設定できるメソッド

CdbrXmlTranslatorFactoryクラスには，明示的にロックを設定できるメソッドはありません。

(b)　暗黙のロックが設定されているメソッド

CdbrXmlTranslatorFactoryクラスには，暗黙のロックが設定されているメソッドはありません。

付録F　OIID指定時のURLの文法

ここでは，データベースに格納されたDMAオブジェクトが保持しているOIIDを指定する場合の指定方法について説明します。

データベースに格納されたDMAオブジェクト（永続オブジェクト）は，プロパティの値としてNULLでないOIID（Object Instance Identifier）を保持しています。OIIDは，論理的に永続オブジェクトへのURL（Uniform Resource Locator）であると考えられます。したがって，URLのシンタクスを使用して定義されます。OIIDを定義するURLを，特に「DMA URL」といいます。

OIIDの使用方法

OIIDは，文書空間でのオブジェクトの存在や格納位置などを明確にするために使用する識別子です。文書空間中でOIIDは，最大2の48乗-1個作成できます。

なお，OIIDにはユーザアプリケーションから見た連続性，規則性はありません。このため，例えば，ユーザが文書やコンテナなどを指定するときに識別子として直接OIIDを入力するような使用方法は，OIIDの使用方法として適しません。

＜この節の構成＞

(1)　OIIDの形式

(2)　OIID（DMA URL）のBNF記法

(1)　OIIDの形式

OIIDはURLのシンタクスを使用して定義します。

(a)　形式

OIIDは次の形式で指定します。

dma:///<system id>/<docspace id>/<object id>

各項目について説明します。

<system id> ::= <テキスト化されたDMA SystemのDmaId>

OIIDを生成したDMA Systemを登録するために使われたGUIDです。

「付録F(2)　OIID（DMA URL）のBNF記法」で示す「dmasystem」に相当します。

<docspace id> ::= <テキスト化された文書空間のDmaId>

OIIDを生成した文書空間を登録するために使われたGUIDです。

「付録F(2)　OIID（DMA URL）のBNF記法」で示す「dmadocspace」に相当します。

<object id> ::= <印刷可能なASCIIコード>

ASCIIサブセットにコード化されたデータシーケンスです。

「付録F(2)　OIID（DMA URL）のBNF記法」で示す「dmaobjectid」に相当します。

(b)　指定例

OIIDの指定例を次に示します。

＜指定例＞

dma:///07a17522-a626-11d0-b11f-0020af27a837/a95414a4-fef7

-11d3-999f-080009bafc2d/f5d8e3a2-284c-11d2-9177

-0000e21303670000000000006852

(2)　OIID（DMA URL）のBNF記法

OIID（DMA URL）のBNF記法を次に示します。

dmaurl= "dma://" "/" dmasystem "/"dmadocspace "/" dmaobjectid

dmasystem = dmaguid

dmadocspace = dmaguid

dmaobjectid = oidchars

dmaguid = 1*dmaguidchar

dmaguidchar = hex | "-"

oidchars = *oidchar

oidchar = alpha | digit | safe | ":" | "@" | "&" | "="

alpha = lowalpha | hialpha

lowalpha = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" |

　　　　　"m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" |

　　　　　"y" | "z"

hialpha = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" |

　　　　 "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" |

　　　　 "W" | "X" | "Y" | "Z"

digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

safe = "$" | "-" | "_" | "." | "+"

hex = digit | "A" | "B" | "C" | "D" | "E" | "F" |"a" | "b" | "c" | "d" | "e" | "f"

付録G　文書空間で使用する文字コード種別がUTF-8の場合に使用できるメソッドと関数

ここでは，文書空間で使用する文字コード種別がUTF-8の場合に使用できるクラス，メソッドおよび関数について説明します。なお，文書空間で使用する文字コード種別がShift-JISの場合は，すべてのクラス，メソッドおよび関数が使用できます。

＜この節の構成＞

付録G.1　文字コード種別がUTF-8の場合に使用できるメソッド

付録G.2　文字コード種別がUTF-8の場合に使用できる関数

付録G.1　文字コード種別がUTF-8の場合に使用できるメソッド

表G-1　文書空間で使用する文字コード種別がUTF-8の場合に使用できるメソッド

クラス | メソッド名 | 使用可否
CdbrCompound | ~CdbrCompound | ○
CdbrCompound | ○
GetCount | ○
GetDataType | ○
GetId | ○
GetValue | ○
SetValue | ○
CdbrConfiguratedReferentialContainer | ~CdbrConfiguratedReferentialContainer | ○
CdbrConfiguratedReferentialContainer | ○
CreateObject | ○
GetContainableList | ○
GetContainableListAndLock | ○
GetLinkPropertyValues | ○
GetLinkPropertyValuesAndLock | ○
GetVTContaineeList | ○
GetVTContaineeListAndLock | ○
Link | ○
LinkAndLock | ○
LinkVTFix | ○
LinkVTFixAndLock | ○
LinkVTFloat | ○
LinkVTFloatAndLock | ○
PutLinkPropertyValues | ○
SetVTFix | ○
SetVTFloat | ○
Unlink | ○
UnlinkAndLock | ○
UnlinkVT | ○
UnlinkVTAndLock | ○
CdbrContainable | ~CdbrContainable | ○
BindPublicACL | ○
CdbrContainable | ○
GetContainerList | ○
GetContainerListAndLock | ○
GetPublicACLList | ○
GetPublicACLListAndLock | ○
UnbindPublicACL | ○
CdbrCore | ~CdbrCore | ○
CdbrCore | ○
GetDBError | ○
GetLastError | ○
CdbrDMA | ~CdbrDMA | ○
CdbrDMA | ○
ConnectObject | ○
GetOIID | ○
GetPropertyValues | ○
GetPropertyValuesAndLock | ○
GetType | ○
PutPropertyValues | ○
ReleaseObject | ○
RemoveObject | ○
SetOIID | ○
CdbrDocument | ~CdbrDocument | ○
AddRendition | ○
CdbrDocument | ○
ChangeMasterRendition | ○
ConvertContentType | ○
CreateIndex | ○
CreateObject | ○
CreateRelation | ○
DeleteRendition | ○
GetContent | ○
GetContentAndLock | ○
GetContentInfo | ○
GetRelationList | ○
GetRelationListAndLock | ○
GetRenditionList | ○
GetRenditionListAndLock | ○
GetVersionableList | ○
GetVersionableListAndLock | ○
PutRelationPropertyValues | ○
PutRenditionPropertyValues | ○
RemoveIndex | ○
RemoveRelation | ○
UpdateContent | ○
UpdateContentAndRenditionType | ○
CdbrEqlStatement | ~CdbrEqlStatement | ○
CdbrEqlStatement | ○
ChangeACLMode | ○
ChangeGetObjCount | ○
ChangeLockType | ○
DeleteResult | ○
Execute | ○
GetACLMode | ○
GetResult | ○
Initialize | ○
Set | ○
SetObjParam | ○
SetOIIDParam | ○
SetParam | ○
Terminate | ○
CdbrIndependentPersistence | ~CdbrIndependentPersistence | ○
BindPublicACL | ○
CdbrIndependentPersistence | ○
CreateObject | ○
GetPublicACLList | ○
GetPublicACLListAndLock | ○
UnbindPublicACL | ○
CdbrPublicACL | ~CdbrPublicACL | ○
CdbrPublicACL | ○
CreateObject | ○
GetBindObjectList | ○
GetBindObjectListAndLock | ○
CdbrReferentialContainer | ~CdbrReferentialContainer | ○
CdbrReferentialContainer | ○
CreateObject | ○
GetContainableList | ○
GetContainableListAndLock | ○
GetLinkPropertyValues | ○
GetLinkPropertyValuesAndLock | ○
Link | ○
LinkAndLock | ○
PutLinkPropertyValues | ○
Unlink | ○
UnlinkAndLock | ○
CdbrSession | ~CdbrSession | ○
Begin | ○
CdbrSession | ○
Commit | ○
Connect | ○
Disconnect | ○
GetClassType | ○
GetDocSpaceCharacterSet | ○
GetLastDetailError | ○
GetReferencePath | ○
GetUserInfo | ○
OrbComponentShutdown | ○
OrbComponentStart | ○
Rollback | ○
SetReferencePath | ○
CdbrVariableArray | ~CdbrVariableArray | ○
Add | ○
CdbrVariableArray | ○
Delete | ○
GetCount | ○
GetDataType | ○
GetValue | ○
Resize | ○
SetValue | ○
CdbrVersionable | ~CdbrVersionable | ○
BindPublicACL | ○
CdbrVersionable | ○
DeleteVersion | ○
GetPropertyValues | ○
GetPropertyValuesAndLock | ○
GetPublicACLList | ○
GetPublicACLListAndLock | ○
GetReservationStatus | ○
GetReservationStatusAndLock | ○
GetVersionList | ○
GetVersionListAndLock | ○
PutPropertyValues | ○
UnbindPublicACL | ○
VersionCheckIn | ○
VersionCheckOut | ○
VersionRevoke | ○
CdbrVersionableDocument | ~CdbrVersionableDocument | ○
AddRendition | ○
CdbrVersionableDocument | ○
ChangeMasterRendition | ○
ConvertContentType | ○
CreateIndex | ○
CreateObject | ○
CreateRelation | ○
DeleteRendition | ○
GetContent | ○
GetContentAndLock | ○
GetContentInfo | ○
GetRelationList | ○
GetRelationListAndLock | ○
GetRenditionList | ○
GetRenditionListAndLock | ○
PutRelationPropertyValues | ○
PutRenditionPropertyValues | ○
RemoveIndex | ○
RemoveRelation | ○
UpdateContent | ○
UpdateContentAndRenditionType | ○
CdbrVersionTraceableContainer | ~CdbrVersionTraceableContainer | ○
CdbrVersionTraceableContainer | ○
CreateObject | ○
GetVersionableList | ○
GetVersionableListAndLock | ○
GetVTContaineeList | ○
GetVTContaineeListAndLock | ○
LinkVTFix | ○
LinkVTFixAndLock | ○
LinkVTFloat | ○
LinkVTFloatAndLock | ○
SetVTFix | ○
SetVTFixAndLock | ○
SetVTFloat | ○
SetVTFloatAndLock | ○
UnlinkVT | ○
UnlinkVTAndLock | ○
CdbrXmlTranslator | ~CdbrXmlTranslator | －
CdbrXmlTranslator | －
GetDmaInfoList | －
GetIndexData | －
CdbrXmlTranslatorFactory | ~CdbrXmlTranslatorFactory | －
CdbrXmlTranslatorFactory | －
CreateTranslator | －
Initialize | －

（凡例）

○：使用できます。

－：使用できません。

付録G.2　文字コード種別がUTF-8の場合に使用できる関数

表G-2　文書空間で使用する文字コード種別がUTF-8の場合に使用できる関数

関数名 | 使用可否
dbrDelete | ○
dbrDmaIdFromString | ○

（凡例）

○：使用できます。

付録H　戻り値一覧

ここでは，クラスライブラリのメソッドを実行したときに返される戻り値について説明します。また，クラスライブラリの戻り値一覧を掲載します。

＜この節の構成＞

付録H.1　クラスライブラリの戻り値

付録H.2　DMAの戻り値

付録H.3　クラスライブラリ独自の戻り値（ERR_DBRの場合）

付録H.4　データベースエラーが発生した場合の戻り値（ERR_DBの場合）

付録H.5　詳細メッセージの出力について

付録H.1　クラスライブラリの戻り値

クラスライブラリの戻り値は，次の4種類です。

DMAの戻り値

データベースエラーが発生した場合の戻り値

クラスライブラリ独自の戻り値

CORBAの戻り値

クラスライブラリの戻り値には，major_codeとminor_codeがあります。major_codeの種類によって，エラーの種類を特定できます。major_codeおよびminor_codeは，CdbrCoreで定義されているGetLastErrorメソッドによって返却されます。major_codeはメソッドの戻り値として，minor_codeはメソッドの引数として返却されます。

次の表に，戻り値の種類とmajor_code，minor_codeの関係を示します。

表H-1　戻り値の種類とmajor_code，minor_codeの関係

戻り値の種類
major_code
major_codeの
戻り値

エラーがない場合
ERR_NOERROR
0

DMAの戻り値
ERR_DMA
1

CORBAの戻り値
ERR_CORBA
2

クラスライブラリ独自の戻り値
ERR_DBR
3

データベースエラーが発生した場合の戻り値
ERR_DB
4

major_codeが，ERR_DMA，ERR_DBRまたはERR_DBの場合，minor_codeが取得できます。

なお，major_codeがERR_CORBAの場合の戻り値については，マニュアル「VisiBroker for C++　プログラマーズガイド」を参照してください。

付録H.2　DMAの戻り値

major_codeがERR_DMAの場合のminor_codeの一覧を次の表に示します。

表H-2　major_codeがERR_DMAの場合のDMAの戻り値一覧

minor_codeの
戻り値
minor_code
説明
対処

-2147024809​
DMARC_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

-2147024882​
DMARC_NO_MEMORY
メモリ不足で実行できません。
メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて，処理を再実行してください。

-2147024891​
DMARC_ACCESS_DENIED
要求された操作に対してアクセス権がありません。
正しいアクセス権を設定してください。

-2147217384​
EDMRC_NOT_OUTTRANSACTION
トランザクション内でメソッドが呼ばれました。
CdbrSession::Begin()メソッドを呼び出す前に，この操作を実行してください。

-2147217386​
EDMRC_FTPSERVICE_NOT_AVAILABLE
ファイル転送サービスが利用できません。
サーバのバージョンに対応したクライアントを利用してください。

-2147217387​
EDMRC_FTPSERVICE_MAX_SESSION
ファイル転送サービスに同時に接続できるセッション数の上限に達しています。
時間を置いて，Connectユーザ数が減った後，再度実行してください。または，ファイル転送サービス環境定義ファイルのFtpSessionMaxエントリを見直してください。

-2147217388​
EDMRC_NO_FTPSERVICE
使用できるファイル転送サービスがありません。

ネットワーク環境を確認してください。

_HIEDMS_FTPMODE=STATICを指定してファイル転送サービスを起動しているかどうかを，確認してください。

時間を置いて，再度実行してください。

ファイル転送サービスのセットアップコマンドを実行しているかどうかを，確認してください。

-2147217389​
EDMRC_FTPSERVICE_LOST_CONNECTION
ファイル転送サービスへのセッションが切断されました。
ネットワーク環境を確認してください。または，時間を置いて，再度実行してください。

-2147217390​
EDMRC_QPARAM_INDEX_OUT_OF_RANGE
?パラメタの設定で指定した値の個数を超える出現順序が指定されています。
?パラメタの設定を見直して，正しい出現順序を指定してください。

-2147217391​
EDMRC_QPARAM_BAD_VALUE
?パラメタの設定で指定した値が，不正である可能性があります。
設定した?パラメタの値とデータ型を見直してください。

-2147217402​
EDMRC_IN_ASYNC_EXECUTE
SQL文の非同期実行中です。
この操作は実行できません。

-2147217404​
EDMRC_NOT_INTRANSACTION
トランザクション外でメソッドが呼ばれました。
Beginメソッドを呼び出した後に，この操作を実行してください。

-2147217407​
EDMRC_PARSE_ERROR
XML文書の構文解析エラーが発生しました。
XML文書の内容を見直してください。

-2147220868​
DMARC_CONFLICTING_OPERATION
メソッドの呼び出し順序が矛盾しています。
正しい呼び出し順序でメソッドをコールしてください。

-2147220869​
DMARC_MULTIPLE_CHECKIN_NOT_SUPPORTED
同一オブジェクト上の複数の異なるチェックインをサポートしません。
この操作は実行できません。

-2147220870​
DMARC_BAD_DOC_SPACE
指定された識別子の文書空間は存在しません。
正しい文書空間を指定してください。

-2147220873​
DMARC_AT_ENUM_END
EnumerationOfObjectオブジェクトの現在位置は，要素であるオブジェクト群の末尾です。
DocumentBrokerサーバのメタ情報ファイル（slocalreg.ini）を見直してください。

-2147220875​
DMARC_RESULTS_TRUNCATED
結果集合はIdmaResultSet:TerminateResultsの呼び出しにより，切断されます。
この操作は実行できません。

-2147220876​
DMARC_NETWORK_ERROR
ネットワーク環境でエラーが発生しました。
ネットワーク環境を確認してください。

-2147220885​
DMARC_REQUIRED_VALUE_ABSENT
必要なプロパティ値が設定されていません。
値が必須のプロパティに値が設定されていません。

-2147220887​
DMARC_CONSTRAINT_VIOLATED
制約違反の操作です。
この操作は実行できません。

-2147220889​
DMARC_DATATYPE_MISMATCH
プロパティのデータ型に適切ではないメソッドです。
正しい型を指定してください。

-2147220900​
DMARC_ILLEGAL_OPERATION
DMA規約で禁止されている操作です。
この操作は実行できません。

-2147220903​
DMARC_NOT_AUTHENTICATED
ユーザは認証されていません。
正しいユーザIDおよびパスワードを指定してください。

-2147220906​
DMARC_NO_RESERVATION
バージョン識別子が予約されていません。
または，チェックアウトされていません。
チェックイン後に割り当てられる正式なバージョン識別子を，入力引数に設定してください。
または，チェックアウト状態を確認してください。

-2147220908​
DMARC_BAD_PROTECTION_LEVEL
同時更新に対する保護レベルが不正です。
正しい保護レベルを設定してください。

-2147220912​
DMARC_TIMEOUT
制限時間を超過しました。
タイムアウトしました。

-2147220921​
DMARC_BAD_OPERAND
オペランドのデータ型，形式またはクラスが不正です。
オペランドに正しいデータ型や形式，クラスを指定してください。

-2147220925​
DMARC_MAX_ROWS
検索結果の最大項目数を超えたため，検索結果の一部が切り捨てられました。
最大項目数を変更して，再度実行してください。

-2147220932​
DMARC_RESERVATION_EXISTS
Version SeriesはReservationをすでに保持しています。
この操作は実行できません。

-2147220933​
DMARC_RESERVATION_NOT_ALLOWED
Reservationが現在存在しないのに，Version Seriesの条件によりReservationが許可されませんでした。
この操作は実行できません。

-2147220934​
DMARC_RESERVATION_PENDING
コネクションはすでにReservation要求を保持しています。一度に一つ以上は存在できません。
この操作は実行できません。

-2147220936​
DMARC_NO_CURRENT_VERSION
VersionSeriesが最新バージョンを保持していません。
この操作は実行できません。

-2147220938​
DMARC_NETWORK_UNAVAILABLE
この操作を実行するために必要なネットワークが利用できません。

ネットワーク環境を確認してください。

クライアント側で接続するDocument Brokerサーバを選択している場合は，接続先のDocument Brokerサーバのdocspace.iniの[Entry0001]セクションに「SelectServerInMultiServer=Yes」の定義があるか確認してください。クライアント側で接続するDocumentBrokerサーバを選択していない場合は，「SelectServerInMultiServer=No」と定義しているか確認してください。

DocumentBrokerサーバが起動しているか確認してください。

EDMRefresherコマンドが実行中の場合は，コマンド終了後，再度実行してください。

-2147220943​
DMARC_DEVICE_ERROR
データベースのアクセスエラーが発生しました。
エラーメッセージを参照してエラーの要因を取り除いてください。

-2147220945​
DMARC_BAD_OIID
SetOIIDメソッドで設定されたOIIDが不正です。
または，引数で指定されたOIIDが不正です。
正しいOIIDを指定してください。

-2147220947​
DMARC_READ_ONLY
読み取り専用のオブジェクトまたはプロパティのため，異常終了しました。
このプロパティの値は更新できません。

-2147220951​
DMARC_BAD_VALUE
次の要因が考えられます。

プロパティやリストの値が，許容範囲外の値であるか，または最大値を超えました。

VariableArray型プロパティに設定する可変長配列の要素数が最大値を超えました。

docspace.iniの[Entry0001]セクションに「VArrayElementCheck=Yes」の定義がある場合に，VariableArray型プロパティの要素の値が，許容範囲外の値であるか，または最大値を超えました。

要因に応じて，次の対策を実施してください。

プロパティやリストの値の範囲を見直してください。

VariableArray型プロパティに設定する可変長配列の要素数を見直してください。

VariableArray型プロパティの要素の値の範囲を見直してください。

-2147220953​
DMARC_BAD_URL
リソースのURLが不正です。
URLの内容を見直してください。

-2147220955​
DMARC_URL_PROTOCOL_NOT_SUPPORTED
サポートしていないURLプロトコルです。
file:///で始まっているか確認してください。

-2147220957​
DMARC_RESOURCE_NOT_FOUND
指示されたリソースが見つかりません。
正しいリソースを指定してください。

-2147220958​
DMARC_VALUE_NOT_SET
要求されたプロパティは値を保持していません。
この操作は実行できません。

-2147220962​
DMARC_OBJECT_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

-2147220964​
DMARC_NOT_SUPPORTED
次の要因が考えられます。

このセッションまたはオブジェクトではサポートされていないメソッドです。または，サポートされていないデータ型です。

未サポートのモードを指定しました。

シングルスレッド対応のクライアントアプリケーションから発行されました。

要因に応じて，次の対策を実施してください。

この操作は実行できません。

このモードは指定できません。

マルチスレッド対応のクライアントアプリケーションから発行してください。

-2147220966​
DMARC_NOT_FOUND
要求された要素が見つかりません。
正しいオブジェクトを設定してください。

-2147220968​
DMARC_DISCONNECTED
文書空間との接続が切断されました。
セッションを接続してください。

-2147220971​
DMARC_LOST_CONNECTION
現在のオブジェクトからデータベースへの論理的な接続が失われました。操作は完了できません。
文書空間に再接続してください。

-2147220979​
DMARC_FOREIGN_OBJECT
そのオブジェクトは現在の文書空間ではありません。
正しいオブジェクトを指定してください。

-2147220981​
DMARC_BAD_PROPID
プロパティの識別子が不正です。
正しいプロパティ識別子を指定してください。

-2147220984​
DMARC_BAD_LOCK_TYPE
不正な種類のロックが指定されています。
正しいロックタイプを指定してください。

-2147220986​
DMARC_BAD_INDEX
指定されたインデクスは，正当なプロパティまたはリスト要素を参照していません。
正しいインデクスを指定してください。

-2147220988​
DMARC_BAD_CLASSID
指定された識別子は，利用できるオブジェクトのクラスではありません。
正しいクラス識別子を指定してください。

-2147418113​
DMARC_UNEXPECTED
予期しないエラーが発生しました。
処理を終了してください。

-2147467259​
DMARC_FAILED
次の要因が考えられます。

実行した操作の処理に失敗しました。

DocumentBrokerサーバのメタ情報ファイルが不正です。

メモリが不足しています。

DocumentSpace構成定義ファイルのProcessOrbBoaOptionエントリに，-OAthreadMaxオプションを129以上の値で指定している環境で，同時に129以上のクライアントからCdbrSession::Connectメソッドが発行されました。

メソッド発行順序が不正です。

要因に応じて，次の対策を実施してください。

時間を置いてから再度実行するか，処理を見直してください。

DocumentBrokerの実行環境ディレクトリ/etc/meta_files（UNIXの場合）またはDocumentBrokerのインストールディレクトリ¥Server¥etc¥meta_files（Windowsの場合）の下位にあるファイルを削除してから，-Fオプションを指定して，EDMPrintMetaコマンドを実行してください。

メモリを増設するか，メモリを大量に消費しているアプリケーションを終了して，処理を再度実行してください。

時間を置いて再度実行するか，-OAthreadMaxオプションの値を128以下にしてください。

メソッド発行順序を見直してください。

-2147467262​
DMARC_BAD_INTERFACE
要求したインターフェースは，このオブジェクトではサポートしていません。
正しいインターフェースを指定してください。

付録H.3　クラスライブラリ独自の戻り値（ERR_DBRの場合）

major_codeが ERR_DBRの場合のminor_codeの一覧を次の表に示します。

表H-3　major_codeがERR_DBRの場合のクラスライブラリ独自の戻り値一覧

minor_codeの
戻り値
minor_code
説明
対処

4
ERR_SESSION_ALREADY_CONNECTED
セッションがすでに接続されています。
処理を継続してください。または，いったん切断してから，再度このメソッドをコールしてください。

5
ERR_SESSION_NOT_CONNECT
次の要因が考えられます。

セッションが接続されていません。

EDMRefresherコマンドが実行中です。

メモリサイズ監視によるサービスプロセスのリフレッシュを実行中です。

要因に応じて，次の対策のどちらかを実施してください。

セッションを接続してください。

EDMRefresherコマンドが終了したあと，再度実行してください。

メモリサイズ監視によるサービスプロセスのリフレッシュが終了したあと，再度実行してください。

7
ERR_BAD_INTERFACE
指定されたインターフェースが不正です。
正しいインターフェースを指定してください。

8
ERR_BAD_PARAMETER
不正な引数が入力されました。
正しい引数を指定してください。

10
ERR_OBJECT_ALREADY_CONNECTED
オブジェクトはすでに接続されています。
この操作は実行できません。

11
ERR_OBJECT_NOT_CONNECT
オブジェクトは接続されていません。
オブジェクトを接続してください。

25
ERR_NONEXISTS_VERSION
指定されたバージョンは存在しません。
正しいバージョンを指定してください。

29
ERR_ACLIB_OBJECT_INVALID
クラスライブラリのオブジェクトは無効です。
有効なクラスライブラリのオブジェクトを指定してください。

30
ERR_OIID_NOT_SET
OIIDが設定されていません。
SetOIIDメソッドをコールしてから，このメソッドをコールしてください。

31
ERR_OBJECT_REMOVED
オブジェクトはすでに削除されています。
正しいオブジェクトを指定してください。

32
ERR_LAST_VERSION
指定されたバージョンは唯一のバージョンであるため，削除できません。
この操作は実行できません。

33
ERR_SESSION_OVERFLOW
制限を超えてConnectしようとしました。
時間を置いて，Connectユーザ数が減った後，再度実行してください。

34
ERR_INVALID_STATUS
セッションの状態が不正です。一つのセッションに同時に複数のメソッド処理要求が出されています。
一つのセッションに対して一度に一つの処理要求しか出さないように見直してください。

35
ERR_NO_SERVICE
使用できるサービスプロセスがありません。
時間を置いて，再度実行してください。
EDMRefresherコマンドが実行中の場合は，コマンド終了後，再度実行してください。

36
ERR_NOTSUPPORT_CLIENT_VERSION
操作を実行するためのネットワークが使用できません。
サーバのバージョンに対応したクライアントライブラリを利用してください。

37
ERR_ACCESS_NOT_PERMITTED
アクセス権がありません。
必要なアクセス権を設定して，再度実行してください。

40
ERR_ACCESSCONTROL_NOT_SUPPORTED
アクセス制御機能が未サポートです。
この操作は実行できません。

41
ERR_BAD_PERMISSION
不正なパーミッションが指定されました。
正しいパーミッションを指定してください。

42
ERR_BAD_SUBJECT_TYPE
不正なサブジェクト種別が指定されました。
正しいサブジェクト種別を指定してください。

43
ERR_INVALID_SUBJECT_LENGTH
サブジェクトの長さが不正です。
次に示す範囲内でサブジェクトを指定してください。

サブジェクトの種別がユーザ識別子の場合，1文字以上，ユーザ識別子の最大長以下の文字列を指定してください。
ユーザ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がグループ識別子の場合，1文字以上，グループ識別子の最大長以下の文字列を指定してください。
グループ識別子の最大長は，通常254文字ですが，DocumentBrokerの環境設定時に512文字まで拡張できます。

サブジェクトの種別がシステムサブジェクトの場合，1文字以上，254文字以下の文字列を指定してください。

ユーザ識別子とグループ識別子の最大長を拡張する方法の詳細は，マニュアル「DocumentBroker Version 3　システム導入・運用ガイド」を参照してください。

44
ERR_INVALID_ACE_COUNT
設定するACEの個数が制限値を超えています。
ACEは64個以内で指定してください。

45
ERR_INVALID_PUBLICACL_COUNT
バインドするパブリックACLの個数が制限値を超えています。
パブリックACLは10個以内で指定してください。

47
ERR_INVALID_ACE
不正なACEが指定されました。
ACEとして正しいCdbrCompoundを指定してください。

48
ERR_PUBLICACL_ALREADY_BOUND
指定されたパブリックACLはすでにバインドされています。
すでにバインドされているパブリックACLを指定しないで処理を再実行してください。

49
ERR_PUBLICACL_NOT_BOUND
指定されたパブリックACLはバインドされていません。
バインドされているパブリックACLを指定して処理を再実行してください。

50
ERR_NONEXISTS_PUBLICACL
指定されたパブリックACLは存在しません。
存在しないパブリックACLを指定しないで処理を再実行してください。

51
ERR_CONTENT_IS_EMPTY
コンテンツが変換処理されてなくて空です。
この操作は実行できません。

52
ERR_IS_MASTERRENDITION
指定されたRenditionTypeはマスタレンディションです。
RenditionTypeを見直してください。

53
ERR_LIMITNUM_OF_RENDITIONS
保持できるレンディション数の上限に達しています。
この操作は実行できません。

54
ERR_MASTERRENDTYPE_NOT_SET
マスタレンディションのRenditionTypeに値が設定されていません。
この操作は実行できません。

55
ERR_NONEXISTS_RENDITION
指定されたRenditionTypeは存在しません。
RenditionTypeを見直してください。

56
ERR_RENDITIONTYPE_DUPLICATED
RenditionTypeが重複しています。
重複しないRenditionTypeを指定してください。

57
ERR_RENDITION_NOT_CONVERTED
コンテンツが更新処理されていません。
この操作は実行できません。

58
ERR_CONTENTTYPE_MISMATCH
指定したレンディションタイプのコンテントに対して実行できません。
正しい文書オブジェクトを指定してメソッドを実行してください。

59
ERR_EQL_ALREADY_INITIALIZED
すでに初期化されています。
この操作は実行できません。

60
ERR_EQL_NOT_INITIALIZE
初期化が実行されていません。
初期化を実行してください。

61
ERR_EQL_STATEMENT_NOT_SET
実行するedmSQL文が登録されていません。
CdbrEqlStatement::Setメソッドで実行するedmSQL文を登録してください。

62
ERR_EQL_STATEMENT_NOT_EXEC
edmSQL文が実行されていません。
CdbrEqlStatement::Executeメソッドを実行し，edmSQL文を実行してください。

63
ERR_EQL_BAD_STATEMENT
不正なedmSQL文を実行しようとしました。
edmSQL文を見直してください。必要に応じて構文解析結果情報を取得してください。

65
ERR_NOT_VERSION_TRACEABLE
バージョントレース可能なオブジェクトではありません。
この操作はできません。オブジェクトのクラスを見直してください。

66
ERR_OBJECT_NOT_INITIALIZE
オブジェクトが初期化されていません。
初期化を実行してください。

67
ERR_OBJECT_ALREADY_INITIALIZED
オブジェクトは初期化済みです。
この操作は実行できません。

68
ERR_INVALID_DEFINITION
定義情報が不正です。
定義ファイルの内容を見直してください。

71
ERR_SESSION_ALREADY_AUTHENTICATED
文書空間にすでにログインしています。
処理を継続するか，文書空間からログアウトしてから，再度このメソッドをコールしてください。

72
ERR_SESSION_NOT_AUTHENTICATE
文書空間にログインしていません。
文書空間にログインしてください。

73
ERR_INVALIDENV
実行環境が不正です。
環境変数「DOCBROKERDIR」に，DocumentBrokerの実行環境ディレクトリを正しく指定するか，syslogファイルに出力されているメッセージを基に対処してください。

74
ERR_OPERATION_FAILED
初期化処理または終了処理に失敗しました。次の要因が考えられます。

docspace.iniメモリ常駐失敗

OIID通番メモリ常駐失敗

メタ情報常駐失敗

文書空間接続準備失敗

実行環境情報のメモリ常駐失敗

プロセス間ロック制御失敗

syslogファイルに出力されているメッセージを基に対処してください。

75
ERR_NOT_MULTI_CONTENTS
マルチファイル文書ではありません。
マルチファイル管理機能を使用しない場合の形式で実行してください。

76
ERR_BAD_CONTENTSCOUNT
登録しようとするファイルの数が多過ぎます。
登録するファイルの数を見直してください。

77
ERR_RETRIEVALNAME_DUPLICATED
RetrievalNameが重複して指定されています。
RetrievalNameが重複しないように指定してください。

78
ERR_COMPONENTTYPE_DUPLICATED
ComponentTypeが重複して指定されています。
ComponentTypeが重複しないように指定してください。

80
ERR_SYSTEMDBSERVER_NOT_NOTIFY
DBコネクション管理オブジェクトのリファレンスが未通知です。
処理を終了してから，再度実行してください。

81
ERR_FILELINK_FAILED
HiRDB File Linkでエラーが発生しました。
詳細メッセージを基に対処してください。

82
ERR_FAL_NOT_LOADED
HiRDB File Linkのライブラリがロードできません。
詳細メッセージを基に対処してください。

83
ERR_CONTENT_NOT_REGISTERED
コンテントが登録されていません。
コンテントを登録してください。

85
ERR_FILE_REFERENCE_OPERATION_FAILED
リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生しました。
詳細メッセージを基に対処してください。

86
ERR_FILE_REFERENCE_MISMATCH_STATUS
リファレンスファイル管理機能で扱うサーバマシンでのコンテントの操作でエラーが発生し，オブジェクトとコンテントが不整合な状態となりました。
エラーが発生した操作に応じて，次の対策を実施してください。

文書の更新のとき
文書を削除したあと，更新後のコンテントを使用して文書を作成してください。

文書の削除のとき
再度実行して文書を削除してください。

バージョンの削除のとき
再度実行してバージョンを削除してください。

チェックアウトの取り消しのとき
再度実行してチェックアウトを取り消してください。

87
ERR_TARGETCONTENTPATH_NOT_SET
リファレンスファイル管理機能でコンテント格納先ベースパスが設定されていません。または，UNC形式のパスの場合（Windowsだけ），コンテント格納先ベースパスにコンピュータ名またはIPアドレスだけが使用されています。
コンテント格納先ベースパスを設定してください。

88
ERR_REFERENCETYPE_MISMATCH
オブジェクト種別が一致していません。
オブジェクト種別または指定した操作モード（lContentOperateMode）を見直してください。

91
ERR_FILE_REFERENCE_CURRENT_CONTENT_NOTFOUND
リファレンスファイル管理機能でカレントバージョンのコンテントが存在しません。
エラーが発生したメソッドに応じて，次の対策を実施してください。

VersionCheckOut
該当するレンディションを削除し，必要に応じて，削除したレンディションを追加してください。または，バージョンを最新から順に確認し，コンテントが存在しないバージョンを削除してください。

VersionCheckIn
CdbrVersionable::VersionRevokeメソッドを実行し，VersionCheckOutを実行してください。必要に応じてコンテントを更新してください。

DeleteVersion
該当するレンディションを削除し，必要に応じて，削除したレンディションを追加してください。または，バージョンを最新（カレントバージョンを削除した場合は一つ前のバージョン）から順に確認し，コンテントが存在しないバージョンを削除してください。

RemoveObject
該当するレンディションを削除し，必要に応じて，削除したレンディションを追加してください。または，バージョンを最新（カレントバージョンを削除した場合は一つ前のバージョン）から順に確認し，コンテントが存在しないバージョンを削除してください。

VersionRevoke
該当するレンディションを削除し，必要に応じて，削除したレンディションを追加してください。または，バージョンを最新から順に確認し，コンテントが存在しないバージョンを削除してください。

92
ERR_CONVERT_CONTENT_TARGET_NOTFOUND
変換対象のコンテントは存在しません。
オブジェクトのコンテント種別または指定した変換対象とするコンテント種別（ISourseContentType）を見直してください。

93
ERR_CONVERT_CONTENT_NOT_RETRIEVALNAME
変換対象コンテントのdmaProp_RetrievalNameプロパティの値が設定されていない（値がNULLまたは空文字（""））ため，変換処理を実行できません。
dmaProp_RetrievalNameプロパティの値を設定してメソッドを実行してください。

付録H.4　データベースエラーが発生した場合の戻り値（ERR_DBの場合）

major_codeがERR_DBの場合のminor_codeの一覧を，次の表に示します。

表H-4　major_codeがERR_DBの場合のクラスライブラリ独自の戻り値一覧

minor_codeの
戻り値
minor_code
説明
対処

26
ERR_DB_LOCKED
オブジェクトがロックされています。
時間を置いて，再度実行してください。

27
ERR_DB_DEADLOCK_OCCURRED
データベースでデッドロックが発生しました。
時間を置いて，再度実行してください。

28
ERR_DB_FAILED
データベースで障害が発生しました。
syslogを参照して，障害の原因を取り除いてください。

付録H.5　詳細メッセージの出力について

アプリケーション開発でのデバッグ時および実行時のエラーに具体的に対処できるように，DocumentBrokerでは，より詳細なエラー情報（詳細メッセージ）を提供しています。

＜この項の構成＞

(1)　詳細メッセージの出力先

(2)　詳細メッセージ取得の対象メソッド，取得できる条件および注意事項

(1)　詳細メッセージの出力先

詳細メッセージの出力先は，次のとおりです。なお，詳細メッセージの内容については，マニュアル「DocumentBroker Version 3　メッセージ」を参照してください。

詳細エラーログファイル
クライアント環境変数DBR_DETAIL_ERRORLOGがONのとき，DBR_DETAIL_ERRORLOG_DIRで指定されたディレクトリの下に「EDMErrTraceCLXXXXX_1.log」として出力されます。XXXXはプロセスID番号を示します。詳細エラーログファイルには，エラーが発生しないときでもログが出力されますので，必要に応じて詳細エラーログファイルを削除するようにしてください。
クライアント環境変数については，マニュアル「DocumentBroker Version 3　クラスライブラリ　C++　解説」の「5.　環境設定」を参照してください。

CdbrSession::GetLastDetailErrorメソッドの引数
詳細メッセージは，それを取得するためのメソッドであるCdbrSession::GetLastDetailErrorメソッドをコールした場合に，引数の値として出力されます。
このメソッドは，クラスライブラリのメソッドのコール時にエラーが発生した場合に，CdbrCore::GetLastErrorメソッドでmajor_code，minor_codeを取得した後で必要に応じてコールします。メソッドの詳細については，「13.　CdbrSessionクラス（セッションを確立するクラス）」のCdbrSession::GetLastDetailErrorメソッドを参照してください。

(2)　詳細メッセージ取得の対象メソッド，取得できる条件および注意事項

(a)　詳細メッセージを取得できる対象メソッド

次に示すクラスのメソッドがエラーリターンした場合に， CdbrSession::GetLastDetailErrorメソッドで詳細メッセージを取得できます。

クラス名
メソッド名

CdbrConfiguratedReferentialContainer

CreateObject

GetLinkPropertyValues

GetLinkPropertyValuesAndLock

PutLinkPropertyValues

CdbrDocument
CreateObject

CdbrEqlStatement

ChangeACLMode

ChangeGetObjCount

ChangeLockType

DeleteResult

Execute

GetACLMode

GetResult

Initialize

Set

SetObjParam

SetOIIDParam

SetParam

Terminate

CdbrIndependentPersistence
CreateObject

CdbrPublicACL
CreateObject

CdbrReferentialContainer

CreateObject

GetLinkPropertyValues

GetLinkPropertyValuesAndLock

PutLinkPropertyValues

CdbrVersionableDocument
CreateObject

CdbrVersionTraceableContainer
CreateObject

(b)　詳細メッセージを取得できる条件

CdbrSession::GetLastDetailErrorメソッドは，取得するメッセージがない場合，引数ppDetailErrorMessageの指すポインタの値がNULLになります。引数ppDetailErrorMessageの指すポインタの値がNULL以外の場合に詳細メッセージを取得できます。

(c)　注意事項

詳細メッセージの取得についての注意事項を次に示します。

すべてのエラーに対して，詳細メッセージとしてKMBR20000-Eが出力されます。

クライアントで検知した引数不正に対しても詳細メッセージとしてKMBR26000-Eが出力されます。
クライアントで検知する引数不正には，次のような場合があります。

NULL値を指定できないポインタ引数に対してNULL値が設定された場合
なお，この引数不正が発生した場合でも，次に示すメソッドに関しては詳細メッセージを取得できません。
ConnectObjectメソッド
CreateObjectメソッド
SetOIIDメソッド
Initializeメソッド

アクセス権を操作するメソッドのエラー時およびアクセス権エラー時に詳細メッセージは取得できません。

付録I　障害が発生した時にDocumentBrokerが出力する情報

ここでは，障害が発生した時に，DocumentBrokerが出力する情報について説明します。

＜この節の構成＞

(1)　メッセージ

(2)　トレースファイル

(3)　サービスのワークディレクトリの削除

(1)　メッセージ

運用中のメッセージは，syslogに出力されます。

(2)　トレースファイル

発生した障害の切り分けや，原因究明のためにトレースファイルを出力します。関数トレースやメッセージも出力されます。

(a)　出力先ディレクトリ

トレースファイルは，環境変数「_HIEDMS_TRACE_DIR」に指定したディレクトリに出力されます。

デフォルトの出力先は，UNIXの場合は＜インストールディレクトリ＞/spool/clientカレントディレクトリ，Windowsの場合は＜インストールディレクトリ＞¥spool¥clientカレントディレクトリです。

(b)　出力ファイル名

トレースファイルの出力ファイル名は，環境変数に指定できません。次のファイル名で出力されます。

EDMRasTraceCL"PID"_"NO".log

注意：「PID」はプロセスIDです。「NO」は項番です。

(c)　切り替えファイル数

トレースを出力するファイルサイズの上限を超えた場合に，切り替えるファイルの数を指定できます。環境変数「_HIEDMS_TRACE_NUM」に，切り替えることができるファイルの数を0，または2～16の値で指定します。デフォルトは2です。切り替えるファイルの数の上限を超えると，最初のファイルに戻って出力します。このとき，ファイルは上書きされます。0を指定した場合，ファイルは作成されません。この場合，障害の切り分けや障害の原因究明などに必要な情報は出力されませんの注意してください。

(d)　ファイルサイズ

トレースを出力するファイルのサイズを，環境変数「_HIEDMS_TRACE_SIZE」に4096～2147483647の値で指定します。

デフォルトは1048576（1メガバイト）です。

(e)　トレースの出力レベル

トレースの出力レベルを変更できます。環境変数「_HIEDMS_TRACE_LEVEL」にトレースレベルを指定します。デフォルトは10です。トレースレベルと出力情報について，次の表に示します。

表I-1　トレースレベルと出力情報

トレースレベル
出力情報

-1

トレースヘッダ

0

エラーなどの必須情報

サーバの開始/終了

10（デフォルト）

トレースレベルが0の場合に出力される情報

ユーザインターフェースの情報

ほかのプログラムとのインターフェースの情報

データベースへの接続/切断

トレースレベルが-1の場合，環境変数「_HIEDMS_TRACE_NUM」にデフォルトの値または２以上の値が指定されていても，トレースを出力するファイルの数は一つです。

(f)　トレースファイルの保存日数

トレースファイルは，環境変数「_HIEDMS_TRACE_KEEP_DAYS_CLT」に指定した日数だけ保存されます。1～365の日数を指定します。デフォルトは0（日）です。0を指定した場合はトレースファイルは削除しません。

クライアントアプリケーションの停止時，トレースファイルの出力先ディレクトリに，環境変数「_HIEDMS_TRACE_KEEP_DAYS_CLT」で指定した保存日数を超えるトレースファイルが存在する場合，これらのファイルは削除されます。

削除対象は，「(a) 出力先ディレクトリ」の指定内容に対応した出力先のファイルです。

一つのシステムでは環境変数「_HIEDMS_TRACE_KEEP_DAYS」と「_HIEDMS_TRACE_KEEP_DAYS_CLT」は同じ値を設定することを推奨します。

なお，環境変数「_HIEDMS_TRACE_KEEP_DAYS」の詳細については，マニュアル「uCosminexus DocumentBroker Version 3 システム導入・運用ガイド」の，障害が発生した時にDocumentBrokerが出力する情報に関する説明を参照してください。

(3)　サービスのワークディレクトリの削除

ファイル転送サービス起動時に，環境変数「_HIEDMS_TRACE_KEEP_DAYS_CLT」で指定した保存日数を超えるサービスのワークディレクトリを削除します。ファイル転送サービスが作成していないディレクトリの場合でも，名称が14桁の数字で構成されているディレクトリは削除の対象となります。

削除対象となるディレクトリの例を次に示します。

<インストールディレクトリ>¥DevKit¥spool¥YYYYMMDDhhmmss※

<インストールディレクトリ>¥Runtime¥spool¥YYYYMMDDhhmmss※

注※

サービスを起動した時刻を表す文字列です。

YYYY：西暦年号（4桁）

MM：月（2桁）

DD：日（2桁）

hh：時（2桁）

mm：分（2桁）

ss：秒（2桁）

付録J　用語解説

DocumentBrokerで使用する用語について説明します。

（英字）

ACE

Access Control Elementの略です。アクセス制御エレメントのことです。

ACFlag

Access Control Flagの略です。アクセス制御フラグのことです。

ACL

Access Control Listの略です。アクセス制御リストのことです。

AND-NOT検索

検索オペレータに「AND-NOT」を使用する検索方法です。二つの検索条件をAND-NOTでつないで，左側のオペランドに指定した検索条件は成立するが，右側のオペランドに指定した検索条件は成立しない文書を検索します。例えば，「著者が『日立太郎』であるが，所属は『日立製作所』ではない文書を検索する」というような場合に使用できます。

AND検索

検索オペレータに「AND」を使用して，検索条件同士の論理積を求める検索方法です。例えば，「著者が『日立太郎』で，文書中に『コンピュータ』という文字列を含む文書を検索する」というような場合に使用できます。

API（Application Programming Interface）

アプリケーションプログラムとのインターフェースを指します。

CdbrCompoundオブジェクト

複合データを表すオブジェクトです。複合データとは，複数の異なる型によって表されるデータです。主に，VariableArray型のプロパティとして設定されているObject型の要素の値を参照，設定するときに使用します。

CdbrConfiguratedReferentialContainerオブジェクト

バージョン付き構成管理コンテナに相当するオブジェクトです。CdbrConfiguratedReferentialContainerクラスを基に作成します。

CdbrDocumentオブジェクト

（バージョンなし）文書に相当するオブジェクトです。CdbrDocumentクラスを基に作成します。CdbrVersionableDocumentオブジェクトの個々のバージョンとしても操作できます。

CdbrEqlStatementオブジェクト

SQLに基づいた文法で検索条件が記述できるedmSQL検索を実行するためのオブジェクトです。CdbrEqlStatementクラスを基に作成します。

CdbrIndependentPersistenceオブジェクト

クラスライブラリで提供するクラスの階層構造に属さない，独立データを表すオブジェクトです。CdbrIndependentPersistenceクラスを基に作成します。

CdbrPublicACLオブジェクト

パブリックACLを表すオブジェクトです。CdbrPublicACLクラスを基に作成します。

CdbrReferentialContainerオブジェクト

フォルダや分類（インデクス）を使用した文書管理を実現する，（バージョンなし）コンテナに相当するオブジェクトです。CdbrReferentialContainerクラスを基に作成します。

CdbrSessionオブジェクト

文書空間とクライアント環境のセッションを確立するオブジェクトです。CdbrSessionクラスを基に作成します。

CdbrVariableArrayオブジェクト

可変長配列を表すオブジェクトです。主に，VariableArray型のプロパティの値を参照，設定するときに使用します。

CdbrVersionableDocumentオブジェクト

DocumentBrokerで扱うバージョン付き文書に相当するオブジェクトです。このオブジェクトによって表される文書は，バージョン管理ができます。CdbrVersionableDocumentクラスを基に作成します。

CdbrVersionTraceableContainerオブジェクト

バージョンなし構成管理コンテナに相当するオブジェクトです。CdbrVersionTraceableContainerクラスを基に作成します。CdbrConfiguratedReferentialContainerオブジェクトの個々のバージョンとしても操作できます。

CdbrXmlTranslatorFactoryオブジェクト

XMLプロパティマッピング機能やXMLインデクスデータ作成機能を実行するための操作環境を管理するオブジェクトです。

また，CdbrXmlTranslatorオブジェクトを作成します。

CdbrXmlTranslatorオブジェクト

XMLプロパティマッピング機能およびXMLインデクスデータ作成機能を実行するオブジェクトです。

Child

直接型のコンテインメント（DirectContainment）の場合，オブジェクト（Parent）に包含されるオブジェクトを指します。

ConfigurationHistoryオブジェクト

バージョン管理に使用する最上位のDMAオブジェクトです。文書のバージョンを管理するVersionSeriesオブジェクトを管理します。

Containableオブジェクト

コンテナの包含要素になるオブジェクトです。CdbrContainableクラスのサブクラスを基に作成されたオブジェクトを指します。

Containee

参照型のコンテインメント（ReferentialContainment）の場合，オブジェクト（Container）に包含されるオブジェクトを指します。

Container

参照型のコンテインメントの場合，オブジェクト（Containee）を包含するオブジェクトを指します。

ContainerVersionオブジェクト

包含しているオブジェクト全体を一つの概念的なオブジェクトとして管理するDMAオブジェクトです。また，構成管理型のコンテインメントではオブジェクトを包含するオブジェクトとして利用できます。ContainerVersionオブジェクトは，バージョンを保持できるオブジェクトです。したがって，ContainerVersionオブジェクトのバージョンを上げることで，ある時点でのオブジェクトのまとまりを管理できます。

Containerオブジェクト

コンテインメントを利用してオブジェクトを管理する場合に，オブジェクトを包含するDMAオブジェクトの一つです。dmaClass_Containerクラスおよびユーザが定義したdmaClass_Containerクラスのサブクラスを基に作成します。

ContentElement（dmaClass_ContentElementクラス）

文書のコンテントにアクセスするために使われるDMAオブジェクトの抽象クラスです。ContentElementの四つのサブクラス（edmClass_ContentFileLinkクラス，dmaClass_ContentTransferクラス，edmClass_ContentTransfersクラス，およびdmaClass_ContentReferenceクラス）は，コンテントの格納とアクセス機能を提供します。

ContentFileLinkオブジェクト

文書のコンテントを管理するために使用するDMAオブジェクトです。File Link連携機能を使用する場合に使用します。dmaClass_ContentElementクラスのサブクラスであるedmClass_ContentFileLinkクラスを基に作成します。

ContentReferenceオブジェクト

文書のコンテントを管理するために使用するDMAオブジェクトです。コンテントをデータベースに格納しないで，位置情報を永続化して管理する場合に使用します。dmaClass_ContentElementクラスのサブクラスであるdmaClass_ContentReferenceクラスを基に作成します。

ContentTransfersオブジェクト

文書のコンテントを管理するために使用するDMAオブジェクトです。一つの文書のコンテントとして複数のファイルをデータベースに格納（永続化）して管理する場合に使用します。dmaClass_ContentElementクラスのサブクラスであるedmClass_ ContentTransfersクラスを基に作成します。

ContentTransferオブジェクト

文書のコンテントを管理するために使用するDMAオブジェクトです。コンテントをデータベースに格納（永続化）して管理する場合に使用します。dmaClass_ContentElementクラスのサブクラスであるdmaClass_ContentTransferクラスを基に作成します。

CORBA（Common Object Request Broker Architecture）

OMG（Object Management Group）が提唱するオブジェクト間の通信メカニズムを提供するORB（Object Request Broker）の標準アーキテクチャです。

DCD（Document Content Description）

W3Cで定義している，タグセットを記述するためのタグセットです。マッピング元XMLタグ定義はこのDCDの形式で記述します。DTDと同じようにXML文書の構造を記述しますが，DTDと異なり，DCD自体がXMLのタグセットとして定義されています。また，タグおよびその属性について，データの型を指定できるといった特長を持ちます。

DeclSetオブジェクト

DTDを管理するDMAオブジェクトです。宣言の集合は，内部DTDと外部DTDを合併して，パラメタエンティティを展開した形で格納されます。

DMA（Document Management Alliance）

文書管理インターフェースの標準化を図る団体AIIM（Association for Information and Image Management International）によって定義される共通インターフェースです。

DMA URL

DMAオブジェクトのOIID（Object Instance Identifier）を定義するURLです。

DMAオブジェクト

DMAが規定するオブジェクトモデルに基づいたオブジェクトです。DMAで規定されたクラス（クラス名がdmaClass_で始まるクラス），DocumentBrokerで拡張したクラス（クラス名がedmClass_で始まるクラス），およびこれらのクラスからユーザが定義したサブクラスを基に作成されます。

DocumentSpace構成定義ファイル（docspace.ini）

文書空間の構成を定義するために使用するファイルです。

DocVersionオブジェクト

DocumentBrokerで扱う文書に相当するDMAオブジェクトです。dmaClass_DocVersionクラスおよびユーザが定義したdmaClass_DocVersionクラスのサブクラスを基に作成します。

edmClass_Relationshipクラス

文書間リレーションを表すDMAクラスです。単独では作成できない，文書に従属するRelationshipオブジェクトの基となるクラスです。

edmSQL

DocumentBrokerのオブジェクトを検索するための検索条件式を表現するための文法です。SQLの文法に基づいています。

edmSQL検索

検索条件に，SQLライクの文法で記述できるedmSQL文を指定して実行する検索のことです。

FAM（File Access Module）

HiRDB File Linkで使用するファイルサーバ上で，コンテントを管理するためのプログラムです。

File Link文書

HiRDB File Linkで管理しているファイルサーバに格納されている一つのファイル，または一つのディレクトリおよびそのサブディレクトリ下のすべてのファイルをコンテントとして持つ文書のことです。データベースでは，コンテントへのリンク情報を管理しています。CdbrDocumentクラスまたはCdbrVersionableDocumentクラスを使用して操作します。

File Link連携機能

HiRDB File Linkと連携してコンテントを管理する機能です。

GUID

Globally Unique Identifierの略です。DMAのクラス，プロパティ，検索オペレータなどに与えるユニークな識別子です。GUIDは，「X」を0～9およびa～f（小文字）で表される16進数とした「XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX（8けた-4けた-4けた-4けた-12けた）」の形式で表されます。

IDファイル

オブジェクト操作ツールを使用して複数のオブジェクトを一括して操作する場合，操作対象となるオブジェクトのOIIDなどを記述するファイルです。

LDAP

Lightweight Directory Access Protocolの略です。TCP/IP上で動作する解放型DAPを提供し，X.500のデータモデルを保持しています。

NOT条件

指定したキーワードとの不一致を求める検索条件です。例えば，「作成者が『日立』ではない文書を検索する」というような場合に使用できます。

OIID

Object Instance Identifierの略です。文書空間での永続オブジェクトの存在や格納位置などを明確にするために使用する識別子です。OIIDはDMA URLとして定義されます。

OR検索

検索オペレータに「OR」を使用して，検索条件同士の論理和を求める検索方法です。例えば，「作成者が『日立太郎』であるオブジェクトか，作成者の所属が『日立製作所』であるオブジェクトを検索する」というような場合に使用できます。

Parent

直接型のコンテインメントの場合，オブジェクト（Child）を包含するオブジェクトを指します。

RDエリア

データベースの表，インデクスおよびデータディクショナリを格納するデータ領域のことです。データの格納単位の一つで，1～16個のHiRDBファイルから構成されます。

Renditionオブジェクト

文書の表現形式（HTML，PDFなど）を管理するDMAオブジェクトです。

Reservationオブジェクト

新しいバージョンを作成する権利をVersionSeriesオブジェクトに予約するDMAオブジェクトです。

Scalar型

プロパティの基本単位の一つです。基本単位がScalar型であるプロパティは，データ型に従った値を一つだけ持ちます。

SystemManagerオブジェクト

Systemオブジェクトを管理するDMAオブジェクトです。

Systemオブジェクト

サーバ内の文書空間を管理するDMAオブジェクトです。

UOC（User Own Coding）

ユーザによって作成されたプログラムのことです。DocumentBrokerでは，ユーザ認証や，アクセス制御機能のためのユーザ情報取得にUOCを使用できます。

VariableArray型

プロパティの基本単位の一つです。基本単位がVariableArray型であるプロパティは，データ型に従った複数の値を可変長な一次元配列として持ちます。また配列の要素は，構造体で管理できます。

Versionableオブジェクト

バージョン管理の対象になるオブジェクトです。CdbrVersionableクラスのサブクラスを基に作成されたオブジェクトを指します。

VersionDescriptionオブジェクト

文書のバージョン（更新履歴）を管理するために使用するDMAオブジェクトです。VersionSeriesオブジェクトとVersionableオブジェクトを接続するために使用します。

VersionSeriesオブジェクト

文書のバージョン（更新履歴）を管理するために使用するDMAオブジェクトです。連続的な履歴を持つバージョンの構成を保持するオブジェクトです。

VersionTracedComponentDocVersionオブジェクト

直接型，参照型および構成管理型のコンテインメントでコンテナに包含される対象となるためのプロパティを持つDMAオブジェクトです。dmaClass_DocVersionクラスのサブクラスのedmClass_VersionTracedComponentDocVersionクラスを基に作成します。

VersionTracedDocVersionオブジェクト

直接型，参照型および構成管理型のコンテインメントで，コンテナに包含される対象となるためのプロパティを持つDMAオブジェクトです。dmaClass_DocVersionクラスのサブクラスのedmClass_VersionTracedDocVersionクラスを基に作成します。

VTContainee

構成管理型のコンテインメントの場合，オブジェクト（VTContainer）に包含されるオブジェクトを指します。

VTContainer

構成管理型のコンテインメントの場合，オブジェクト（VTContainee）を包含するオブジェクトを指します。

W3C（World Wide Web Consortium）

HTMLやXMLなど，WWWに関する技術の標準化を推進する非営利団体です。

XMLインデクスデータ作成機能

XML文書の文書ファイルからプレーンテキスト形式または構造指定検索用の全文検索インデクスデータを作成する機能です。XML形式のファイルの構文解析もあわせて実行します。

XMLプロパティマッピング機能

XML形式のファイルを構文解析して，DocumentBrokerサーバのプロパティマッピング定義に従ってXML形式のファイル内に記述されているタグ間の文字列または属性値を，XML文書のプロパティに割り当てて設定する機能です。

（ア行）

アクセス権

オブジェクトを作成したり，すでに作成されているオブジェクトにアクセスしたりする権利です。

アクセス制御エレメント（ACE：Access Control Element）

アクセス制御リスト（ACL）の要素です。一つのサブジェクトと一つのパーミッションの組で構成され，指定されたサブジェクトに対して指定されたパーミッションの範囲のアクセス権を与えることを示す情報です。

アクセス制御機能

DocumentBrokerの文書空間でのオブジェクトの作成や，管理されている文書やコンテナなどのオブジェクトに対する操作を，ユーザやグループごとに許可または制限する機能です。

アクセス制御機能付き検索

アクセス制御機能を利用した文書空間で検索を実行した場合に，ユーザにアクセス権がないオブジェクトは検索結果として取得しない検索です。

アクセス制御情報

アクセス制御されている文書空間で，ユーザがメソッドを発行する際に，アクセス権の判定に使用される情報です。

アクセス制御情報変更権

オブジェクトに設定されているアクセス制御情報（ACFlagおよびACL）を変更する権利です。また，パブリックACLをアクセス制御対象オブジェクトにバインドすることを許可する権利も含みます。なお，パブリックACLのアクセス情報変更権には，パブリックACLのユーザ定義プロパティを変更する権利を含みます。

アクセス制御フラグ（ACFlag：Access Control Flag）

オブジェクトの所有者，プライマリグループおよび全ユーザという区分でパーミッションを設定できるアクセス制御情報の一つです。

アクセス制御モデル

アクセス制御機能を利用して運用されている文書管理モデルです。

アクセス制御リスト（ACL：Access Control List）

任意のユーザまたはグループにパーミッションを設定できるアクセス制御情報の一つです。アクセス制御エレメント（ACE）のリストで構成されます。

アドレス呼び出し

文書空間内に構成されている独立した永続オブジェクトに付けられたID（OIID）を利用して，そのオブジェクトを探索することです。

異表記展開検索

全文検索条件として指定する検索タームまたは検索タームの異表記を含む文書を検索する方法です。例えば，検索タームとして「バイオリン」を指定した場合に，「ヴァイオリン」という検索タームの異表記を含む文書も検索できます。

インデクス情報ファイル

ユーザが追加するプロパティにインデクスを定義する場合に，定義するインデクスの情報を記述するファイルです。

永続オブジェクト

データベースに格納されたオブジェクトを指します。

永続プロパティ

データベースに存在するプロパティを指します。

オブジェクト作成権

オブジェクト作成権限で，文書空間にオブジェクトを作成する権利を与えるパーミッションです。ユーザ権限定義ファイルで使用します。

オブジェクト作成権限

文書空間にオブジェクトを作成する権限で，ユーザ権限の一つです。ユーザ権限定義ファイルで定義します。オブジェクト作成権限を与えられたユーザおよびグループに属するユーザは，オブジェクトを作成するメソッド（CreateObject）を実行できます。

オブジェクト操作権限

文書空間内のすべてのオブジェクトを，与えられた権限の範囲で操作する権利で，ユーザ権限の一つです。ユーザ権限定義ファイルで定義します。例えば，オブジェクト操作権限としてプロパティ参照権を与えられたユーザおよびグループに属するユーザは，文書空間内のすべてのオブジェクトのプロパティを参照できます。

オブジェクト操作ツール

DocumentBrokerが提供するクラスライブラリを使用したクライアントアプリケーションです。クラスライブラリを使用してユーザがクライアントアプリケーションを開発する場合に，必要であると思われる機能をコマンド群として提供します。

オブジェクトリファレンス

DMAオブジェクトへのリファレンスを示すObject型プロパティの値です。例えば，dmaProp_ParentContainerプロパティの値がこれに当たります。

（カ行）

概念検索

ユーザが任意に指定した文章や文字列を手がかりにして，その条件と似た概念を持つ文書を検索する方法です。全文検索の一種です。概念検索で指定する条件のことを種文章といいます。

仮のバージョン識別子

チェックアウト中の仮のバージョンを識別するための識別子です。

チェックアウト中のオブジェクトを参照・更新する時に使用します。この識別子はチェックアウト時にDocumentBrokerによって設定される識別子であり，仮のバージョンに該当するオブジェクトのOIIDとは異なります。

関連オブジェクト

コンテインメントの型（直接型，間接型および構成管理型）を定義するためのDMAオブジェクトです。

直接型のコンテインメントの場合，オブジェクトを包含するオブジェクト（Parent）とオブジェクトに包含されるオブジェクト（Child）をDirectContainmentRelationshipオブジェクトを使用して関連づけます。参照型のコンテインメントの場合，オブジェクトを包含するオブジェクト（Container）とオブジェクトに包含されるオブジェクト（Containee）をReferentialContainmentRelationshipオブジェクトを使用して関連づけます。

構成管理型のコンテインメントの場合，オブジェクトを包含するオブジェクト（VTContainer）とオブジェクトに包含されるオブジェクト（VTContainee）をVersionTraceableContainmentRelationshipオブジェクトを使用して関連づけます。

基本コンテント更新権

基本パーミッションの一つで，オブジェクトのコンテントを更新する権利を与えるパーミッションです。基本プロパティ参照権を含みます。文書に対して設定する場合は，全文検索インデクスを作成，削除する権利を含みます。

基本コンテント参照権

基本パーミッションの一つで，オブジェクトのコンテントを参照する権利を与えるパーミッションです。基本プロパティ参照権を含みます。文書に対して設定する場合は，全文検索を実行する権利を含みます。

基本削除権

基本パーミッションの一つで，オブジェクトを削除する権利を与えるパーミッションです。基本プロパティ参照権を含みます。

基本単位

DMAで規定されているプロパティは，データ型に従った値を1個持つか複数個持つかが決められています。これを基本単位といいます。

基本バージョン管理権

基本パーミッションの一つで，バージョン管理されているオブジェクトのバージョンを追加，削除する権利を与えるパーミッションです。基本プロパティ参照権を含みます。

基本パーミッション

ユーザおよびグループがオブジェクトに対して実行できる操作の範囲を定めるパーミッションの基本単位です。オブジェクト操作権限，アクセス制御フラグおよびアクセス制御エレメントで，ユーザおよびグループに許可する操作の範囲を定めるときに使用します。例えば，あるユーザに対して，文書の更新と削除を許可する場合は，更新と削除を許可するために，基本コンテント更新権と基本削除権という二つのパーミッションを設定します（一つのパーミッションで一つの権利を与える）。基本パーミッションには，基本プロパティ参照権，基本プロパティ更新権，基本コンテント参照権，基本コンテント更新権，基本リンク権，基本バージョン管理権および基本削除権があります。

基本プロパティ更新権

基本パーミッションの一つで，オブジェクトのプロパティを更新する権利を与えるパーミッションです。基本プロパティ参照権を含みます。

基本プロパティ参照権

基本パーミッションの一つで，オブジェクトのプロパティを参照する権利を与えるパーミッションです。そのほかのすべての基本パーミッションに含まれます。コンテナに対して設定する場合は，関連オブジェクトのユーザ定義プロパティの参照と管理されている要素を参照する権利を含みます。

基本リンク権

基本パーミッションの一つで，コンテインメントの設定，変更および関連オブジェクトのユーザ定義プロパティを変更する権利を与えるパーミッションです。基本プロパティ参照権を含みます。

近傍条件検索

検索オペレータに「Prox」を使用する拡張検索（全文検索）です。指定する検索タームが同時に存在する場合に，その検索ターム間の距離を条件として検索します。例えば，「『文書管理』という検索タームと『ドキュメント』という検索タームを含み，これらの検索タームがこのとおりの順序で出現し，かつ検索ターム間に入る文字が5文字以内である文書を検索する」というような場合に使用できます。

組み合わせパーミッション

基本パーミッションを複数組み合わせた権利を与えるパーミッションの単位です。アクセス制御フラグおよびアクセス制御エレメントでユーザおよびグループに許可する操作の範囲を定めるときに使用します。組み合わせパーミッションには，プロパティ参照権，参照権，プロパティ更新権，参照更新権，削除権，リンク権，バージョン管理権およびフルコントロールがあります。例えば，あるユーザに対して，ある文書の参照更新権という組み合わせパーミッションを設定すると，そのユーザは基本プロパティ参照権，基本プロパティ更新権，基本コンテント参照権および基本コンテント更新権が設定されたのと同じ範囲の操作を，その文書に対して実行できます。

クラス定義情報ファイル

DocumentBrokerサーバで定義されているDMAオブジェクトのクラスまたはそのサブクラスのクラス名またはプロパティ名からGUID，データ型，プロパティの基本単位などの情報を取得するために使用するファイルです。EDMCrtSimMetaコマンドでも作成できます。オブジェクト操作ツールを使用する場合に必要です。

継承（Inheritance）

既存のクラスを利用して新しいクラスを定義するオブジェクト指向の技術です。

検索結果構造体

検索結果が格納される構造体です。

構成管理型のコンテインメント（VersionTraceableContainment）

コンテナを利用した文書管理の方法です。構成管理型のコンテインメントで使われるコンテナは，バージョンを作成できるオブジェクトの構成を管理します。

構成管理コンテナ

構成管理型のコンテインメントで使われるコンテナです。

包含されるオブジェクトのバージョンを固定して管理したり，常に最新のバージョンを追跡して管理したりすることで，包含されるオブジェクト全体の構成を管理するために使用するコンテナです。CdbrVersionTraceableContainerに相当します。DMAオブジェクトでは，ContainerVersionオブジェクトに相当します。

構造指定検索

XML文書を管理している場合に，文書の論理構造（エレメント）やエレメントの属性をキーとして検索する方法です。例えば，「タイトルに『コンピュータ』という単語が含まれ，章に『XML』という単語が含まれる文書を検索する」というような場合に使用します。また，「『document』というエレメントに設定されている属性『status』の属性値が『public』である文書を検索する」というような場合にも使用できます。

コンテインメント（包含）

コンテナを使用したオブジェクトの包含関係を示します。コンテインメントには直接型（DirectContainment），参照型（ReferentialContainment）および構成管理型（VersionTraceableContainment）の3種類があります。

コンテナ

コンテインメントで，オブジェクトを包含できるオブジェクトの総称です。CdbrReferentialContainerオブジェクト，CdbrConfiguratedReferentialContainerオブジェクトおよびCdbrVersionTraceableContainerオブジェクトがこれに当たります。また，DMAオブジェクトとしては，Containerオブジェクト，VersionTraceableContainerオブジェクトおよびContainerVersionオブジェクトがあります。

コンテント

一般的には，属性に対する文書のデータ部分を指します。DMAでは，ある文書に関連づけられていて，DMAで規定されているContentモデルに従ってアクセスされるオブジェクトの集合を指します。また，アクセスされるオブジェクトの実体（例えば，report.doc，document.htmなど）をコンテントデータといいます。

コンテント格納先パス

リファレンスファイル管理機能を使用する場合に，コンテント格納先ベースパスを基点とする相対パスのことです。

コンテント格納先ベースパス

リファレンスファイル管理機能を使用する場合に，コンテント格納先の基点となるディレクトリパスのことです。

コンテント種別

レンディションのコンテントが，シングルファイル文書のコンテントか，マルチファイル文書のコンテントか，リファレンスファイル文書のコンテントか，またはFile Link文書のコンテントかを示します。

コンテントロケーション

リファレンスファイル管理機能を使用する場合に，コンテントの格納先を示す情報のことです。

（サ行）

削除権

組み合わせパーミッションの一つです。基本削除権と同じ操作を許可するパーミッションです。

サブクラス

あるクラスから派生するクラスのことです。または，それ自身がサブクラスとして参照されているクラスのことです。

サブジェクト（Subject）

アクセス権を与えるユーザまたはグループです。

サブジェクト種別（SubjectType）

アクセス権を与えるサブジェクトが，ユーザなのか，グループなのかまたはシステムなのかを識別するための情報です。

サブレンディション

マルチレンディション文書に，追加登録されたレンディションのことです。マスタレンディション以外のレンディションを指します。なお，サブレンディションは，登録後にマスタレンディションに変更できます。

参照型のコンテインメント（ReferentialContainment）

コンテナを利用した文書管理の方法です。参照型のコンテインメントで使われるコンテナは，文書にはり付けるインデクスの働きをします。

参照権

組み合わせパーミッションの一つです。基本コンテント参照権と同じ操作を許可するパーミッションです。

参照更新権

組み合わせパーミッションの一つです。基本プロパティ参照権，基本プロパティ更新権，基本コンテント参照権および基本コンテント更新権を組み合わせたパーミッションです。すなわち，参照更新権を設定することで，プロパティを参照，更新する権利とコンテントを参照，更新する権利を設定できます。

システム管理者

DocumentBrokerの運用管理者です。

実行環境制御ファイル

オブジェクト操作ツールの実行環境を定義するファイルです。

状態フラグ

マルチレンディション文書の，マスタレンディションに対するサブレンディションのコンテントの状態を表すフラグです。マスタレンディションとサブレンディションのコンテントの状態が一致している，マスタレンディションのコンテントが更新されたのに対してサブレンディションのコンテントが更新されていない，またはサブレンディションのコンテントが存在しない，という3種類の状態が表されます。dbrProp_RenditionStatusプロパティの下位2バイトに設定されます。

所有者（Owner）

オブジェクトの所有者として設定されているユーザです。アクセス制御フラグでパーミッションを与えられます。所有者に設定されているユーザは，そのオブジェクトのアクセス制御フラグで所有者に与えられたパーミッションの範囲の操作をそのオブジェクトに対して実行できます。また，そのオブジェクトの所有者およびセキュリティACLの値を変更できます。

シングルファイル文書

データベースに登録されている一つのファイルをコンテントとして持つ文書のことです。CdbrDocumentクラスまたはCdbrVersionableDocumentクラスを使用して操作します。

スーパークラス

あるクラスのクラス定義に使われたクラスを，派生したクラスのスーパークラスといいます。

セキュリティACL

オブジェクトに設定されたアクセス制御情報へのアクセスを制御するためのアクセス制御リストです。任意のユーザまたはグループにアクセス制御情報変更権を設定できます。

セキュリティ運用者

DocumentBrokerのアクセス制御の運用情報の管理者です。セキュリティ定義ファイルを保守します。

セキュリティ管理者

アクセス制御機能を利用した文書空間で，アクセス判定を受けることなく，すべてのオブジェクトに自由にアクセスする特権を持ち，文書空間のすべてのオブジェクトを保守するユーザです。セキュリティ定義ファイルに定義します。

セキュリティ定義ファイル

アクセス制御の運用情報を定義するファイルです。セキュリティ管理者，ユーザ権限定義ファイル名およびオブジェクト作成時に，アクセス制御フラグにデフォルトで設定されるパーミッションを定義します。

全文検索

文書中に含まれるキーワードを条件（全文検索条件）として，キーワードを含む文書を検索する方法です。

全文検索インデクス

全文検索の対象になるテキストデータに対応するプロパティです。edmProp_TextIndexプロパティ，edmProp_StIndexプロパティ，edmProp_ConceptTextIndexプロパティ，edmProp_ConceptStIndexプロパティおよびedmProp_Contentプロパティに相当します。

全文検索機能付き文書クラス

全文検索の対象となる文書を作成するためのdmaClass_DocVersionクラスのサブクラスです。メタ情報ファイルを新規に作成したり，既存のメタ情報ファイルを編集したりして，全文検索のためのプロパティを追加したユーザ定義のクラスです。

（タ行）

チェックアウト（check-out）

文書またはコンテナにバージョンを追加するために，次バージョンの追加を予約して，最新バージョンのコピーを要求することです。

DMAオブジェクトでは，VersionSeriesオブジェクトに新規DocVersionオブジェクト（文書）を作成するための権利を予約して，新規DocVersionオブジェクトの追加対象となるVersionSeriesオブジェクトで管理している最新のDocVersionオブジェクトのコピーを要求することです。

チェックイン（check-in）

文書またはコンテナのバージョンの追加を確定することです。

DMAオブジェクトでは，VersionSeriesオブジェクトに，新規DocVersionオブジェクト（文書）を追加することです。クライアントは特定のVersionSeriesオブジェクトに対して，Reservationオブジェクトを保持しておく必要があります。

直接型のコンテインメント（DirectContainment）

コンテナを利用した文書管理の方法です。直接型のコンテインメントで使われるコンテナは，文書を格納するフォルダの働きをします。

定義情報ファイル

サブクラスおよびプロパティを追加するときに，追加するオブジェクトの定義情報を記述するファイルです。

同義語展開検索

全文検索条件として指定する検索タームまたは検索タームの同義語を含む文書を検索する方法です。例えば，検索タームとして「パソコン」を指定した場合に，「電子計算機」，「パーソナルコンピュータ」，「PC」など，検索タームと同じ意味を持つ単語を含む文書も検索できます。

動作環境メタ情報ファイル

DocumentBrokerを起動するときに参照するメタ情報です。実行環境ディレクトリ/etc/meta_filesに格納されます。

独立データ

CdbrIndependentPersistenceオブジェクトに相当します。ほかのオブジェクトに依存しない，独立したオブジェクトです。

特権

アクセス制御機能を利用した文書空間で，アクセス判定を受けることなく，すべてのオブジェクトに自由にアクセスする権利です。セキュリティ定義ファイルにセキュリティ管理者として定義されたユーザに与えられます。特権の有無は，ログイン時にセキュリティ定義ファイルが参照され，ログインユーザごとに作成されるユーザ情報に保持されます。

トップオブジェクト

クラスライブラリのオブジェクトを構成する複数のDMAオブジェクトのうち，最上位に位置するオブジェクトです。例えば，CdbrDocumentオブジェクトの場合は，DMAオブジェクトのDocVersionオブジェクトがトップオブジェクトです。

（ナ行）

ナビゲーション

ある独立した永続オブジェクトから，別の関連する独立した永続オブジェクトに対する横断的な参照関係を指します。

（ハ行）

バージョン管理権

組み合わせパーミッションの一つです。基本プロパティ参照権，基本プロパティ更新権，基本コンテント参照権，基本コンテント更新権および基本バージョン管理権を組み合わせたパーミッションです。

バージョン付き構成管理コンテナ

バージョンを保持できる構成管理コンテナです。CdbrConfiguratedReferentialContainerオブジェクトに相当します。DMAオブジェクトでは，ConfigurationHistoryオブジェクトに相当します。

バージョンなし構成管理コンテナ

バージョンを保持しない構成管理コンテナです。CdbrVersionTraceableContainerオブジェクトに相当します。DMAオブジェクトでは，ContainerVersionオブジェクトに相当します。

パーミッション

オブジェクトの作成，オブジェクトのプロパティ参照，オブジェクトのコンテント更新などの実行可能な操作の範囲を表す値です。オブジェクト作成権限を与えるパーミッション，オブジェクトの操作の範囲を定めるパーミッションがあります。オブジェクトの操作の範囲を定めるパーミッションには，基本パーミッションと組み合わせパーミッションがあります。

パブリックACL

文書空間にオブジェクトとして存在するアクセス制御リスト（ACL）です。複数のオブジェクトが共有できます。

ファイルサーバ

HiRDB File Linkで構築したファイルサーバを指します。

フィルタリング定義ファイル（TFD）

Preprocessing Library for Text Searchの正規化機能によって構造指定検索用データ（ESIS-Bデータ）から不要なタグを除去したり，不要なタグ間のテキストをタグごと除去したりする場合に必要な定義ファイルです。

プライマリグループ

アクセス制御フラグ（ACFlag）でパーミッションを与えるグループです。

フルコントロール

組み合わせパーミッションの一つです。すべての基本パーミッションを組み合わせたパーミッションです。オブジェクトに対するすべての操作を許可します。

プロパティ更新権

組み合わせパーミッションの一つです。基本プロパティ更新権と同じ操作を許可するパーミッションです。

プロパティ参照権

組み合わせパーミッションの一つです。基本プロパティ参照権と同じ操作を許可するパーミッションです。

プロパティマッピング定義ファイル（DPM）

XML文書中のタグ名とその内容をマッピングするクラス名，およびプロパティ名の対応関係の定義（プロパティマッピング定義）を記述したファイルです。この定義ファイルを基に，XML定義ファイルの追加／更新／削除コマンド（EDMXmlMap）によってマッピング定義ファイルを生成します。

プロパティマッピング定義は，登録時にマッピング定義名を付けて登録します。プロパティマッピングの実行時には，このマッピング定義名を指定して使用するプロパティマッピング定義を選択します。

文書

CdbrVersionableDocumentオブジェクトおよびCdbrDocumentオブジェクトに相当します。CdbrVersionableDocumentオブジェクトを，「バージョン付き文書」と呼びます。CdbrDocumentオブジェクトを，「バージョンなし文書」と呼びます。

DMAオブジェクトでは，dmaClass_DocVersionクラスおよびそのサブクラスを基に作成するオブジェクトのことです。

文書空間

DMAオブジェクトモデルを実装するリポジトリです。

変換フラグ

マルチレンディション文書の，サブレンディションのコンテントを，レンディション変換の対象にするかどうかを表すフラグです。DocumentBroker Rendering Optionを使用してレンディション変換を実行する場合に使用します。また，DocumentBroker Rendering Optionによるレンディション変換でエラーが発生した場合には，エラーを示すフラグとしても使われます。dbrProp_RenditionStatusプロパティの上位2バイトに設定されます。

（マ行）

マスタレンディション

マルチレンディション文書に，最初に登録されたレンディションのことです。マルチレンディション文書を参照・更新するときには，レンディション形式を指定しますが，レンディション形式を指定しない場合は，マスタレンディションが対象になります。なお，マスタレンディションとして扱うレンディションは，登録後に変更できます。

マッピングセット定義ファイル（XMS）

HiRDB Adapter for XMLが使用する，登録されたマッピング定義の一覧を管理するファイルです。

マッピング定義ファイル（XMP）

HiRDB Adapter for XMLが使用できる文法に変換したマッピング定義が記述されているファイルです。ユーザ作成のプロパティマッピング定義ファイル（DPM）とマッピング元XMLタグ定義ファイル（DCD）から生成します。

マッピング元XMLタグ定義ファイル（DCD）

登録するXML文書の構造をDCDの形式で記述したファイルです。

マルチファイル管理機能

一つの文書に，複数のファイルを登録して管理する機能です。

マルチファイル文書

データベースに登録されている複数のファイルをコンテントとして持つ文書のことです。CdbrDocumentクラスまたはCdbrVersionableDocumentクラスを使用して操作します。

マルチレンディション機能

一つの文書に，同一内容の複数の異なる形式のコンテントを登録する機能です。

マルチレンディション文書

複数のレンディションを登録している文書のことです。一つの同じ内容を表す複数の形式のコンテントを保持する文書です。CdbrDocumentクラスまたはCdbrVersionableDocumentクラスを使用して操作します。

メタ情報ファイル

DocumentBrokerが利用するDMAのクラス，プロパティ，検索オペレータなどの詳細情報を定義したファイルです。クラスおよびプロパティを追加，変更する場合に使用できます。

メタデータ（metadata）

クラス，プロパティおよびオペレータに関する詳細情報を定義するデータです。

メタデータ空間

単一の継承関係を形成するクラスの集合のことです。

（ヤ行）

ユーザ権限

文書空間にオブジェクトを作成する権利（オブジェクト作成権限）と，文書空間内のすべてのオブジェクトに対する操作の範囲（オブジェクト操作権限）をユーザまたはグループ単位で定めるアクセス制御情報の一つです。ユーザ権限定義ファイルに定義します。ユーザ権限の内容は，ログイン時にユーザ権限定義ファイルが参照され，ログインユーザごとに作成されるユーザ情報に保持されます。

ユーザ権限定義ファイル

ユーザ権限（オブジェクト作成権限およびオブジェクト操作権限）を定義するためのファイルです。

ユーザ情報

ログインユーザのユーザ識別子，所属グループ，特権およびユーザ権限を表す情報です。ログイン時にユーザごとに生成され，アクセス権の判定に使用されます。

（ラ行）

ランキング検索

全文検索条件に対する適応度をスコアとして算出して，スコアを基に検索結果集合の要素（文書）をソートして出力する検索です。

リファレンスファイル管理機能

DocumentBrokerサーバが存在するマシンから接続可能なファイルシステムの任意のディレクトリで文書のコンテントを管理し，文書のプロパティおよびコンテントの格納先の情報をデータベースで管理する機能です。

リファレンスファイル文書

DocumentBrokerサーバが存在するマシンから接続可能なファイルシステムの任意のディレクトリに格納されているファイルをコンテントとして持つ文書のことです。データベースでは，文書のプロパティおよびコンテントの格納先の情報を管理しています。CdbrDocumentクラスまたはCdbrVersionableDocumentクラスを使用して操作します。

リレーション

DMAオブジェクトのRelationshipオブジェクトに相当します。文書と文書の間の参照関係を表すオブジェクトです。

リレーション先文書

文書間リレーションを設定される，参照先になる文書です。

リレーション識別子

文書間に設定されたリレーションを識別するための識別子です。

リレーションを削除したり，リレーションのプロパティを更新したりする時に使用します。この識別子は，リレーションを設定した時にDocumentBrokerによって設定される識別子です。同じ文書から同じ文書に対して二つのリレーションを設定した場合は，それぞれ異なるリレーション識別子が設定されます。

リレーション元文書

文書間リレーションを設定する元になる文書です。

リンク

DMAオブジェクトのDirectContainmentRelationshipオブジェクト，ReferentialContainmentRelationshipオブジェクトまたはVersionTraceableContainmentRelationshipオブジェクトによって表される，文書とコンテナの関連づけです。

リンク権

組み合わせパーミッションの一つです。基本リンク権と同じ操作を許可するパーミッションです。

リンク識別子

コンテナオブジェクトへのリンク（関連づけ）を識別するための識別子です。

リンクを解除したり，リンクのプロパティの参照または更新したり，構成管理モードを変更したりする時に使用します。

この識別子は関連づけをした時にDocumentBrokerによって設定される識別子です。同じコンテナオブジェクトに，同じ要素を2度関連づけした場合は，それぞれ異なるリンク識別子が設定されます。

レンディション

文書のコンテントの形式およびそのコンテントをあわせてレンディションと呼びます。DMAオブジェクトのRenditionオブジェクトおよびContentTransferオブジェクトに相当します。

レンディションタイプ

Wordなどのアプリケーションで編集したファイル，HTML形式のファイル，GIFなどの画像データのファイルのように，登録した文書のコンテントのファイルの形式を表す文字列です。レンディションごとに設定できます。DocumentBrokerでは，レンディションタイプとして，MIME名を指定することを推奨しています。

レンディションのコンテント種別変換機能

レンディションのコンテントの格納先を，最適な格納先へ変換することができる機能です。

レンディション変換

マルチレンディション文書の，マスタレンディションのコンテントの文書形式を変換して，サブレンディションのコンテントを作成，登録することです。

ローカルACL

オブジェクトごとに設定できるアクセス制御リスト（ACL）です。VariableArray型のプロパティとして設定されます。

ロケール（Locale）

言語や使用する文字コードの種別，特定の国や地域で特別な意味を持つ属性などの定義のことです。ロケールは地域化した形でアプリケーションの拡張性を提供するために使われます。

索引

[記号]
[Ａ][Ｂ][Ｃ][Ｄ][Ｅ][Ｆ][Ｇ][Ｉ][Ｌ][Ｎ][Ｏ][Ｐ][Ｒ][Ｓ][Ｔ][Ｕ][Ｖ][Ｗ][Ｘ]
[ア行][カ行][サ行][タ行][ナ行][ハ行][マ行][ヤ行][ラ行]

(記号)

~CdbrCompoundメソッド

~CdbrConfiguratedReferentialContainerメソッド

~CdbrContainableメソッド

~CdbrCoreメソッド

~CdbrDMAメソッド

~CdbrDocumentメソッド

~CdbrEqlStatementメソッド

~CdbrIndependentPersistenceメソッド

~CdbrPublicACLメソッド

~CdbrReferentialContainerメソッド

~CdbrSessionメソッド

~CdbrVariableArrayメソッド

~CdbrVersionableDocumentメソッド

~CdbrVersionableメソッド

~CdbrVersionTraceableContainerメソッド

~CdbrXmlTranslatorFactoryメソッド

~CdbrXmlTranslatorメソッド

(英字)

(Ａ)

ACE

ACFlag

ACL

AddRenditionメソッド

AddRenditionメソッド

Addメソッド

AND-NOT検索

AND検索

API

(Ｂ)

Beginメソッド

BindPublicACLメソッド

BindPublicACLメソッド

BindPublicACLメソッド

(Ｃ)

CdbrCompoundオブジェクト

CdbrCompoundクラス

CdbrCompoundクラスの詳細

CdbrCompoundメソッド

CdbrConfiguratedReferentialContainerオブジェクト

CdbrConfiguratedReferentialContainerクラス

CdbrConfiguratedReferentialContainerクラスの詳細

CdbrConfiguratedReferentialContainerメソッド

CdbrContainableクラス

CdbrContainableクラスの詳細

CdbrContainableメソッド

CdbrCoreクラス

CdbrCoreクラスの詳細

CdbrCoreメソッド

CdbrDMAクラス

CdbrDMAクラスの詳細

CdbrDMAメソッド

CdbrDocumentオブジェクト

CdbrDocumentクラス

CdbrDocumentクラスの詳細

CdbrDocumentメソッド

CdbrEqlStatementオブジェクト

CdbrEqlStatementクラス

CdbrEqlStatementクラスの詳細

CdbrEqlStatementメソッド

CdbrIndependentPersistenceオブジェクト

CdbrIndependentPersistenceクラス

CdbrIndependentPersistenceクラスの詳細

CdbrIndependentPersistenceメソッド

CdbrPublicACLオブジェクト

CdbrPublicACLクラス

CdbrPublicACLクラスの詳細

CdbrPublicACLメソッド

CdbrReferentialContainerオブジェクト

CdbrReferentialContainerクラス

CdbrReferentialContainerクラスの詳細

CdbrReferentialContainerメソッド

CdbrSessionオブジェクト

CdbrSessionクラス

CdbrSessionクラスの詳細

CdbrSessionメソッド

CdbrVariableArrayオブジェクト

CdbrVariableArrayクラス

CdbrVariableArrayクラスの詳細

CdbrVariableArrayメソッド

CdbrVersionableDocumentオブジェクト

CdbrVersionableDocumentクラス

CdbrVersionableDocumentクラスの詳細

CdbrVersionableDocumentメソッド

CdbrVersionableクラス

CdbrVersionableクラスの詳細

CdbrVersionableメソッド

CdbrVersionTraceableContainerオブジェクト

CdbrVersionTraceableContainerクラス

CdbrVersionTraceableContainerクラスの詳細

CdbrVersionTraceableContainerメソッド

CdbrXmlTranslatorFactoryオブジェクト

CdbrXmlTranslatorFactoryクラス

CdbrXmlTranslatorFactoryクラスの詳細

CdbrXmlTranslatorFactoryメソッド

CdbrXmlTranslatorオブジェクト

CdbrXmlTranslatorオブジェクトの生成

CdbrXmlTranslatorクラス

CdbrXmlTranslatorクラスの詳細

CdbrXmlTranslatorメソッド

ChangeACLModeメソッド

ChangeGetObjCountメソッド

ChangeLockTypeメソッド

ChangeMasterRenditionメソッド

ChangeMasterRenditionメソッド

Child

Commitメソッド

ConfigurationHistoryオブジェクト

ConnectObjectメソッド

Connectメソッド

Containableオブジェクト

Containableオブジェクトとの関連づけ

Containableオブジェクトとの関連づけと同時に指定したロックの設定

Containableオブジェクトとの関連づけの解除

Containableオブジェクトとの関連づけの解除と同時に指定したロックの設定

Containee

Container

ContainerVersionオブジェクト

Containerオブジェクト

ContentElement

ContentFileLinkオブジェクト

ContentReferenceオブジェクト

ContentTransfersオブジェクト

ContentTransferオブジェクト

ConvertContentTypeメソッド

ConvertContentTypeメソッド

CORBA

CreateIndexメソッド

CreateIndexメソッド

CreateObjectメソッド

CreateObjectメソッド

CreateObjectメソッド

CreateObjectメソッド

CreateObjectメソッド

CreateObjectメソッド

CreateObjectメソッド

CreateRelationメソッド

CreateRelationメソッド

CreateTranslatorメソッド

(Ｄ)

dbrDelete関数

dbrDmaIdFromString関数

DCD

DeclSetオブジェクト

DeleteRenditionメソッド

DeleteRenditionメソッド

DeleteResultメソッド

DeleteVersionメソッド

Deleteメソッド

Disconnectメソッド

DMA

dmaClass_ConfigurationHistoryクラスのプロパティ

dmaClass_Containerクラスのプロパティ

dmaClass_DirectContainmentRelationshipクラスのプロパティ

dmaClass_DocVersionクラスのプロパティ

dmaClass_ReferentialContainmentRelationshipクラスのプロパティ

dmaClass_Renditionクラスのプロパティ

dmaProp_Childrenプロパティ

dmaProp_ClassDescriptionプロパティ

dmaProp_Containeesプロパティ

dmaProp_Containersプロパティ

dmaProp_ContentElementsPresentプロパティ

dmaProp_ContentElementsプロパティ

dmaProp_CurrentOfSeriesCountプロパティ

dmaProp_Headプロパティ

dmaProp_OIIDプロパティ

dmaProp_ParentContainerプロパティ

dmaProp_Parentプロパティ

dmaProp_PrimaryVersionSeriesプロパティ

dmaProp_RenditionsPresentプロパティ

dmaProp_Renditionsプロパティ

dmaProp_RenditionTypeプロパティ

dmaProp_Tailプロパティ

dmaProp_Thisプロパティ

dmaProp_VersionDescriptionsプロパティ

dmaProp_VersionedObjectClassプロパティ

DMA URL

DMAオブジェクト

DMAオブジェクト生成用の構造体

DMA情報リスト構造体

DMA情報リストの取得

DMAの戻り値

DocSpaceとの接続

DocumentSpace構成定義ファイル

DocVersionオブジェクト

(Ｅ)

edmClass_ComponentDocVersionクラスのプロパティ

edmClass_ContainerVersionクラスのプロパティ

edmClass_ContentSearchクラスのプロパティ

edmClass_IndependentPersistenceクラスのプロパティ

edmClass_PublicACLクラスのプロパティ

edmClass_Relationshipクラス

edmClass_Relationshipクラスのプロパティ

edmClass_VersionTraceableContainmentRelationshipクラス

edmClass_VersionTracedComponentDocVersionクラスのプロパティ

edmClass_VersionTracedDocVersionクラスのプロパティ

edmProp_ConceptStIndexプロパティ

edmProp_ConceptTextIndexプロパティ

edmProp_ContentIndexStatusプロパティ

edmProp_Contentプロパティ

edmProp_DocLengthプロパティ

edmProp_DocVersionOIIDプロパティ

edmProp_OwnerIdプロパティ

edmProp_RawScoreプロパティ

edmProp_RelationTypeプロパティ

edmProp_RenditionsCountプロパティ

edmProp_Scoreプロパティ

edmProp_StIndexプロパティ

edmProp_TextIndexプロパティ

edmProp_VTConfigurationHistoryプロパティ

edmProp_VTContaineesプロパティ

edmProp_VTContainersプロパティ

edmProp_VTModeプロパティ

edmProp_VTVersionSeriesプロパティ

edmSQL

edmSQL検索

edmSQL文の?パラメタ（DMAオブジェクト）の設定

edmSQL文の?パラメタ（OIID）の設定

edmSQL文の?パラメタの設定

edmSQL文の設定

edmSQL文を操作，実行するクラス

ERR_DBRの場合

ERR_DBRの場合のクラスライブラリ独自の戻り値一覧

ERR_DBの場合

ERR_DBの場合のクラスライブラリ独自の戻り値一覧

ERR_DMAの場合のDMAの戻り値一覧

Executeメソッド

(Ｆ)

FAM

File Linkパス情報構造体

File Link文書

File Link連携機能

(Ｇ)

GetACLModeメソッド

GetBindObjectListAndLockメソッド

GetBindObjectListメソッド

GetClassTypeメソッド

GetContainableListAndLockメソッド

GetContainableListAndLockメソッド

GetContainableListメソッド

GetContainableListメソッド

GetContainerListAndLockメソッド

GetContainerListメソッド

GetContentAndLockメソッド

GetContentAndLockメソッド

GetContentInfoメソッド

GetContentInfoメソッド

GetContentメソッド

GetContentメソッド

GetCountメソッド

GetCountメソッド

GetDataTypeメソッド

GetDataTypeメソッド

GetDBErrorメソッド

GetDmaInfoListメソッド

GetDocSpaceCharacterSetメソッド

GetIdメソッド

GetIndexDataメソッド

GetLastDetailErrorメソッド

GetLastErrorメソッド

GetLinkPropertyValuesAndLockメソッド

GetLinkPropertyValuesAndLockメソッド

GetLinkPropertyValuesメソッド

GetLinkPropertyValuesメソッド

GetOIIDメソッド

GetPropertyValuesAndLockメソッド

GetPropertyValuesAndLockメソッド

GetPropertyValuesメソッド

GetPropertyValuesメソッド

GetPublicACLListAndLockメソッド

GetPublicACLListAndLockメソッド

GetPublicACLListAndLockメソッド

GetPublicACLListメソッド

GetPublicACLListメソッド

GetPublicACLListメソッド

GetReferencePathメソッド

GetRelationListAndLockメソッド

GetRelationListAndLockメソッド

GetRelationListメソッド

GetRelationListメソッド

GetRenditionListAndLockメソッド

GetRenditionListAndLockメソッド

GetRenditionListメソッド

GetRenditionListメソッド

GetReservationStatusAndLockメソッド

GetReservationStatusメソッド

GetResultメソッド

GetTypeメソッド

GetUserInfoメソッド

GetValueメソッド

GetValueメソッド

GetVersionableListAndLockメソッド

GetVersionableListAndLockメソッド

GetVersionableListメソッド

GetVersionableListメソッド

GetVersionListAndLockメソッド

GetVersionListメソッド

GetVTContaineeListAndLockメソッド

GetVTContaineeListAndLockメソッド

GetVTContaineeListメソッド

GetVTContaineeListメソッド

GUID

(Ｉ)

IDファイル

Initializeメソッド

Initializeメソッド

(Ｌ)

LDAP

LinkAndLockメソッド

LinkAndLockメソッド

LinkVTFixAndLockメソッド

LinkVTFixAndLockメソッド

LinkVTFixメソッド

LinkVTFixメソッド

LinkVTFloatAndLockメソッド

LinkVTFloatAndLockメソッド

LinkVTFloatメソッド

LinkVTFloatメソッド

Linkメソッド

Linkメソッド

(Ｎ)

NOT条件

(Ｏ)

OIID

OIID（DMA URL）のBNF記法

OIID指定時のURLの文法

OIIDの形式

OIIDの取得

OIIDの設定

OIIDの設定やプロパティを扱うクラス

OrbComponentShutdownメソッド

OrbComponentStartメソッド

OR検索

(Ｐ)

Parent

PutLinkPropertyValuesメソッド

PutLinkPropertyValuesメソッド

PutPropertyValuesメソッド

PutPropertyValuesメソッド

PutRelationPropertyValuesメソッド

PutRelationPropertyValuesメソッド

PutRenditionPropertyValuesメソッド

PutRenditionPropertyValuesメソッド

(Ｒ)

RDエリア

ReleaseObjectメソッド

RemoveIndexメソッド

RemoveIndexメソッド

RemoveObjectメソッド

RemoveRelationメソッド

RemoveRelationメソッド

Renditionオブジェクト

Reservationオブジェクト

Resizeメソッド

Rollbackメソッド

(Ｓ)

Scalar型

SDBR_CONTENTINFO構造体

SDBR_CONTENTLIST構造体

SDBR_DMAINFOLIST構造体

SDBR_DMAINFO構造体

SDBR_FILELINK_PATHINFO構造体

SDBR_LINKEDOBJINFO構造体

SDBR_LINKEDOBJLIST構造体

SDBR_OBJINFO構造体

SDBR_OBJLIST構造体

SDBR_PATHINFO構造体

SDBR_PATHLIST構造体

SDBR_PROPDEF構造体

SDBR_PROPERTIES構造体

SDBR_PROPLIST構造体

SDBR_PROP構造体

SDBR_QUERYRESULT構造体

SDBR_REFERENCE_PATHINFO構造体

SDBR_RELATIONINFO構造体

SDBR_RELATIONLIST構造体

SDBR_RENDITION_COMMENTINFO構造体

SDBR_RENDITIONINFO構造体

SDBR_RENDITIONLIST構造体

SDBR_VROBJINFO構造体

SDBR_VROBJLIST構造体

SDBR_VTLINKEDOBJINFO構造体

SDBR_VTLINKEDOBJLIST構造体

SDBR_VTOBJINFO構造体

SDBR_VTOBJLIST構造体

SetObjParamメソッド

SetOIIDParamメソッド

SetOIIDメソッド

SetParamメソッド

SetReferencePathメソッド

SetValueメソッド

SetValueメソッド

SetVTFixAndLockメソッド

SetVTFixメソッド

SetVTFixメソッド

SetVTFloatAndLockメソッド

SetVTFloatメソッド

SetVTFloatメソッド

Setメソッド

SystemManagerオブジェクト

Systemオブジェクト

(Ｔ)

Terminateメソッド

TPBrokerのORBコンポーネントの開始

TPBrokerのORBコンポーネントの終了

(Ｕ)

UnbindPublicACLメソッド

UnbindPublicACLメソッド

UnbindPublicACLメソッド

UnlinkAndLockメソッド

UnlinkAndLockメソッド

UnlinkVTAndLockメソッド

UnlinkVTAndLockメソッド

UnlinkVTメソッド

UnlinkVTメソッド

Unlinkメソッド

Unlinkメソッド

UOC

UpdateContentAndRenditionTypeメソッド

UpdateContentAndRenditionTypeメソッド

UpdateContentメソッド

UpdateContentメソッド

(Ｖ)

VariableArray型

Versionableオブジェクト

VersionCheckInメソッド

VersionCheckOutメソッド

VersionDescriptionオブジェクト

VersionRevokeメソッド

VersionSeriesオブジェクト

VersionTracedComponentDocVersionオブジェクト

VersionTracedDocVersionオブジェクト

VTContainee

VTContainer

(Ｗ)

W3C

(Ｘ)

XMLインデクスデータ作成機能

XMLの操作環境を管理するクラス

XMLプロパティマッピング機能

XML変換を扱うクラス

(ア行)

(あ)

アクセス権

アクセス制御エレメント

アクセス制御機能

アクセス制御機能付き検索

アクセス制御情報

アクセス制御情報変更権

アクセス制御フラグ

アクセス制御モードの取得

アクセス制御モードの変更

アクセス制御モデル

アクセス制御リスト

値の取得

値の取得

値の設定

値の設定

アドレス呼び出し

(い)

異表記展開検索

インデクス情報ファイル

(え)

永続オブジェクト

永続オブジェクトの確定

永続プロパティ

エラー情報を取得するクラス

エラー番号の取得

(お)

オブジェクト作成権

オブジェクト作成権限

オブジェクト情報構造体

オブジェクト操作権限

オブジェクト操作ツール

オブジェクトとの接続の解除

オブジェクトの削除

オブジェクトの種別の取得

オブジェクトの初期化

オブジェクトの初期化とセッションオブジェクトへの登録

オブジェクトの新規作成

オブジェクトの新規作成

オブジェクトの新規作成

オブジェクトの新規作成

オブジェクトの新規作成

オブジェクトの新規作成

オブジェクトリスト構造体

オブジェクトリファレンス

オブジェクトを指定したモードでロックして接続

(カ行)

(か)

概念検索

可変長配列を扱うクラス

仮のバージョン識別子

関数

関連オブジェクト

関連づけの解除

関連づけの解除と同時に指定したロックの設定

関連づけの設定

関連づけの設定と同時に指定したロックの設定

(き)

基本コンテント更新権

基本コンテント参照権

基本削除権

基本単位

基本バージョン管理権

基本パーミッション

基本プロパティ更新権

基本プロパティ参照権

基本リンク権

近傍条件検索

(く)

組み合わせパーミッション

クラス定義情報ファイル

クラスライブラリで提供するクラス一覧

クラスライブラリ独自の戻り値

クラスライブラリの戻り値

(け)

継承

検索結果構造体

検索結果構造体

検索結果の削除

検索結果の取得

検索結果の取得件数の変更

(こ)

構成管理オブジェクト情報構造体

構成管理オブジェクトリスト構造体

構成管理型のコンテインメント

構成管理コンテナ

構成管理しているオブジェクトとの関連づけの解除

構成管理しているオブジェクトとの関連づけの解除

構成管理しているオブジェクトとの関連づけの解除と同時に指定したロックの設定

構成管理しているオブジェクトとの関連づけの解除と同時に指定したロックの設定

構成管理しているオブジェクトの一覧取得

構成管理しているオブジェクトの一覧取得

構成管理しているオブジェクトの一覧取得と同時に指定したロックの設定

構成管理しているオブジェクトの一覧取得と同時に指定したロックの設定

構成管理するオブジェクトのFIXモードでの関連づけ

構成管理するオブジェクトのFIXモードでの関連づけ

構成管理するオブジェクトのFIXモードでの関連づけと同時に指定したロックの設定

構成管理するオブジェクトのFIXモードでの関連づけと同時に指定したロックの設定

構成管理するオブジェクトのFLOATINGモードでの関連づけ

構成管理するオブジェクトのFLOATINGモードでの関連づけ

構成管理するオブジェクトのFLOATINGモードでの関連づけと同時に指定したロックの設定

構成管理するオブジェクトのFLOATINGモードでの関連つけと同時に指定したロックの設定

構成管理リンク付きオブジェクト情報構造体

構成管理リンク付きオブジェクトリスト構造体

構成要素のバージョン固定の解除

構成要素のバージョン固定の解除

構成要素のバージョン固定の解除と同時に指定したロックの設定

構成要素のバージョンの固定

構成要素のバージョンの固定

構成要素のバージョンの固定と同時に指定したロックの設定

構造指定検索

コンストラクタ

コンストラクタ

コンストラクタ

コンストラクタ

コンストラクタ

コンストラクタ

コンストラクタ

コンストラクタ

コンストラクタ

コンストラクタ

コンストラクタ

コンストラクタ

コンストラクタ

コンストラクタ

コンストラクタ

コンストラクタ

コンストラクタ

コンテインメント

コンテナ

コンテナの一覧取得

コンテナの一覧取得と同時に指定したロックの設定

コンテント

コンテント格納先パス

コンテント格納先ベースパス

コンテント格納先ベースパスの取得

コンテント格納先ベースパスの設定

コンテント種別

コンテント情報構造体

コンテント情報リスト構造体

コンテントロケーション

(サ行)

(さ)

最後にCdbrSession::Commitメソッドがコールされた状態まで戻す

削除権

サブクラス

サブジェクト

サブジェクト種別

サブレンディション

参照型のコンテインメント

参照権

参照更新権

(し)

システム管理者

実行環境制御ファイル

指定したOIIDのクラスの判定

詳細エラー情報の取得

詳細メッセージの出力について

状態フラグ

所有者

シングルファイル文書

(す)

スーパークラス

(せ)

セキュリティACL

セキュリティ運用者

セキュリティ管理者

セキュリティ定義ファイル

セッションオブジェクトへの登録抹消

セッションの切断

セッションを確立するクラス

設定済みedmSQL文の実行

全文検索

全文検索インデクス

全文検索インデクス作成用データの取得

全文検索インデクスの削除

全文検索インデクスの削除

全文検索インデクスの作成

全文検索インデクスの作成

全文検索機能付き文書クラス

(タ行)

(ち)

チェックアウト

チェックアウト状態の取得

チェックアウト状態の取得と同時に指定したロックの設定

チェックアウトの取り消し

チェックイン

直接型のコンテインメント

(て)

定義情報ファイル

データベースエラーが発生した場合の戻り値

データベースのエラーの取得

デストラクタ

デストラクタ

デストラクタ

デストラクタ

デストラクタ

デストラクタ

デストラクタ

デストラクタ

デストラクタ

デストラクタ

デストラクタ

デストラクタ

デストラクタ

デストラクタ

デストラクタ

デストラクタ

デストラクタ

(と)

同義語展開検索

動作環境メタ情報ファイル

独立データ

独立データを扱うクラス

特権

トップオブジェクト

トランザクションの開始

(ナ行)

(な)

ナビゲーション

(ハ行)

(は)

バージョン管理機能を提供するクラス

バージョン管理権

バージョン管理情報一覧の取得

バージョン管理情報一覧の取得

バージョン管理情報一覧の取得と同時に指定したロックの設定

バージョン管理情報一覧の取得と同時に指定したロックの設定

バージョン識別子付きオブジェクト情報構造体

バージョン識別子付きオブジェクトリスト構造体

バージョン情報一覧の取得

バージョン情報一覧の取得と同時に指定したロックの設定

バージョン付き構成管理コンテナ

バージョン付き構成管理コンテナを扱うクラス

バージョン付き文書を扱うクラス

バージョンなし構成管理コンテナ

バージョンなし構成管理コンテナを扱うクラス

バージョンなしコンテナを扱うクラス

バージョンなし文書を扱うクラス

バージョンの削除

バージョンのチェックアウト

バージョンのチェックイン

パーミッション

バインドしているオブジェクトの一覧情報の取得

バインドしているオブジェクトの一覧情報の取得と同時に指定したロックの設定

バインドしているパブリックACL一覧情報の取得

バインドしているパブリックACL一覧情報の取得

バインドしているパブリックACL一覧情報の取得（バージョン指定あり）

バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定

バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定

バインドしているパブリックACL一覧情報の取得と同時に指定したロックの設定（バージョン指定あり）

パブリックACL

パブリックACLのアンバインド

パブリックACLのアンバインド

パブリックACLのアンバインド（バージョン指定あり）

パブリックACLの新規作成

パブリックACLのバインド

パブリックACLのバインド

パブリックACLのバインド（バージョン指定あり）

パブリックACLを扱うクラス

(ふ)

ファイルサーバ

ファイルの更新

ファイルの更新

ファイルの更新およびRenditionTypeの変更

ファイルの更新およびRenditionTypeの変更

ファイルの取得

ファイルの取得

ファイルの取得と同時に指定したロックの設定

ファイルの取得と同時に指定したロックの設定

ファイルパス情報構造体

ファイルパス情報リスト構造体

フィルタリング定義ファイル（TFD）

複合データを扱うクラス

プライマリグループ

フルコントロール

プロパティ更新権

プロパティ構造体

プロパティ参照権

プロパティ定義情報構造体

プロパティの取得

プロパティの取得（バージョン指定あり）

プロパティの取得と同時に指定したロックの設定

プロパティの取得と同時に指定したロックの設定（バージョン指定あり）

プロパティの設定

プロパティの設定（バージョン指定あり）

プロパティマッピング定義ファイル（DPM）

プロパティリスト構造体

文書

文書間リレーションの解除

文書間リレーションの解除

文書間リレーションの設定

文書間リレーションの設定

文書間リレーションのプロパティの設定

文書間リレーションのプロパティの設定

文書空間

文書のリレーション情報の一覧取得

文書のリレーション情報の一覧取得

文書のリレーション情報の一覧取得と同時に指定したロックの設定

文書のリレーション情報の一覧取得と同時に指定したロックの設定

(へ)

変換フラグ

(ほ)

包含しているContainableオブジェクトの一覧取得

包含しているContainableオブジェクトの一覧取得と同時に指定したロックの設定

包含要素の一覧取得

包含要素の一覧取得と同時に指定したロックの設定

包含要素を扱うクラス

(マ行)

(ま)

マスタレンディション

マスタレンディションへの変更

マスタレンディションへの変更

マッピングセット定義ファイル（XMS）

マッピング定義ファイル（XMP）

マッピング元XMLタグ定義ファイル（DCD）

マルチファイル管理機能

マルチファイル文書

マルチファイル文書の情報の取得

マルチファイル文書の情報の取得

マルチレンディション機能

マルチレンディション文書

(め)

メソッド実行時の排他制御（ロック）

メソッド実行時の明示的なロックと暗黙のロック

メソッド実行時のロック一覧

メソッドの実行に必要なパーミッション

メソッドの実行に必要なパーミッション一覧

メタ情報ファイル

メタデータ

メタデータ空間

メモリの解放

(も)

文字列からDmaId型への変換

戻り値一覧

戻り値の種類とmajor_code，minor_codeの関係

(ヤ行)

(ゆ)

ユーザ権限

ユーザ権限定義ファイル

ユーザ情報

ユーザ情報の取得

(よ)

要素IDの取得

要素数の取得

要素数の取得

要素数の変更

要素の型の取得

要素の型の取得

要素の削除

要素の追加

(ラ行)

(ら)

ランキング検索

(り)

リファレンスパス情報構造体

リファレンスファイル管理機能

リファレンスファイル文書

リレーション

リレーション先文書

リレーション識別子

リレーション情報構造体

リレーション元文書

リレーションリスト構造体

リンク

リンク権

リンク識別子

リンク付きオブジェクト情報構造体

リンク付きオブジェクトリスト構造体

リンクのプロパティの取得

リンクのプロパティの取得

リンクのプロパティの取得と同時に指定したロックの設定

リンクのプロパティの取得と同時に指定したロックの設定

リンクのプロパティの設定

リンクのプロパティの設定

(れ)

レンディション

レンディション一覧の取得

レンディション一覧の取得

レンディション一覧の取得と同時に指定したロックの設定

レンディション一覧の取得と同時に指定したロックの設定

レンディションコメント情報構造体

レンディション情報構造体

レンディションタイプ

レンディションのコンテント種別変換機能

レンディションの削除

レンディションの削除

レンディションの追加

レンディションの追加

レンディションのプロパティの設定

レンディションのプロパティの設定

レンディション変換

レンディションリスト構造体

(ろ)

ローカルACL

ロケール

ロック種別の変更

■ 商標類

Acrobat Distillerは，Adobe Systems Incorporated（アドビシステムズ社）の商標です。
AIXは，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
Borlandのブランド名および製品名はすべて，米国Borland Software Corporationの米国およびその他の国における商標または登録商標です。
CORBAは，Object Management Groupが提唱する分散処理環境アーキテクチャの名称です。
GIFは，米国CompuServe Inc.が開発したフォーマットの名称です。
Microsoftは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Microsoft Office Wordは，米国Microsoft Corporationの商品名称です。
Microsoftは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。Microsoft Wordは，米国Microsoft Corporationの商品名称です。
OLEは，米国Microsoft Corporationが開発したソフトウェア名称です。
TIFFは，米国Aldus Corp.が開発したフォーマットの名称です。
UNIXは，The Open Groupの米国ならびに他の国における登録商標です。
Windowsは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Vistaは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
活文，PDFstaffは，株式会社日立ソリューションズの登録商標です。
その他記載の会社名，製品名は，それぞれの会社の商標もしくは登録商標です。