CDaoRelationInfo 構造体
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 プロパティ」を参照してください。
m_strTable
リレーションシップ内の主テーブルの名前を示します。
m_strForeignTable
リレーションシップ内の外部テーブルの名前を示します。 外部テーブルは、外部キーを格納するために使用されるテーブルです。 通常、外部テーブルを使用して、参照整合性を確立または適用します。 外部テーブルは、通常、一対多のリレーションシップの "多" の側にあります。 外部テーブルの例としては、米国またはカナダの州または顧客の注文のコードを含むテーブルがあります。
m_lAttributes
リレーションシップの種類に関する情報を格納します。 このメンバーの値には、次のいずれかを指定できます。
dbRelationUniqueリレーションシップは一対一です。dbRelationDontEnforceリレーションシップは強制されません (参照整合性はありません)。dbRelationInheritedリレーションシップは、2つのアタッチされたテーブルを含む最新複数データベースに存在します。dbRelationLeftリレーションシップは左結合です。 左外部結合には、2つのテーブルの最初の (左側の) からのすべてのレコードが含まれます。これは、2番目 (右側) のテーブルにレコードの一致する値がない場合でも同様です。dbRelationRightリレーションシップは、右結合です。 右外部結合には、2つのテーブルの2番目 (右側) のすべてのレコードが含まれます。最初の (左側の) テーブルのレコードに一致する値がない場合でも同様です。dbRelationUpdateCascade更新は連鎖します。dbRelationDeleteCascade削除は連鎖します。
m_pFieldInfos
CDaoRelationFieldInfo構造体の配列へのポインター。 配列には、リレーションシップのフィールドごとに1つのオブジェクトが格納されます。 データメンバーは m_nFields 、配列要素の数を示します。
m_nFields
データメンバー内 m_pFieldInfos のオブジェクトの CDaoRelationFieldInfo 数。
解説
上のプライマリとセカンダリへの参照は、クラス CDaoDatabase のGetRelationInfoメンバー関数によって情報がどのように返されるかを示します。
Relation オブジェクトは MFC クラスでは表されません。 代わりに、クラスの CDaoDatabase MFC オブジェクトの基になる DAO オブジェクトは、リレーションシップオブジェクトのコレクションを保持します。 CDaoDatabase は、リレーションシップ情報の一部の項目にアクセスするメンバー関数を提供します。また、包含データベースオブジェクトのメンバー関数を呼び出す GetRelationInfo ことによって、オブジェクトを CDaoRelationInfo 使用して一度にすべてのオブジェクトにアクセスすることもできます。
CDaoDatabase:: GetRelationInfoメンバー関数によって取得された情報は、 CDaoRelationInfo 構造体に格納されます。 CDaoRelationInfo では、デバッグ ビルドで Dump メンバー関数も定義します。 Dump を使用して、CDaoRelationInfo オブジェクトの内容をダンプすることができます。
必要条件
ヘッダー: afxdao.h