TTCatalogリファレンス
TTCatalog
クラスは、データベース内の表に関するメタデータ情報へのプログラム的なアクセスに使用される、トップ・レベルのクラスです。
TTCatalogの使用方法も参照してください。
パブリック・メソッド
この項では、TTCatalog
パブリック・メソッドの概要を説明します。
パブリック・メソッドの概要
メソッド | 説明 |
---|---|
データベース内のカタログを読み取って表および索引に関する情報を取得し、この情報を |
|
データベース内のシステム表の数を返します。 |
|
データベース内の表の合計数を返します(ユーザー表とシステム表)。 |
|
データベース内のユーザー表の数を返します。 |
|
指定された表の |
|
指定された表に対する |
|
システム( |
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()
ノート:
システム表には同等のメソッドはありません。