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 オブジェクトの数。
解説
上の "プライマリ"、"セカンダリ" は、クラス CDaoDatabase の GetRelationInfo メンバ関数によってどの情報が返されるかを示しています。
リレーションシップ オブジェクトは、MFC クラスでは表されません。代わりに、CDaoDatabase クラスの MFC オブジェクトに基づく DAO オブジェクトが、リレーションシップ オブジェクトのコレクションを管理します。CDaoDatabase はリレーションシップ情報の各アイテムにアクセスするメンバ関数を提供しています。また、上の 2 つの MFC オブジェクトの GetRelationInfo メンバ関数を呼び出して CDaoRelationInfo オブジェクトを取得し、これらのアイテムに一度にアクセスすることもできます。
CDaoDatabase::GetRelationInfo メンバ関数により取得された情報は、CDaoRelationInfo 構造体に格納されます。デバッグ用のビルドでは、CDaoRelationInfo は Dump メンバ関数も定義しています。Dump 関数を使って CDaoRelationInfo オブジェクトの内容をダンプできます。
必要条件
ヘッダー : afxdao.h