無論您是否使用檔案型 I/O,取決於您如何回應下列判定樹中的問題:
應用程式的主要數據是否位於磁碟檔案中
是,主要數據位於磁碟檔案中:
應用程式是否將整個檔案讀入 [檔案開啟] 上的記憶體,並將整個檔案寫回 [檔案儲存] 上的磁碟
是:這是預設的 MFC 檔案例。 使用
CDocument串行化。否:這通常是以交易為基礎的檔案更新的情況。 您會以每筆交易為基礎更新檔案,而且不需要
CDocument串行化。
否,主要數據不在磁碟檔案中:
數據是否位於 ODBC 數據源中
是,數據位於 ODBC 數據來源中:
使用 MFC 的資料庫支援。 此案例的標準 MFC 實作包含
CDatabase物件,如 MFC:搭配文件和檢視使用資料庫類別一文所述。 應用程式也可能讀取和寫入輔助檔案 — 應用程式精靈的用途「資料庫檢視和檔案支援」選項。 在此情況下,您會使用輔助檔案的序列化。否,數據不在 ODBC 數據源中。
此案例的範例:數據位於非 ODBC DBMS 中;數據會透過一些其他機制來讀取,例如 OLE 或 DDE。
在這種情況下,您不會使用串行化,而且您的應用程式不會有 [開啟] 和 [儲存] 功能表項。 您可能仍想要使用
CDocument作為主目錄,就像 MFC ODBC 應用程式使用檔案來儲存CRecordset物件一樣。 但您不會使用框架的預設檔案開啟/儲存文件序列化功能。
為了支援 [檔案] 功能表上的 [開啟]、[儲存] 和 [另存新檔] 命令,架構會提供檔串行化。 序列化會讀取和寫入數據,包括從類別 CObject 衍生的物件,並將其永久存儲在磁碟文件中。 串行化很容易使用並提供許多需求,但在許多數據存取應用程式中可能不合適。 數據存取應用程式通常會以每筆交易為基礎更新數據。 他們會更新受交易影響的記錄,而不是一次讀取和寫入整個數據檔。
如需串行化的相關信息,請參閱 串行化。