CDaoDatabase::CreateRelation

调用该成员函数建立一个或多个字段在一个主表中在数据库和一个或多个字段之间的关系在一个外部表(另一表在数据库中)。

void CreateRelation( 
   LPCTSTR lpszName, 
   LPCTSTR lpszTable, 
   LPCTSTR lpszForeignTable, 
   long lAttributes, 
   LPCTSTR lpszField, 
   LPCTSTR lpszForeignField  
);
void CreateRelation( 
   CDaoRelationInfo& relinfo  
);

参数

  • lpszName
    关系对象的唯一名称。该名称必须以字母开头,可以包含最多40个字符。它包括数字和下划线字符,但不能包含空格或标点。

  • lpszTable
    主表的名称关系中的。如果表不存在,MFC引发类型 CDaoException的异常。

  • lpszForeignTable
    外部表的名称关系中的。如果表不存在,MFC引发类型 CDaoException的异常。

  • lAttributes
    包含有关关系类型信息的较长的值。可以使用此值强制引用完整性,等等。可以使用按位"或"运算符(|)组合下列值中的任何一个(只要该组合有意义):

    • dbRelationUnique 之间的一对一的。

    • dbRelationDontEnforce 关系不强制(没有引用完整性的)。

    • dbRelationInherited 关系在包含两个附加的表的一个使用的数据库中存在

    • dbRelationUpdateCascade 更新将级联(获得更多以层叠,请参见"备注")。

    • dbRelationDeleteCascade 删除级联发生。

  • lpszField
    对包含字段的名称一个Null终止的字符串的指针在主表中(命名 lpszTable)。

  • lpszForeignField
    对包含字段的名称一个Null终止的字符串的指针在外部表中(命名 lpszForeignTable)。

  • relinfo
    对包含有关关系的信息 CDaoRelationInfo 对象的引用要创建。

备注

该关系不能包含一个查询或一个附加的表来自外部数据库。

在关系在两个表中的每个表时,涉及一个字段请使用函数的第一个版本。在关系涉及多个字段时,请使用第二个版本。字段的最大数目关系中的为14。

此操作将创建一个基础DAO关系对象,但是,这是MFC实现详细信息,因为关系对象的MFC的封装在选件类 CDaoDatabase中。MFC不提供关系的选件类。

如果设置关系对象的属性激活级联操作,自动数据库引擎更新或在一个或多个其他表中删除记录,当更改相关主键表时。

例如,假设您正在生成customers表和orders表之间的级联删除关系。在customers表中删除记录,用于记录在orders表中包含该客户相关也将被删除。此外,因此,如果生成级联orders表和其他表之间的删除关系,从这些表中的记录自动删除,当从customers表中删除记录。

有关相关信息,请参见主题“CreateRelation方法” DAO帮助。

要求

Header: afxdao.h

请参见

参考

CDaoDatabase选件类

层次结构图

CDaoDatabase::DeleteRelation