次の方法で共有


CDaoRelationInfo 構造体

更新 : 2007 年 11 月

CDaoRelationInfo 構造体は、CDaoDatabase オブジェクト内の 2 つのテーブルのフィールドの間で定義されるリレーションシップについての情報を保持します。

struct CDaoRelationInfo
{
   CDaoRelationInfo( );                    // Constructor
   CString m_strName;                      // Primary
   CString m_strTable;                     // Primary
   CString m_strForeignTable;              // Primary
   long m_lAttributes;                     // Secondary
   CDaoRelationFieldInfo* m_pFieldInfos;   // Secondary
   short m_nFields;                        // Secondary
   // Below the // Implementation comment:
   // Destructor, not otherwise documented
};

パラメータ

  • m_strName
    リレーションシップ オブジェクトの一意名。詳細については、DAO ヘルプの「Name Property」を参照してください。

  • m_strTable
    リレーションシップの主テーブル名。

  • m_strForeignTable
    リレーションシップの外部キー テーブル名。外部キー テーブルは外部キーを持つために使われるテーブルです。一般に、参照整合性を確立または強制するために外部キー テーブルを使います。外部キー テーブルは、通常一対多リレーションシップの多の側に置かれます。外部キー側のテーブルの例としては、アメリカの州、カナダの州、顧客の注文などのコードを持つテーブルなどがあります。

  • m_lAttributes
    リレーションシップの種類についての情報を保持します。このメンバの値は、次の任意の値を持てます。

    • dbRelationUnique   リレーションシップは一対一です。

    • dbRelationDontEnforce   リレーションシップは強制されません (参照整合性はありません)。

    • dbRelationInherited   リレーションシップは 2 つのアタッチ テーブルを保持する非現在のデータベースに存在します。

    • dbRelationLeft   リレーションシップは左結合です。左外部結合は、2 番目 (右側) のテーブルに値が一致するレコードがなくても、最初 (左側) のテーブルのすべてのレコードを含みます。

    • dbRelationRight   リレーションシップは右結合です。右外部結合は、最初 (左側) のテーブルに値が一致するレコードがなくても、2 番目 (右側) のテーブルのすべてのレコードを含みます。

    • dbRelationUpdateCascade   更新が連鎖的に行われます。

    • dbRelationDeleteCascade   削除が連鎖的に行われます。

  • m_pFieldInfos
    CDaoRelationFieldInfo 構造体の配列へのポインタ。この配列は、リレーションシップの各フィールドごとに 1 つのオブジェクトを含みます。m_nFields データ メンバは、この配列の要素数を保持します。

  • m_nFields
    m_pFieldInfos データ メンバの CDaoRelationFieldInfo オブジェクトの数。

解説

上の "プライマリ"、"セカンダリ" は、クラス CDaoDatabaseGetRelationInfo メンバ関数によってどの情報が返されるかを示しています。

リレーションシップ オブジェクトは、MFC クラスでは表されません。代わりに、CDaoDatabase クラスの MFC オブジェクトに基づく DAO オブジェクトが、リレーションシップ オブジェクトのコレクションを管理します。CDaoDatabase はリレーションシップ情報の各アイテムにアクセスするメンバ関数を提供しています。また、上の 2 つの MFC オブジェクトの GetRelationInfo メンバ関数を呼び出して CDaoRelationInfo オブジェクトを取得し、これらのアイテムに一度にアクセスすることもできます。

CDaoDatabase::GetRelationInfo メンバ関数により取得された情報は、CDaoRelationInfo 構造体に格納されます。デバッグ用のビルドでは、CDaoRelationInfoDump メンバ関数も定義しています。Dump 関数を使って CDaoRelationInfo オブジェクトの内容をダンプできます。

必要条件

ヘッダー : afxdao.h

参照

参照

CDaoRelationFieldInfo 構造体