CDaoIndexInfo 構造体

CDaoIndexInfo の構造はデータ アクセス オブジェクト (DAO) に対して定義されているインデックス オブジェクトに関する情報が含まれています。

struct CDaoIndexInfo {
   CDaoIndexInfo( );                   // Constructor
   CString m_strName;                  // Primary
   CDaoIndexFieldInfo* m_pFieldInfos;  // Primary
   short m_nFields;                    // Primary
   BOOL m_bPrimary;                    // Secondary
   BOOL m_bUnique;                     // Secondary
   BOOL m_bClustered;                  // Secondary
   BOOL m_bIgnoreNulls;                // Secondary
   BOOL m_bRequired;                   // Secondary
   BOOL m_bForeign;                    // Secondary
   long m_lDistinctCount;              // All

   // Below the // Implementation comment:
   // Destructor, not otherwise documented
}; 

パラメーター

  • m_strName
    一意のフィールド オブジェクトを指定します。詳細については、 DAO ヘルプ トピック 「Name プロパティ」を参照してください。

  • m_pFieldInfos
    CDaoIndexFieldInfo の配列へのポインターはインデックスのキー フィールドは、 tabledef またはレコードセット フィールドであるかを示します。オブジェクト。各オブジェクトは、インデックスの 1 種類のフィールドを識別します。既定の順序は昇順です。インデックス オブジェクトは、各レコードのキー インデックスを表す一つ以上のフィールドを持つことができます。これらは昇順または、子であるか、または組み合わせを使用できます。

  • m_nFields
    m_pFieldInfosに格納されたフィールドの数。

  • m_bPrimary
    主要なプロパティが TRUE場合、オブジェクト インデックスがプライマリ インデックスを表します。プライマリ インデックスは、定義済みの順序でテーブル内のすべてのレコードを指定する一つ以上のフィールドで構成されます。インデックス フィールドが一意である必要があるため、インデックス オブジェクトの一意のプロパティは、 DAO TRUE に設定されます。プライマリ インデックスが複数のフィールドで構成されている場合は、各フィールドが重複する値を含むことがあります。すべてのインデックス付きフィールドの値の各組み合わせは一意である必要があります。プライマリ インデックスは、テーブルのキーで構成され、通常は主キーと同じフィールドがあります。

    テーブルの主キーを設定すると、主キーは、テーブルのプライマリ インデックスが自動的に定義されます。詳細については、 DAO ヘルプ トピック 「主要なプロパティ」と 「一意のプロパティ」を参照してください。

    [!メモ]

    、最大で、テーブルに、 1 種類のプライマリ インデックスがあります。

  • m_bUnique
    インデックス オブジェクトがテーブルの一意のインデックスを表すかどうかを示します。このプロパティが TRUEの場合、インデックス オブジェクトは一意であるインデックスを表します。一意のインデックスは論理的に一意な配置する一つ以上のフィールドから、定義済みの順序でテーブルのレコードが構成されます。インデックスが 1 フィールドで構成される場合、そのフィールドの値はテーブル全体で一意である必要があります。インデックスが複数のフィールドで構成されている場合は、各フィールドが重複する値を含むことがあります。すべてのインデックス付きフィールドの値の各組み合わせは一意である必要があります。

    オブジェクトの一意のインデックス、主 TRUEプロパティがに設定されている場合、インデックスは、主要な一意です: これは、定義済みのテーブル、論理的順序のすべてのレコードを特定します。主要なプロパティが FALSEに設定されている場合、インデックスはセカンダリ インデックスです。セカンダリ インデックスは、テーブルのレコードの ID として実行しないで (両方が調整され、)論理的に定義済みの順序でレコードを配置します。

    詳細については、 DAO ヘルプ トピック 「主要なプロパティ」と 「一意のプロパティ」を参照してください。

  • m_bClustered
    インデックス オブジェクトがテーブルのクラスター化インデックスを表すかどうかを示します。このプロパティが TRUEの場合、インデックス オブジェクトは、クラスター化インデックスを表します; それ以外の場合は。クラスター化インデックスは、定義済みの順序でテーブル内のすべてのレコードを配置する設け、そこに一つ以上のフィールドがで構成されます。クラスター化インデックスによって、テーブルのデータは、クラスター化インデックスで指定された順序で正確に格納されます。クラスター化インデックスは、テーブルのレコードに対する効率的なアクセスを提供します。詳細については、 DAO ヘルプ トピック 「クラスター プロパティ」を参照してください。

    [!メモ]

    クラスター プロパティは Microsoft Jet データベース エンジンを使用するデータベースに対して Jet データベース エンジンでクラスター化インデックスをサポートしないため無視されました。

  • m_bIgnoreNulls
    インデックス フィールドに null 値を持つレコードのインデックス エントリが存在するかどうかを示します。このプロパティが TRUE場合、 null 値のフィールドにインデックス エントリはありません。レコードのフィールドを使用して、より高速検索を実行するには、フィールドのインデックスを定義できます。インデックス付きフィールドに空のエントリを表示し、 null にするとエントリの多くを必要とする場合は、インデックスが使用するストレージ領域の量を減らすに TRUE へのインデックス オブジェクトの IgnoreNulls のプロパティを設定できます。次の表に示すように、 null のインデックス値を持つレコードにインデックス エントリが存在するかどうかが決まります設定する IgnoreNulls のプロパティ設定と必須プロパティが決まります。

    IgnoreNulls

    Required

    インデックス フィールドの Null

    True

    False

    許可される NULL 値; 追加されたインデックス エントリはありません。

    False

    False

    許可される NULL 値; 追加されたインデックス エントリ。

    True または False

    True

    許可されない null 値; 追加されたインデックス エントリはありません。

    詳細については、 DAO ヘルプ トピック 「IgnoreNulls プロパティ」を参照してください。

  • m_bRequired
    DAO のインデックス オブジェクトが以外の値を必要とするかどうかを示します。このプロパティが TRUEの場合、インデックス オブジェクトは、 null 値を許可しません。詳細については、 DAO ヘルプ トピック 「必須プロパティ」を参照してください。

    ヒントヒント

    DAO のインデックス オブジェクトまたはフィールド オブジェクトのこのプロパティを (tabledef、レコードセット、またはクエリ定義オブジェクトに含まれる)に設定できる場合、フィールドのオブジェクトに設定します。インデックス オブジェクトのフィールド オブジェクトのプロパティ設定の有効性は前にチェックされます。

  • m_bForeign
    インデックス オブジェクトがテーブルの外部キーを表すかどうかを示します。このプロパティが TRUEの場合、インデックスは、テーブルの外部キーを表します。外部キーはプライマリ テーブルの行を識別する外部キー テーブルの一つ以上のフィールドで構成されます。Microsoft Jet データベース エンジンは、参照整合性を適用するリレーションシップを作成する場合、外部キー テーブルのインデックス オブジェクトを作成し、外部のプロパティを設定します。詳細については、 DAO ヘルプ トピック 「外部のプロパティ」を参照してください。

  • m_lDistinctCount
    関連テーブルに含まれているインデックス オブジェクトの一意の値の数を示します。インデックスの一意の値、またはキーの数を確認するに DistinctCount のプロパティをチェックします。インデックスの割り当て重複する値、値が複数回表示される場合がありますが、どのキーが二重にカウントされます。この情報は、インデックス情報を評価して、データ アクセスを最適化すると、アプリケーションに便利です。一意の値の数は、インデックスのオブジェクト (基数です。DistinctCount のプロパティは、キーの実際の数を常に特定の時刻に反映されません。たとえば、トランザクションをロールバックによって発生した DistinctCount のプロパティの変更がすぐに反映されません。詳細については、 DAO ヘルプ トピック 「DistinctCount プロパティ」を参照してください。

解説

プライマリ、セカンダリへの参照は、上のすべての情報をクラス CDaoTableDefCDaoRecordsetGetIndexInfo のメンバー関数によってどのように戻るかを示します。

インデックス オブジェクトは、 MFC クラスでは表示されません。代わりに、クラス CDaoTableDefCDaoRecordset の MFC オブジェクトの基になる DAO のオブジェクトは、インデックス オブジェクトのコレクションをインデックス収集含まれています。これらのクラスは、インデックス情報のアクセスは別の項目にメンバー関数を指定するか、 CDaoIndexInfo のオブジェクトとコンテナー オブジェクトの GetIndexInfo のメンバー関数を呼び出すことにより、一度にアクセスできます。

CDaoIndexInfo 、コンストラクターと適切に m_pFieldInfosのインデックス フィールドの情報を割り当ておよび解放するデストラクターがあります。

テーブル定義のオブジェクト GetIndexInfo のメンバー関数によって取得された情報は CDaoIndexInfo の構造体に格納されます。インデックス コレクションのインデックス オブジェクトが格納されている含むテーブル定義のオブジェクト GetIndexInfo のメンバー関数を呼び出します。CDaoIndexInfo は、デバッグ ビルドの Dump のメンバー関数を定義します。CDaoIndexInfo のオブジェクトの内容をダンプするために Dump を使用できます。

必要条件

Header: afxdao.h

参照

関連項目

CDaoTableDef::GetIndexInfo

その他の技術情報

構造体、スタイル、コールバック関数とメッセージ マップ