CDaoIndexInfo構造は次の形式をが:
構造体 CDaoIndexInfo {特価;CDaoIndexInfo ();・ ・ コンス トラクターCString の m_strName;//プライマリCDaoIndexFieldInfo ※ m_pFieldInfos;//プライマリ短い m_nFields;//プライマリBOOL m_bPrimary;//セカンダリBOOL m_bUnique;//セカンダリBOOL m_bClustered;//セカンダリBOOL m_bIgnoreNulls;//セカンダリBOOL m_bRequired;//セカンダリBOOL m_bForeign;//セカンダリ長い m_lDistinctCount;//すべて//以下は//実装をコメントします。//デストラクター、できません記述}(&N)
CDaoIndexInfo構造には、データ アクセス オブジェクト (DAO) に定義されているインデックス オブジェクトに関する情報が含まれます。どのように情報CDaoTableDefとCDaoRecordsetクラスのGetIndexInfoメンバー関数によって返されるプライマリ、セカンダリ、上記のすべての参照を示す。
MFC クラスでは、インデックス オブジェクトは表示されません。代わりに、DAO オブジェクト MFC クラスCDaoTableDefまたはCDaoRecordsetオブジェクトの基になるにはインデックス コレクションと呼ばれる、インデックス オブジェクトのコレクションが含まれています。これらのクラスはインデックス情報の個々 の項目にアクセスするメンバー関数を提供またはそれらすべてを一度には、 CDaoIndexInfoオブジェクトにオブジェクトのGetIndexInfoメンバー関数を呼び出すことによってアクセスできます。
コンス トラクターとデストラクターが正しく割り当て、 m_pFieldInfos内のインデックスのフィールド情報を解放するためにCDaoIndexInfoをしています。
メンバー
m_strName
フィールド オブジェクトの一意名します。詳細については、DAO ヘルプの「名前プロパティ」のトピックを参照してください。
m_pFieldInfos
インデックス内のキー フィールドのテーブルまたはレコード セット フィールドを示すCDaoIndexFieldInfoオブジェクトの配列へのポインター。各オブジェクトは、1 つのフィールドのインデックスを識別します。デフォルトのインデックスの順序は昇順です。インデックス オブジェクトは、インデックス キーの各レコードを表す 1 つまたは複数のフィールドを持つことができます。これら、降順、または組み合わせを昇順にすることができます。
m_nFields
M_pFieldInfosに格納されているフィールドの数。
m_bPrimary
Primary プロパティがTRUEの場合は、インデックス オブジェクトは、プライマリ インデックスを表します。プライマリ インデックスは、定義済みの順序でテーブル内のすべてのレコードを一意に識別する 1 つまたは複数のフィールドで構成されます。インデックス フィールドは一意にする必要がありますので、Index オブジェクトの Unique プロパティをTRUEに DAO も設定されます。プライマリ インデックスで構成される 1 つ以上のフィールドの場合は、各フィールドが重複する値を含めることができますが、すべてのインデックス付きフィールドの値の各組み合わせが一意である必要があります。プライマリ インデックスはテーブルのキーで構成され、通常主キーと同じフィールドが含まれています。
テーブルの主キーを設定すると、テーブルのプライマリ インデックスとして主キーが自動的に定義されます。詳細については、「主要なプロパティ」DAO ヘルプの「ユニークなプロパティ」トピックを参照してください。
注特価;ことができますが、ほとんどで、1 つのプライマリ インデックスはテーブルの上に(&N)。
m_bUnique
インデックス オブジェクトがテーブルの一意のインデックスを表すかどうかを示します。このプロパティがTRUEの場合は、インデックス オブジェクトは一意のインデックスを表します。一意のインデックス、ユニークな定義済みの順序でテーブル内のすべてのレコードを論理的に整列する 1 つ以上のフィールドで構成されます。1 つのフィールドのインデックスで構成される場合は、そのフィールドの値はテーブル全体で一意必要があります。1 つ以上のフィールドのインデックスで構成される場合は、各フィールドが重複する値を含めることができますが、すべてのインデックス付きフィールドの値の各組み合わせが一意である必要があります。
ユニークかつプライマリ オブジェクトのプロパティのインデックスがTRUEに設定されている場合は、インデックスを一意とプライマリです: それは、定義済みの論理的順序でテーブル内のすべてのレコードを一意に識別します。Primary プロパティがFALSEに設定されている場合は、インデックスがセカンダリ インデックスです。テーブル内のレコードの識別子として機能しませんセカンダリ インデックス (キーと非キーの両方) が、定義済み順序でレコードを論理的に配置します。
詳細については、「主要なプロパティ」DAO ヘルプの「ユニークなプロパティ」トピックを参照してください。
m_bClustered
インデックス オブジェクトがテーブルのクラスター化インデックスを表すかどうかを示します。このプロパティがTRUEの場合は、インデックス オブジェクトは、クラスター化インデックスを表します。それ以外の場合、それはないです。クラスター化インデックスを 1 つまたは複数の nonkey フィールド、一緒に取られて、定義済みの順序でテーブル内のすべてのレコードを配置します。クラスター化インデックスの場合、テーブル内のデータは、文字通り、クラスター化インデックスによって指定された順序で格納されます。クラスター化インデックスは、テーブル内のレコードに対する効率的なアクセスを提供します。詳細については、DAO ヘルプの「クラスター化プロパティ」トピックを参照してください。
注特価;Clustered プロパティは、Jet データベース エンジンはクラスター化インデックスをサポートしていないため、Microsoft Jet データベース エンジンを使用してデータベースには無視されます。(&N)。
m_bIgnoreNulls
インデックス エントリのインデックス フィールドに Null 値を持つレコードがあるかどうかを示します。Null 値を持つフィールドは、このプロパティがTRUEの場合は、インデックスのエントリはありません。フィールドを高速化を使用してレコードを検索するのには、フィールドのインデックスを定義できます。インデックス フィールドの Null エントリを許可した場合に、エントリが Null の多くを期待すると、インデックス オブジェクトの IgnoreNulls プロパティをインデックスを使用してストレージ ・ スペースの量を減らすためにTRUEに設定できます。IgnoreNulls プロパティの設定と、必要なプロパティ設定一緒 Null インデックス値を持つレコードが、次の表、インデックス エントリを持つかどうかを確認します。
| IgnoreNulls | 必須 | インデックス フィールドに null します。 |
| True を設定します。 | False | Null 値を許可;追加のインデックス エントリ。 |
| False | False | Null 値を許可;インデックス エントリの追加。 |
| True または False | True を設定します。 | Null 値を許可されていません。追加のインデックス エントリ。 |
詳細については、DAO ヘルプの「IgnoreNulls プロパティ」のトピックを参照してください。
m_bRequired
DAO のインデックス オブジェクトは Null 以外の値が必要かどうかを示します。このプロパティがTRUEの場合は、インデックス オブジェクトは、Null 値を許可しません。詳細については、DAO ヘルプの「必要なプロパティ」トピックを参照してください。
ヒント特価;このプロパティを DAO のインデックス オブジェクト (テーブル定義、レコード セット、またはクエリ定義オブジェクトで)、フィールド オブジェクトを設定できる場合は、フィールド オブジェクトに対して設定します。フィールド オブジェクトのプロパティ設定の妥当性は、index オブジェクトの前にチェックします。(&N)。
m_bForeign
インデックス オブジェクトがテーブル内の外部キーを表すかどうかを示します。このプロパティがTRUEの場合、インデックスは、テーブル内の外部キーを表します。プライマリ ・ テーブル内の行を一意に識別する 1 つ以上のフィールド、外部キー テーブルの外部キーで構成されます。Microsoft Jet データベース エンジンは外部テーブルのインデックス オブジェクトを作成および参照整合性を適用するリレーションシップを作成するときに Foreign プロパティを設定します。詳細については、DAO ヘルプの「外国プロパティ」のトピックを参照してください。
m_lDistinctCount
関連するテーブルに含まれている一意の値のインデックス オブジェクトの数を示します。一意の値またはインデックス内のキーの数を判断するには、DistinctCount プロパティを確認します。任意のキーはある可能性がありますにもかかわらず、値の複数の出現、インデックスが重複する値を許可する場合は 1 回だけカウントされます。この情報はインデックス情報を評価することによってデータ アクセスを最適化しようとするアプリケーションで役立ちます。一意値の数は、index オブジェクトのカーディナリティとも呼ばれます。DistinctCount プロパティは、常に実際のキー数は特定の時間に反映されません。たとえば、トランザクションのロールバックが原因となった変更すぐに DistinctCount プロパティに反映されません。詳細については、DAO ヘルプの「DistinctCount プロパティ」のトピックを参照してください。
コメント
テーブル定義オブジェクトのGetIndexInfoメンバー関数によって取得された情報は、 CDaoIndexInfo構造体に格納されます。そのインデックス コレクションのインデックス オブジェクトは格納されますを含むテーブル定義オブジェクトのGetIndexInfoメンバー関数を呼び出します。CDaoIndexInfoもデバッグ ビルドでは、 Dumpメンバー関数を定義します。ダンプを使用して、 CDaoIndexInfoオブジェクトの内容をダンプすることができます。
これと他の MFC DAO 情報構造体の使用方法については、参照してください DAO コレクション: DAO オブジェクトの情報の取得でVisual の C++ プログラマのガイド。
参照特価;CDaoTableDef::GetIndexInfo(&N)