入出力処理の推奨事項
ファイル ベースの入出力を使うかどうかは、以下の条件判断ツリーの各質問に対する回答によって決まります。
アプリケーションのプライマリ データはディスク ファイルにありますか。
はい、プライマリ データはディスク ファイルにあります。
[ファイル] メニューの [開く] を実行すると、ファイル全体がメモリに読み込まれますか。また、[ファイル] メニューの [上書き保存] を実行すると、ファイル全体がディスクに書き込まれますか。
はい:これは、既定の MFC ドキュメント ケースです。 CDocument のシリアル化を使ってください。
ポッドこれは、通常トランザクション ・ ベースのファイルを更新する場合です。 ファイルはトランザクションごとに更新するので、CDocument のシリアル化は必要ありません。
いいえ、プライマリ データはディスク ファイルにはありません。
データは ODBC データ ソースにありますか。
はい、データは ODBC データ ソースにあります。
MFC のデータベース サポートを使ってください。 この場合の MFC 標準実装では、「MFC データベースのプログラミング モデル」で説明しているように、CDatabase オブジェクトを格納する CDocument オブジェクトが含まれます。 アプリケーションでは、アプリケーション ウィザードの [ファイル サポートのあるデータベース ビュー] オプションをサポートするために、補助ファイルの読み取りおよび書き込みが行われる場合もあります。 この場合、補助ファイルのシリアル化を使用します。
いいえ、データは ODBC データ ソースにありません。
この場合の例:データは、ODBC DBMS である; データは OLE や DDE などの他のメカニズムを介して読み込まれます。
この場合、シリアル化は使いません。[ファイル] メニューの [開く] も [上書き保存] も必要ありません。 MFC ODBC アプリケーションでドキュメントを使って CRecordset オブジェクトを格納するのと同様に、CDocument をホーム ベースとして使うことができます。 ただし、フレームワークにおける [ファイル] メニューの [開く] コマンドや [上書き保存] コマンドなどの既定のドキュメント シリアル化は使わないでください。
[ファイル] メニューの [開く] コマンド、[上書き保存] コマンド、および [名前を付けて保存] コマンドをサポートするために、フレームワークではドキュメントのシリアル化機能を用意しています。 シリアル化では、CObject クラスの派生オブジェクトを含むデータをディスク ファイルなどの 2 次記憶を使って読み取りおよび書き込みを行います。 シリアル化は簡単に使用でき、多様な目的に利用できますが、多くのデータ アクセス アプリケーションには適していません。 データ アクセス アプリケーションでは、通常、トランザクション単位でデータが更新されます。 データ ファイル全体の読み取りおよび書き込みが一度に行われるのではなく、トランザクションの影響があったレコードだけが更新されます。
シリアル化の詳細については、「シリアル化」を参照してください。