CDaoRelationInfo Structure

CDaoRelationInfo Structure


The CDaoRelationInfo structure contains information about a relation defined between fields of two tables in a CDaoDatabase object.

      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


Uniquely names the relation object. For more information, see the topic "Name Property" in DAO Help.


Names the primary table in the relation.


Names the foreign table in the relation. A foreign table is a table used to contain foreign keys. Generally, you use a foreign table to establish or enforce referential integrity. The foreign table is usually on the many side of a one-to-many relationship. Examples of foreign tables include tables containing codes for the American states or Canadian provinces or customer orders.


Contains information about the relation type. The value of this member can be any of the following:

  • dbRelationUnique   Relationship is one-to-one.

  • dbRelationDontEnforce   Relationship is not enforced (no referential integrity).

  • dbRelationInherited   Relationship exists in a noncurrent database that contains the two attached tables.

  • dbRelationLeft   The relationship is a left join. A left outer join includes all of the records from the first (left-hand) of two tables, even if there are no matching values for records in the second (right-hand) table.

  • dbRelationRight   The relationship is a right join. A right outer join includes all of the records from the second (right-hand) of two tables, even if there are no matching values for records in the first (left-hand) table.

  • dbRelationUpdateCascade   Updates will cascade.

  • dbRelationDeleteCascade   Deletions will cascade.


A pointer to an array of CDaoRelationFieldInfo structures. The array contains one object for each field in the relation. The m_nFields data member gives a count of the array elements.


The number of CDaoRelationFieldInfo objects in the m_pFieldInfos data member.

The references to Primary and Secondary above indicate how the information is returned by the GetRelationInfo member function in class CDaoDatabase.

Relation objects are not represented by an MFC class. Instead, the DAO object underlying an MFC object of the CDaoDatabase class maintains a collection of relation objects: CDaoDatabase supplies member functions to access some individual items of relation information, or you can access them all at once with a CDaoRelationInfo object by calling the GetRelationInfo member function of the containing database object.

Information retrieved by the CDaoDatabase::GetRelationInfo member function is stored in a CDaoRelationInfo structure. CDaoRelationInfo also defines a Dump member function in debug builds. You can use Dump to dump the contents of a CDaoRelationInfo object.


Header: afxdao.h

© 2016 Microsoft