Partilhar via


Recomendações para manusear entrada/saída

Se você usar E/S baseado em arquivo ou não depende de como você responder a perguntas na árvore de decisão:

Os dados primários em seu aplicativo residem em um arquivo de disco?

  • Sim, os dados primários reside em um arquivo de disco:

    O aplicativo lê o arquivo inteiro na memória em Abrir Arquivo e grava todo o arquivo de volta no disco em salvar de Arquivos?

    • Sim: Esse é o caso de documento MFC da opção. Use a serialização de CDocument .

    • Não: Normalmente isso é os exemplos de atualização de transação com base do arquivo. Atualize o arquivo em uma base por transação e não precisar a serialização de CDocument .

  • Contrário, os dados primários não reside em um arquivo de disco:

    Os dados residem em uma fonte de dados ODBC?

    • Sim, os dados reside em uma fonte de dados ODBC:

      Use o suporte da base de dados de MFC. A implementação de MFC padrão para estes casos inclui um objeto de CDocument que armazena um objeto de CDatabase , como descrito no artigo Que é o modelo de programação da base de dados de MFC?. O aplicativo também pode ler e gravar um arquivo auxiliar — o objetivo do assistente de aplicativo “uma exibição de base de dados e opção de suporte do arquivo”. Nesse caso, você usaria a serialização do arquivo auxiliar.

    • Contrário, os dados não reside em uma fonte de dados ODBC.

      Exemplos disso casos: os dados residem no DBMS não ODBC; os dados são lidos por meio de qualquer outro mecanismo, como OLE ou DDE.

      Nesses casos, você não usará a serialização, e o aplicativo não terá Abrir e não salvar itens de menu. Você ainda pode querer usar CDocument como uma base de operações, como um aplicativo MFC ODBC usa o documento para armazenar objetos de CRecordset . Mas não usará serialização do documento de Arquivo padrão Abrir/gravação da estrutura.

Para oferecer suporte à abertura, salve, e salve como comandos no menu arquivo, a estrutura fornecem a serialização do documento. Leituras de serialização e grava dados, inclusive objetos derivados da classe CObject, ao armazenamento permanente, normalmente um arquivo de disco. A serialização é fácil usar e tem muitas de suas necessidades, mas pode ser inadequada em muitos aplicativos de acesso a dados. Os aplicativos de acesso a dados normalmente atualizam dados em uma base por transação. Atualiza os registros afetados pela transação em vez da leitura e a gravação um arquivo de dados inteiro imediatamente.

Para obter informações sobre a serialização, consulte Serialização.

Consulte também

Conceitos

Serialização: serialização em comparação com entrada/saída do banco de dados