13.18 Mapクラス
Map
クラスは、SQL構造型のマッピングをC++クラスに格納するために使用します。
オブジェクト型トランスレータ(OTT)は、各ユーザー定義型ごとに、C++クラス宣言を生成し、静的なreadSQL()
メソッドとwriteSQL()
メソッドを実装します。readSQL()
メソッドは、サーバーからのオブジェクトがC++クラス・インスタンスとしてアプリケーション内に構築されるとコールされます。writeSQL()
メソッドは、アプリケーション・キャッシュ内のオブジェクトがサーバーに書き込まれるか、フラッシュされると、そのオブジェクトをサーバーのデータにマーシャリングするためにコールされます。OTTによって生成されたreadSQL()
メソッドとwriteSQL()
メソッドは、OCCI標準C++マッピングに基づいています。
OTTで生成された標準マッピングをカスタマイズしたマッピングでオーバーライドする場合、カスタマイズが必要なSQL構造型ごとに、readSQL()
メソッドとwriteSQL()
メソッドに加えて、カスタムC++クラスを実装する必要があります。また、そのような各クラスのエントリをEnvironment
のMap
メンバーに追加する必要があります。
表13-24 Mapメソッドの概要
メソッド | 概要 |
---|---|
型のマップ・エントリである |
13.18.1 put()
カスタマイズする必要がある型のマップ・エントリであるtype_name
を追加します。type_name
のC++クラスを実装する必要があります。
次に、この情報をマップ・オブジェクトに追加する必要があります。ユーザーが標準マッピングをオーバーライドする場合は、このオブジェクトを接続に登録する必要があります。この登録は、環境が作成された後に、環境に渡すこのメソッドをコールすることで実行できます。
構文 | 説明 |
---|---|
void put( const string &schemaType, void *(*rSQL)(void *), void (*wSQL) (void *, void *)); |
型および対応するC++ |
void put( const string& schName, const string& typName, void *(*rSQL)(void *), void (*wSQL)(void *, void *)); |
型および対応するC++ |
void put( const UString& schName, const UString& typName, void *(*rSQL)(void *), void (*wSQL)(void *, void *)); |
型および対応するC++ |
パラメータ | 説明 |
---|---|
schemaType |
スキーマと型名をピリオド(.)で区切って指定します( |
schName |
スキーマの名前を指定します。 |
typName |
型の名前を指定します。 |
rDQL |
型に対応するC++クラスの |
wSQL |
型に対応するC++クラスの |