ヘッダーをスキップ
Oracle® C++ Call Interfaceプログラマーズ・ガイド,
11g リリース2 (11.2)
B72452-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

Mapクラス

Mapクラスは、SQL構造型のマッピングをC++クラスに格納するために使用します。

オブジェクト型トランスレータ(OTT)は、各ユーザー定義型ごとに、C++クラス宣言を生成し、静的なreadSQL()メソッドとwriteSQL()メソッドを実装します。readSQL()メソッドは、サーバーからのオブジェクトがC++クラス・インスタンスとしてアプリケーション内に構築されるとコールされます。writeSQL()メソッドは、アプリケーション・キャッシュ内のオブジェクトがサーバーに書き込まれるか、フラッシュされると、そのオブジェクトをサーバーのデータにマーシャリングするためにコールされます。OTTによって生成されたreadSQL()メソッドとwriteSQL()メソッドは、OCCI標準C++マッピングに基づいています。

OTTで生成された標準マッピングをカスタマイズしたマッピングでオーバーライドする場合、カスタマイズが必要なSQL構造型ごとに、readSQL()メソッドとwriteSQL()メソッドに加えて、カスタムC++クラスを実装する必要があります。また、そのような各クラスのエントリをEnvironmentMapメンバーに追加する必要があります。

表13-24 Mapメソッドの概要

メソッド 概要

put()


型のマップ・エントリであるtype_nameを追加します。



put()

カスタマイズする必要がある型のマップ・エントリであるtype_nameを追加します。type_nameのC++クラスを実装する必要があります。

次に、この情報をマップ・オブジェクトに追加する必要があります。ユーザーが標準マッピングをオーバーライドする場合は、このオブジェクトを接続に登録する必要があります。この登録は、環境が作成された後に、環境に渡すこのメソッドをコールすることで実行できます。

構文 説明
void put(
   const string &schemaType,
   void *(*rSQL)(void *),
   void (*wSQL) (void *, void *));
型および対応するC++ readSQL関数とwriteSQL関数を登録します。
void put(
   const string& schName,
   const string& typName,
   void *(*rSQL)(void *),
   void (*wSQL)(void *, void *));
型および対応するC++ readSQL関数とwriteSQL関数を登録します。これはマルチバイト・サポートの場合です。
void put(
   const UString& schName,
   const UString& typName,
   void *(*rSQL)(void *),
   void (*wSQL)(void *, void *));
型および対応するC++ readSQL関数とwriteSQL関数を登録します。これはUnicodeサポートの場合です。

パラメータ 説明
schemaType
スキーマと型名をピリオド(.)で区切って指定します(HR.TYPE1など)。
schName
スキーマの名前を指定します。
typName
型の名前を指定します。
rDQL
型に対応するC++クラスのreadSQL関数のポインタを指定します。
wSQL
型に対応するC++クラスのwriteSQL関数のポインタを指定します。