次の方法で共有


入出力処理の推奨事項

更新 : 2007 年 11 月

ファイル ベースの入出力を使うかどうかは、以下の条件判断ツリーの各質問に対する回答によって決まります。

アプリケーションのプライマリ データはディスク ファイルにありますか。

  • はい、プライマリ データはディスク ファイルにあります。

    [ファイル] メニューの [開く] を実行すると、ファイル全体がメモリに読み込まれますか。また、[ファイル] メニューの [上書き保存] を実行すると、ファイル全体がディスクに書き込まれますか。

    • はい : これは MFC ドキュメントの既定の動作です。CDocument のシリアル化を使ってください。

    • いいえ : これは通常、トランザクション ベースでファイルの更新を行う場合です。ファイルはトランザクションごとに更新するので、CDocument のシリアル化は必要ありません。

  • いいえ、プライマリ データはディスク ファイルにはありません。

    データは ODBC データ ソースにありますか。

    • はい、データは ODBC データ ソースにあります。

      MFC のデータベース サポートを使ってください。この場合の MFC 標準実装では、「MFC データベースのプログラミング モデル」で説明しているように、CDatabase オブジェクトを格納する CDocument オブジェクトが含まれます。アプリケーションでは、アプリケーション ウィザードの [ファイル サポートのあるデータベース ビュー] オプションをサポートするために、補助ファイルの読み取りおよび書き込みが行われる場合もあります。この場合、補助ファイルのシリアル化を使用します。

    • いいえ、データは ODBC データ ソースにありません。

      この場合の例は、データが ODBC DBMS 以外のデータ ソースにある場合です。データは OLE や DDE など、ほかの機構を通じて読み取られます。

      この場合、シリアル化は使いません。[ファイル] メニューの [開く] も [上書き保存] も必要ありません。MFC ODBC アプリケーションでドキュメントを使って CRecordset オブジェクトを格納するのと同様に、CDocument をホーム ベースとして使うことができます。ただし、フレームワークにおける [ファイル] メニューの [開く] コマンドや [上書き保存] コマンドなどの既定のドキュメント シリアル化は使わないでください。

[ファイル] メニューの [開く] コマンド、[上書き保存] コマンド、および [名前を付けて保存] コマンドをサポートするために、フレームワークではドキュメントのシリアル化機能を用意しています。シリアル化では、CObject クラスの派生オブジェクトを含むデータをディスク ファイルなどの 2 次記憶を使って読み取りおよび書き込みを行います。シリアル化は簡単に使用でき、多様な目的に利用できますが、多くのデータ アクセス アプリケーションには適していません。データ アクセス アプリケーションでは、通常、トランザクション単位でデータが更新されます。データ ファイル全体の読み取りおよび書き込みが一度に行われるのではなく、トランザクションの影響があったレコードだけが更新されます。

シリアル化の詳細については、「シリアル化」を参照してください。

参照

概念

シリアル化 : シリアル化とデータベースの入出力