Recomendações para manusear entrada/saída
Usar E/S baseada em arquivo ou não vai depender de como você responde às perguntas na seguinte árvore de decisão:
Os dados primários em seu aplicativo residem em um arquivo de disco
Sim, os dados primários residem 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 ao Salvar Arquivo
Sim: esse é o caso de documento MFC padrão. Use a serialização
CDocument
.Não: normalmente é o caso da atualização baseada em transações do arquivo. Você atualiza o arquivo por transação e não precisa de serialização
CDocument
.
Não, os dados primários não residem em um arquivo de disco:
Os dados residem em uma fonte de dados ODBC
Sim, os dados residem em uma fonte de dados ODBC:
Use o suporte de banco de dados do MFC. A implementação padrão do MFC para esse caso inclui um objeto
CDatabase
, conforme discutido no artigo MFC: usando classes de banco de dados com documentos e modos de exibição. O aplicativo também pode ler e gravar um arquivo auxiliar – a finalidade da opção do assistente de aplicativo "uma exibição de banco de dados e o suporte a arquivos". Nesse caso, você usaria a serialização para o arquivo auxiliar.Não, os dados não residem em uma fonte de dados ODBC.
Exemplos desse caso: os dados residem em um DBMS não ODBC; os dados são lidos por meio de algum outro mecanismo, como OLE ou DDE.
Nesses casos, você não usará serialização, e o seu aplicativo não terá itens de menu Abrir e Salvar. Talvez você ainda queira usar um
CDocument
como base, assim como um aplicativo ODBC do MFC usa o documento para armazenar objetosCRecordset
. Mas você não usará a serialização de documentos padrão do Abrir arquivo/Salvar da estrutura.
Para dar suporte aos comandos Abrir, Salvar e Salvar como no menu Arquivo, a estrutura fornece serialização de documentos. A serialização lê e grava dados, incluindo objetos derivados da classe CObject
, para armazenamento permanente, normalmente um arquivo de disco. A serialização é fácil de usar e atende a muitas de suas necessidades, mas pode ser inadequada para muitos aplicativos de acesso a dados. Os aplicativos de acesso a dados normalmente atualizam dados por transação. Eles atualizam os registros afetados pela transação em vez de ler e gravar um arquivo de dados inteiro de uma só vez.
Para obter mais informações sobre serialização, consulte Serialização.
Confira também
Serialização: serialização em comparação com entrada/saída do banco de dados