PObjectクラス
OCCIには、アプリケーションが次の操作をオブジェクトに対して実行できるように、オブジェクト・ナビゲーショナル・コールが用意されています。
-
オブジェクトの作成、アクセス、ロック、削除、コピーおよびフラッシュ
-
オブジェクトへの参照の取得
このクラスによって、型の定義に携わる担当者は、クラスが永続または一時インスタンスを保持できる時点を指定できます。PObject
から導出されたクラスのインスタンスは、永続または一時のいずれかです。たとえば、永続性可能なクラスA
は、PObject
クラスを継承します。
class A : PObject { ... }
NULL
のPObject
に対する有効なメソッドは、setName()、isNull()およびoperator=()のみです。
lock()などの一部のメソッドは、永続インスタンスのみに適用され、一時インスタンスには適用されません。
表13-31 PObjectクラスで使用される列挙値
属性 | オプション |
---|---|
LockOption |
|
UnpinOption |
|
表13-32 PObjectメソッドの概要
メソッド | 概要 |
---|---|
|
|
修正した永続オブジェクトをデータベース・サーバーにフラッシュします。 |
|
|
|
指定された永続オブジェクトへの参照を戻します。 |
|
このクラスのOracleデータベース型名を戻します。 |
|
永続オブジェクトがロックされているかどうかを確認します。 |
|
オブジェクトが |
|
データベース・サーバーの永続オブジェクトをロックします。ロックがない場合、デフォルトのモードはロックの待機です。 |
|
永続オブジェクトに削除済マークを設定します。 |
|
永続オブジェクトに修正済または使用済マークを設定します。 |
|
1つの |
|
永続オブジェクトをアプリケーション・キャッシュのみから削除します。 |
|
永続/一時インスタンスを新規作成します。 |
|
オブジェクトを確保します。 |
|
オブジェクトの値を |
|
オブジェクトの使用済マークを解除します。 |
|
オブジェクトの確保を解除します。デフォルトのモードでは、オブジェクトの確保カウントは1つ分減少します。 |
PObject()
PObject
クラスのコンストラクタです。
構文 | 説明 |
---|---|
PObject(); |
|
PObject( const PObject &obj); |
|
パラメータ | 説明 |
---|---|
obj |
コピー元のオブジェクトを指定します。 |
isLocked()
このメソッドは、永続オブジェクトがロックされているかどうかを確認します。永続オブジェクトがロックされている場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool isLocked() const;
isNull()
このメソッドは、永続オブジェクトがNULL
かどうかをテストします。永続オブジェクトがNULL
の場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool isNull() const;
lock()
データベース・サーバーの永続オブジェクトをロックします。
構文
void lock( PObject::LockOption lock_option);
パラメータ | 説明 |
---|---|
lock_option |
ロック・オプションです。表13-31を参照してください。 |
operator=()
このメソッドは、永続オブジェクトの値をこのPObject
オブジェクトに割り当てます。オブジェクトの性質(一時または永続)は保持されます。NULL
情報がソース・インスタンスからコピーされます。
構文
PObject& operator=( const PObject& obj);
パラメータ | 説明 |
---|---|
obj |
割り当てられる値の取得元のオブジェクトを指定します。 |
operator delete()
永続オブジェクトまたは一時オブジェクトを削除します。永続オブジェクトの場合、この削除演算子は、オブジェクトをアプリケーション・キャッシュのみから削除します。データベース・サーバーからオブジェクトを削除するには、markDelete()メソッドをコールします。
構文
void operator delete( void *obj, size_t size);
パラメータ | 説明 |
---|---|
obj |
削除するオブジェクトへのポインタを指定します。 |
size |
(オプション)サイズはオブジェクトから暗黙的に取得されます。 |
operator new()
このメソッドは、新規オブジェクトを作成します。接続および表名が指定されている場合は、永続オブジェクトが作成されます。それ以外の場合は、一時オブジェクトが作成されます。
構文 | 説明 |
---|---|
void *operator new( size_t size); |
サイズのみを指定してデフォルトの新規オブジェクトを作成します。 |
void *operator new( size_t size, const Connection *conn, const string& tableName, const char *typeName); |
クライアント側のキャラクタ・セットがマルチバイトの場合の、一時オブジェクトの作成に使用します。 |
void *operator new( size_t size, const Connection *conn, const string& tableName, const string& typeName, const string& schTableName="", const string& schTypeName=""); |
クライアント側のキャラクタ・セットがマルチバイトの場合の、永続オブジェクトの作成に使用します。 |
void *operator new( size_t size, const Connection *conn, const UString& tableName, const UString& typeName, const UString& schTableName="", const UString& schTypeName=""); |
クライアント側のキャラクタ・セットがUnicode (UTF16)の場合の、永続オブジェクトの作成に使用します。 |
パラメータ | 説明 |
---|---|
size |
オブジェクトのサイズを指定します。 |
conn |
永続オブジェクトが作成されるデータベースへの接続を指定します。 |
tableName |
データベース・サーバーにある表の名前を指定します。 |
typeName |
このC++クラスに対応するSQLの型名を指定します。フォーマットは、 |
schTableName |
スキーマの表の名前を指定します。 |
schTypeName |
スキーマの型の名前を指定します。 |
pin()
このメソッドは、オブジェクトを確保し、確保カウントを1つ増やします。オブジェクトが確保されている場合は、このオブジェクト・インスタンスへの参照がない場合でもキャッシュによって解放されることはありません。
構文
void pin();
unpin()
このメソッドは、永続オブジェクトの確保を解除します。デフォルトのモードでは、オブジェクトの確保カウントは1つ分減少します。このメソッドがOCCI_PINCOUNT_RESET
でコールされると、オブジェクトの確保カウントがリセットされます。確保カウントがリセットされると、このオブジェクトを指し示している参照(Ref
)はすべて無効になります。キャッシュは、解放の対象となるオブジェクトを設定し、必要に応じてメモリーを再生します。
構文
void unpin( UnpinOption mode=OCCI_PINCOUNT_DECR);
パラメータ | 説明 |
---|---|
mode |
|