ヘッダーをスキップ
Oracle TimesTen In-Memory Database TTClassesガイド
リリース6.0
B25771-01
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

システム・カタログ・クラス(TTCatalog)

TTCatalogは、データベースのシステム・カタログからのメタデータ読取りを容易にするために、TimesTen C++ Interface Classesに含まれています。

TTCatalogクラスの使用方法は、TimesTen C++ Interface Classesに含まれる他のクラスとかなり異なります。TTCatalogコンストラクタは、データベースに接続し、そのシステム・カタログを読み取った後、データベースへの接続を切断し、それ以上データベースと直接相互作用しません。生成されるオブジェクトには、データベース・カタログから読み取られたすべての情報を持ち、ユーザ・プログラムから簡単にアクセスできるデータ構造が含まれます。

各TTCatalogには、TTCatalogTableオブジェクトの配列が含まれます。各TTCatalogTableには、TTCatalogColumnオブジェクトの配列と、TTCatalogIndexオブジェクトの配列が含まれます。索引によってアクセスする場合、これらの配列へのアクセスはゼロ・ベースです。

TTCatalog内では次のODBC関数が使用されます。

TTCatalog

TTCatalogクラスは、データベースの表に関するメタデータ情報へのプログラム的なアクセスに使用される、トップ・レベルのクラスです。TTCatalogオブジェクト内には、TTCatalogTableオブジェクトの内部配列があります。コンストラクタを除くTTCatalogのすべてのパブリック・メソッドを使用して、そのTTCatalogTable配列への読取り専用アクセスを取得します。

パブリック・メンバー

なし

パブリック・メソッド

(constructor) TTCatalog (TTConnection*)

TTCatalogコンストラクタは、単にTTConnection*パラメータをキャッシュし、すべての内部データ構造を適切に初期化します。TTCatalogオブジェクトを実際に使用するには、最初にfetchCatalogData()(後述を参照)をコールする必要があります。

fetchCatalogData (TTStatus &)

これは、データベースと相互作用する唯一のメソッドです。データ・ストアへの接続はコンストラクタによってキャッシュされたため、唯一のパラメータはTTStatusオブジェクトです。このメソッドは、自身を構築する際にデータベースのカタログを読み取って表および索引に関する情報を取得し、それを自身の内部データ構造に保管します。

その後、構築されたTTCatalogオブジェクトは完全にオフラインで使用されます。このオブジェクトは、構築後はデータベースに接続されません。

その他のTTCatalogアクセッサ・メソッドのいずれかを使用する前に、このメソッドをコールする必要があります。そうでないと、それらのメソッドによって有効な情報が返されません2

TTCatalogの使用方法を示す簡単なコードの一部を示します(2つのデータベース・コール後に通常行われるstat.rcの確認は省略されています)。

例1.8
TTConnection conn; 
TTStatus stat; 
conn.Connect(DSN=TptbmData37, stat); 
TTCatalog cat (&conn); 
cat.fetchCatalogData(stat);  
// TTCatalog cat is no longer connected to the database; 
// you can now query it through its read-only methods. 
cerr << "There are " << cat.getNumTables() 
       << " tables in this database:" << endl; 
for (int i=0; i < cat.getNumTables(); i++) 
cerr << cat.getTable(i).getTableOwner() << "." 
<< cat.getTable(I).getTableName() << endl; 
int getNumTables()

ユーザー表とシステム表の両方を含む、データベース内の表の合計数を返します。

int getNumUserTables()

データベース内のユーザー表の数を返します。

int getNumSysTables()

データベース内のシステム表の数を返します。

const TTCatalogTable & getTable (const char * owner, const char * tblname)

ownerによって所有される「tblname」という名前のデータベース表に対応するTTCatalogTableオブジェクトへの定数参照を返します。TTCatalogTableオブジェクトの使用方法は、次の項を参照してください。

const TTCatalogTable & getTable (int i)

