Поделиться через


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 существует в noncurrent базе данных, которая содержит 2 вложенных таблиц.

    • Обновления dbRelationUpdateCascade каскадируют (дополнительные сведения о каскадах см. примечания).

    • Drop dbRelationDeleteCascade каскадируют.

  • lpszField
    Указатель на null- завершенной строку, содержащую имя поля в первичной таблице с именем lpszTable().

  • lpszForeignField
    Указатель на null- завершенной строку, содержащую имя поля во внешней таблице (с именем lpszForeignTable).

  • relinfo
    Ссылка на объект CDaoRelationInfo, содержащий сведения о связи, которую нужно создать.

Заметки

Связь не может содержать запрос или вложенную таблицу из базы данных.

Используйте первую версию функции, если ссылка включает одно поле 2 в каждой из таблиц.Используйте вторую версию когда ссылка включает несколько полей.Максимальное число полей в связи 14.

Это действие создает базовый объект связи DAO, но это реализации MFC, поскольку инкапсуляция MFC объектов связи содержится в классе CDaoDatabase.MFC не предоставляет класс для ссылок.

Если набор атрибутов объекта ссылки на активировать размещенные каскадируете операции, то ядро СУБД автоматически обновления или удаления записи из одного или нескольких других таблицах при внесении изменений в связанных таблицах первичного ключа.

Например, предположим, что каскадного удаления устанавливает связь между таблицей orders и таблицей customers.При удалении записей из таблицы customers, записи в таблице orders отнесенной на этот клиент также удалены.Кроме того, при установке связи каскадного удаления между заказами таблицей и другими таблицами, записи из этих таблиц автоматически удалены при удалении записей из таблицы customers.

Дополнительные сведения см. в разделе "метод CreateRelation" в Справке DAO.

Требования

Header: afxdao.h

См. также

Ссылки

Класс CDaoDatabase

Диаграмма иерархии

CDaoDatabase::DeleteRelation