我應該使用 DAO 或是 ODBC?
注意事項 |
---|
從 Visual C++ .NET 開始,Visual C++ 環境和精靈不再支援 DAO (但該版本中仍包含 DAO 類別,您仍然可以使用這些類別)。Microsoft 建議您針對新的專案使用 OLE DB 樣板或是 ODBC。請在維護現有應用程式時再使用 DAO。 |
您應該使用哪一組 MFC 類別? 這將視您的需要而定:
如果您只能使用 ODBC 資料來源,請使用 ODBC 類別,特別是在主從架構的狀況中,在此狀況下 MFC ODBC 類別將提供較佳的效能。
如果您主要使用 Microsoft Jet (.mdb) 資料庫,或是 Microsoft Jet 資料庫引擎可直接讀取的其他資料庫格式,則使用 DAO 類別。 如需這些項目的清單,請參閱我可使用 DAO 和 ODBC 存取什麼資料庫?
當需要加速 Microsoft Jet 資料庫引擎和 DAO 類別的其他功能時,可透過 DAO 類別來存取 ODBC 資料來源。
注意事項 DAO 需要額外的硬碟空間。
DAO 類別具有以下優點:
在某些情況下可提供較佳的效能,特別是在使用 Microsoft Jet (.mdb) 資料庫時。
可與 ODBC 類別和 Microsoft Access Basic 和 Microsoft Visual Basic 一致。
存取驗證規則 (Rule)。
可指定資料表之間的關係。
更多樣化的資料存取模型,可支援資料定義語言 (Data Definition Language,DDL) 和資料操作語言 (Data Manipulation Language,DML)。 如需詳細資訊,請參閱資料庫定義和管理。
下表摘要出主要差異以協助您選擇。
在 MFC DAO 和 ODBC 類別之間選擇
是否可以 |
使用 DAO 類別? |
使用 ODBC 類別? |
---|---|---|
存取 .MDB 檔 |
是 |
是 |
存取 ODBC 資料來源 |
是 |
是 |
可用於 16 位元 |
否 |
是 |
可用於 32 位元 |
是 |
是 |
可用於 64 位元 |
否 |
是 |
資料庫壓縮 |
是 |
否 |
資料庫引擎支援 |
Microsoft Jet 資料庫引擎 |
目標 DBMS |
DDL 支援 |
是 |
只能透過直接的 ODBC 呼叫 |
DML 支援 |
是 |
是 |
MFC 實作性質 |
DAO 核心函式的「包裝函式」 |
簡化的抽象層,而非 ODBC API 的「包裝函式」 |
最佳化 |
.mdb 檔 (Microsoft Access) |
您擁有驅動程式的任何 DBMS,特別是在主從架構的狀況中 |
交易支援 |
每個解決方案,或針對 ODBC 資料、每個資料庫 |
每個資料庫 |
請切住,ODBC 驅動程式的功能都不相同。 如需詳細資訊,請參閱《ODBC 程式設計人員參考》和 ODBC 驅動程式的說明檔。