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