TTCatalogリファレンス

TTCatalogクラスは、データベース内の表に関するメタデータ情報へのプログラム的なアクセスに使用される、トップ・レベルのクラスです。

パブリック・メンバー

なし

パブリック・メソッド

この項では、TTCatalogパブリック・メソッドの概要を説明します。

パブリック・メソッドの概要

メソッド 説明

fetchCatalogData()

データベース内のカタログを読み取って表および索引に関する情報を取得し、この情報をTTCatalog内部データ構造に格納します。

getNumSysTables()

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

getNumTables()

データベース内の表の合計数を返します(ユーザー表とシステム表)。

getNumUserTables()

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

getTable()

指定された表のTTCatalogTableオブジェクトへの定数参照を返します。

getTableIndex()

指定された表に対するTTCatalogオブジェクト内の索引を返します。

getUserTable()

システム(nが指定された)内のn番目のユーザー表に対応するTTCatalogTableオブジェクトへの定数参照を返します。

fetchCatalogData()

void fetchCatalogData()

これは、データベースと通信するTTCatalogの唯一のメソッドです。データベース内のカタログを読み取って表および索引に関する情報を取得し、それをTTCatalog内部データ構造に格納します。

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

TTCatalogアクセッサ・メソッドのいずれかを使用する前に、このメソッドをコールする必要があります。

次の例に、TTCatalogの使用方法を示します。

TTConnection conn;
conn.Connect(DSN=TptbmData37);
TTCatalog cat (&conn);
cat.fetchCatalogData(); 
// 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;

getNumSysTables()

int getNumSysTables()

データベース内のシステム表の数を返します。後述のメソッドgetNumTables()およびgetNumUserTables()も参照してください。

getNumTables()

int getNumTables() 

データベース内の表の合計数を返します(ユーザー表とシステム表)。前述のメソッドgetNumSysTables()と、後述のメソッドgetNumUserTables()も参照してください。

getNumUserTables()

int getNumUserTables() 

データベース内のユーザー表の数を返します。前述のメソッドgetNumSysTables()と、後述のメソッドgetNumTables()も参照してください。

getTable()

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

指定された表のTTCatalogTableオブジェクトへの定数参照を返します。getUserTable()も参照してください。

最初のシグネチャは、tblnameという名前のownerによって所有される表に使用されます。

2番目のシグネチャは、システム内の表番号tnoに対応する表に使用されます。これは、システム内のすべての表に対する反復処理を容易にするためのものです。この配列内の表の順番は任意です。

次の関係が成立しています。

0 <= tno < getNumTables()

TTCatalogTableの使用方法も参照してください。

getTableIndex()

int getTableIndex(const char* owner, const char* tblname) const

このメソッドは、指定されたowner.tblnameオブジェクトに対するTTCatalogオブジェクト内の索引をフェッチします。owner.tblnameが存在しない場合は-2を返します。fetchCatalogData()が最初にコールされない場合-1を返します。

例では、TTCatalogオブジェクトのTTUSER.MYDATA表に関する情報を取得します。次で説明するTTCatalogTableのメソッドをコールして、この表に関する情報を取得することができます。

TTConnection conn;
conn.Connect(...);
TTCatalog cat (&conn);
cat.fetchCatalogData();

int idx = cat.getTableIndex("TTUSER", "MYDATA");
if (idx < 0) {
  cerr << "Table TTUSER.MYDATA does not exist." << endl;
  return;
}
 
TTCatalogTable &table = cat.getTable(idx);

getUserTable()

const TTCatalogTable& getUserTable(int tno)

システム内のユーザー表番号tnoと対応するTTCatalogTableオブジェクトに対する定数参照を返します。このメソッドは、システム内のすべてのユーザー表に対する反復処理を容易にするためのものです。この配列のユーザー表の順番は任意です。getTable()も参照してください。

次の関係が成立しています。

0 <= tno < getNumUserTables()

ノート:

システム表には同等のメソッドはありません。