プライマリ・コンテンツに移動
Oracle® C++ Call Interfaceプログラマーズ・ガイド
12c リリース1 (12.1)
B72464-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

OCCIのクラスとメソッド

表13-1は、すべてのOCCIクラスに関する簡単な説明です。この項の後で、各クラスとそのメソッドの詳細を説明します。

表13-1 OCCIクラスの概要

クラス 説明

Agentクラス


アドバンスト・キューイングのコンテキストでエージェントを表します。

AnyDataクラス


オブジェクト型トランスレータ(OTT)ユーティリティ用のメソッド、オブジェクトのシリアライズ用のSQL読取りおよび書込みメソッド、および他のデータ型間での変換を提供します。

BatchSQLExceptionクラス


バッチ処理エラーを処理するメソッドを提供します。SQLExceptionクラスの機能拡張版です。

Bfileクラス


SQL BFILE値にアクセスできます。

Blobクラス


SQL BLOB値にアクセスできます。

Bytesクラス


バイトの比較、バイトの検索およびバイトの抽出について、一連のバイトを個別に検査します。

Clobクラス


SQL CLOB値にアクセスできます。

Connectionクラス


特定のデータベースへの接続を示します。

ConnectionPoolクラス


特定のデータベースへの接続プールを示します。

Consumerクラス


Messageのデキューをサポートし、デキュー・オプションを制御します。

Dateクラス


SQL DATEデータ項目の抽象化を指定します。また、日付値のOCCIエスケープ構文をサポートするための書式操作と解析操作も提供します。

Environmentクラス


OCCIオブジェクトのメモリーや他のリソースを管理するためのOCCI環境を提供します。OCCIドライバ・マネージャはOCCI環境ハンドルにマップされます。

IntervalDSクラス


期間を日、時、分および秒で示します。

IntervalYMクラス


期間を年と月で示します。

Listenerクラス


1つ以上のキューで1つ以上のエージェントとしてリスニングします。

Mapクラス


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

Messageクラス


エンキューまたはデキューの単位です。

MetaDataクラス


データベースの既存のスキーマ・オブジェクトまたはデータベース全体で、ResultSetの列の型とプロパティを決定するために使用します。

NotifyResultクラス


StreamsのAQコールバック機能からの通知情報を保持するために使用します。

Numberクラス


数値型をモデル化します。

PObjectクラス


型定義の際に、永続インスタンスか一時インスタンスかの指定を可能とします。PObjectから導出されたクラス・インスタンスは、永続または一時のいずれかです。永続インスタンスであれば、PObjectから導出されたクラス・インスタンスはPObjectクラスを継承します。一時インスタンスであれば、継承は行われません。

Producerクラス


エンキュー・オプションをサポートし、Messageをエンキューします。

Refクラス


SQL REF値のC++でのマッピング。このマッピングは、データベースにあるSQL構造型の値への参照です。

RefAnyクラス


SQL REF値のC++でのマッピング。このマッピングは、データベースにあるSQL構造型の値への参照です。

ResultSetクラス


OCCIのStatementの実行で生成されたデータの表にアクセスできます。

SQLExceptionクラス


データベース・アクセス・エラーの情報を提供します。

StatelessConnectionPoolクラス


データベースに対して、認証済でステートレスな接続プールを表します。

Statementクラス


SQL文を実行するために使用します。SQL文には、問合せ文およびINSERT/UPDATE/DELETE文が含まれます。

Streamクラス


プリコンパイルされたDML文またはストアド・プロシージャ・コールにストリーム・データ(通常は、LONGデータ型)を渡すために使用します。

Subscriptionクラス


通知に対するサブスクライバの登録に必要な情報と操作をカプセル化します。

Timestampクラス


SQL TIMESTAMPデータ項目の抽象化を指定します。また、タイム・スタンプ値のOCCIエスケープ構文をサポートするための書式操作と解析操作も提供します。


OCCIクラスの使用

