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