共用方式為


處理輸入/輸出的建議

無論您是否使用檔案型 I/O,取決於您如何回應下列決策樹中的問題:

應用程式的主要資料是否位於磁片檔案中

  • 是,主要資料位於磁片檔案中:

    應用程式是否將整個檔案讀入 [檔案開啟] 上的記憶體,並將整個檔案寫回 [檔案儲存] 上的磁片

    • 是:這是預設的 MFC 檔案例。 使用 CDocument 序列化。

    • 否:這通常是以交易為基礎的檔案更新的情況。 您會以每筆交易為基礎更新檔案,而且不需要 CDocument 序列化。

  • 否,主要資料不在磁片檔案中:

    資料是否位於 ODBC 資料來源中

    • 是,資料位於 ODBC 資料來源中:

      使用 MFC 的資料庫支援。 此案例的標準 MFC 實作包含 CDatabase 物件,如 MFC:搭配檔和檢視 使用資料庫類別一文 所述。 應用程式也可能讀取和寫入輔助檔案 — 應用程式精靈的用途「資料庫檢視和檔案支援」選項。 在此情況下,您會使用輔助檔案的序列化。

    • 否,資料不在 ODBC 資料來源中。

      此案例的範例:資料位於非 ODBC DBMS 中;資料會透過一些其他機制來讀取,例如 OLE 或 DDE。

      在這種情況下,您不會使用序列化,而且您的應用程式不會有 [開啟] 和 [儲存] 功能表項目。 您可能仍想要使用 CDocument 作為主目錄,就像 MFC ODBC 應用程式使用檔來儲存 CRecordset 物件一樣。 但您不會使用架構的預設檔案開啟/儲存檔序列化。

為了支援 [檔案] 功能表上的 [開啟]、[儲存] 和 [另存新檔] 命令,架構會提供檔序列化。 序列化會讀取和寫入資料,包括衍生自 類別 CObject 的物件,通常為磁片檔案。 序列化很容易使用並提供許多需求,但在許多資料存取應用程式中可能不合適。 資料存取應用程式通常會以每筆交易為基礎更新資料。 他們會更新受交易影響的記錄,而不是一次讀取和寫入整個資料檔案。

如需序列化的相關資訊,請參閱 序列化

另請參閱

序列化:序列化與資料庫輸入/輸出