OCCIクラスは、oracle::occiネームスペースに定義されています。oracle::occiネームスペース内のOCCIクラス名は、次の3つの方法のいずれかを使用して参照できます。

  • 各OCCIクラス名に対してスコープ解決演算子(::)を使用します。

  • 各OCCIクラス名に対してusing宣言を使用します。

  • すべてのOCCIクラス名に対してusingディレクティブを使用します。

OCCIでのスコープ解決演算子の使用

スコープ解決演算子(::)は、oracle::occiネームスペースとOCCIクラス名を明示的に指定するために使用されます。ConnectionオブジェクトであるmyConnectionを宣言するには、スコープ解決演算子を使用して、次の構文で宣言します。

oracle::occi::Connection myConnection;

OCCIでの宣言の使用

using宣言は、OCCIクラス名をコンパイル・ユニットで競合せずに使用できる場合に使用されます。oracle::occiネームスペースでOCCIクラス名を宣言するには、次の構文を使用します。

using oracle::occi::Connection;

この宣言により、Connectionoracle::occi::Connectionを参照し、myConnectionConnection myConnection;として宣言できます。

OCCIでのディレクティブの使用

usingディレクティブは、すべてのOCCIクラス名をコンパイル・ユニットで競合せずに使用できる場合に使用されます。oracle::occiネームスペースですべてのOCCIクラス名を宣言するには、次の構文を使用します。

using oracle::occi;

次に、using宣言と同じように、次の宣言によってOCCIクラスConnectionConnection myConnection;として参照できます。

OCCIでのアドバンスト・キューイングの使用

アドバンスト・キューイングのクラスであるProducerConsumerMessageAgentListenerSubscriptionおよびNotifyResultは、oracle::occi::aqネームスペースに定義されています。

OCCIでのWindows NTおよびz/OSのサポート

WindowsでOCCIアプリケーションを構築する際に、WIN32COMMONのプリプロセッサ定義を追加する必要があります。

次のグローバル・メソッドは、Windows NTおよびz/OSでResultSetクラスおよびStatementクラスRefのコレクションにアクセスできるように設計されています。メソッド名は変更されていますが、パラメータの数と値は同じままです。

  • Windows NTおよびz/OSでは、getVector()のかわりにgetVectorOfRefs()を使用します。

  • Windows NTおよびz/OSでは、setVector()のかわりにsetVectorOfRefs()を使用します。

Windows NTおよびz/OS上のアプリケーションでは、参照のコレクションの取得および挿入時にのみ、これらの新規メソッドをコールする必要があります。Windows NTおよびz/OS上で動作しないアプリケーションでは、どちらのアクセッサを使用してもかまいません。ただし、Refでのベクター操作には新規メソッドを使用することをお薦めします。

Refのコレクションの操作

Refのコレクションは、次のクラスのメソッドを使用してフェッチおよび挿入できます。

ResultSetクラス

Refのコレクションのフェッチ 次のバージョンのgetVectorOfRefs()を使用し、参照の列を戻します。

void getVectorOfRefs(
   ResultSet  *rs,
   unsigned int index, 
   vector<Ref<T> > &vect);

Statementクラス

Refのコレクションのフェッチ getVectorOfRefs()を使用し、列からの参照のコレクションを戻します。

void getVectorOfRefs(
   Statement  *stmt,
   unsigned int index, 
   vector<Ref<T> > &vect);

Refのコレクションの挿入 setVectorOfRefs()を使用し、参照のコレクションを列に挿入します。

template  <class T>
void setVectorOfRefs(
   Statement *stmt, 
   unsigned int paramIndex,
   const vector<Ref<T> > &vect,
   const string &sqltype);

Refのコレクションの挿入: マルチバイトのサポート マルチバイトをサポートするには、次のメソッドが必要です。

void setVectorOfRefs(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Ref<T> > &vect,
   const string &schemaName,
   const string &typeName);

Refのコレクションの挿入: UString (UTF16)のサポート UStringをサポートするには、次のメソッドが必要です。

template <class T>
void setVectorOfRefs(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Ref<T> > &vect,
   const UString &schemaName,
   const UString &typeName);