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
包含有關關聯性型別的資訊的長整數值。 您可以使用這個值強制使用參考完整性,等等。 您可以使用位元 OR 運算子 ( |) 結合下列其中一個值 (只要該組合不合理):dbRelationUnique 關聯性都是一對一。
dbRelationDontEnforce 關聯性不會強制執行 (沒有參考完整性 (Referential Integrity)。
dbRelationInherited 關係存在於包含兩種其他資料表的非目前的資料庫。
dbRelationUpdateCascade 會更新下拉式清單 (詳細以重疊顯示,請參閱"備註")。
dbRelationDeleteCascade 刪除將下拉式清單。
lpszField
out 包含欄位名稱之 null 結尾字串的指標在主要資料表中 lpszTable(名為)。lpszForeignField
out 包含欄位名稱之 null 結尾字串的指標在外部資料表 (命名 lpszForeignTable)。relinfo
out 包含的關聯資訊的 CDaoRelationInfo 物件的參考您要建立。
備註
關聯性中不能包含查詢或已附加的資料表從外部資料庫。
表示在關聯兩資料表的每一個時,牽涉到欄位中使用函式的第一個版本。 表示在關聯牽涉到多個欄位時,可以使用第二個版本。 的最大欄位數目相關聯的值為 14。
這個動作會建立基礎 DAO 關聯物件,不過,這是 MFC 實作詳細資料,因為相關聯物件的 MFC 的封裝在類別 CDaoDatabase內。 MFC 並未提供關聯的類別。
在變更相關的主索引鍵資料表時,如果您將自動啟動重疊顯示作業相關聯之物件的屬性,資料庫引擎更新或在一個或多個其他資料表中刪除資料錄。
例如,假設您建立 Customers 資料表和訂單資料表之間的串聯刪除關聯性。 當您刪除客戶資料表中的資料錄時,都會在 Orders 資料表中與該客戶相關也會一併刪除。 此外,因此,如果您建立重疊顯示訂單資料表和其他資料表之間的刪除關聯性,從這些資料表的資料錄自動刪除,當您從 Customers 資料表中的資料錄。
如需相關資訊,請參閱本主題 CreateRelation 「方法」DAO 說明。
需求
Header: afxdao.h