システム内のi番目の表に対応するTTCatalogTableへの定数参照を返します。このメソッドは、システム内のすべての表を通じて反復を容易にするためのものです。この配列における表の順序は任意です。

0 <= i <= getNumTables()という関係が保持されることに注意してください。

const TTCatalogTable & getUserTable (int i)

システム内のi番目のユーザー表に対応するTTCatalogTableへの定数参照を返します。このメソッドは、システム内のすべてのユーザー表を通じて反復を容易にするためのものです。この配列におけるユーザー表の順序は任意です。

0 <= i <= getNumUserTables()という関係が保持されることに注意してください。

TTCatalogTable

TTCatalogTableクラスは、表の列および索引に関するすべてのメタデータ情報を格納するために使用されます。

パブリック・メンバー

なし

パブリック・メソッド

const char * getTableOwner()

表の所有者を返します。

const char * getTableName()

表の名前を返します。

int getNumColumns()

表の列数を返します。

int getNumIndexes()

表の索引数を返します。

const TTCatalogColumn & getColumn (int i)

表のi番目の列に対応するTTCatalogColumnへの定数参照を返します。このメソッドは、システム内のすべてのユーザー表を通じて反復を容易にするためのものです。

0 <= i <= getNumColumns()という関係が保持されることに注意してください。

const TTCatalogIndex & getIndex (int i)

表内のi番目の索引に対応するTTCatalogIndexへの定数参照を返します。このメソッドは、システム内のすべてのユーザー表を通じて反復を容易にするためのものです。この配列における表の索引の順序は任意です。

0 <= i <= getNumColumns()という関係が保持されることに注意してください。

TTCatalogColumn

TTCatalogColumnクラスは、(関連付けられたTTCatalogTableの)表の単一の列に関するすべてのメタデータ情報を格納するために使用されます。

パブリック・メンバー

なし

パブリック・メソッド

const char * getColumnName()

列の名前を返します。

int getDataType()

列のデータ型を表す整数を返します。これは標準のODBC SQL型です。

const char * getTypeName()

getdata type()によって返された型に対応する(データベース依存の)名前を返します。

int getNullable()

SQL_NO_NULLS、SQL_NULLABLEまたはSQL_NULLABLE_UNKNOWNを返します。

int getPrecision()

列の精度を返します。

int getLength()

列の長さを返します。

int getScale()

列のスケールを返します。

int getRadix()

列の基数を返します。

TTCatalogIndex

TTCatalogIndexクラスは、(関連付けられたTTCatalogTableの)索引に関するすべての情報を格納するために使用されます。

パブリック・メンバー

なし

パブリック・メソッド

const char * getIndexName()

索引の名前を返します。

const char * getIndexOwner()

索引の所有者を返します。

const char * getTableName()

この索引が存在する表の名前を返します。

int getType()

索引の型を返します。TimesTenでは、許容値はPRIMARY_KEY、HASH_INDEX(PRIMARY_KEYと同じ)およびTTREE_INDEXです。その他のデータベースでは、許容値はSQL_INDEX_HASHEDおよびSQL_INDEX_CLUSTEREDです。

bool isUnique()

索引が一意索引かどうかを返します。trueは一意であることを示し、falseは一意でないことを示します。

int getNumColumns()

索引の列数を返します。

const char * getColumnName (int i)

索引のi番目の列の名前を返します。

char getCollation (int i)

索引のi番目の列の照合を返します。返される値は、索引が昇順の場合はA、降順の場合はDとなります。

1注意: TimesTen ODBCドライバでは、SQLStatisticsはSQLPrimaryKeys()の情報のスーパーセットを返します。
2 これは、TTClassesバージョン1.6からの、TTCatalogの動作における変更であることに注意してください。それ以前には、TTCatalogコンストラクタはfetchCatalogData()メソッドによって記述される機能を実行していました。この変更は、TTCatalogクラスの初心者ユーザーが不注意によってすべてのカタログ・データをフェッチすることのないようにするためのものです。