Menu de arquivo em um aplicativo de banco de dados MFC
Se você criar um aplicativo de banco de dados MFC e não usar a serialização, como você deve interpretar os comandos Abrir, Fechar, Salvar e Salvar como no menu Arquivo Enquanto não houver diretrizes de estilo para essa pergunta, aqui estão algumas sugestões:
Elimine totalmente o comando Abrir do menu Arquivo.
Interprete o comando Abrir como "abrir banco de dados" e mostre ao usuário uma lista de fontes de dados que seu aplicativo reconhece.
Interprete o comando Abrir como, talvez, "abrir perfil". Mantenha Abrir para abrir um arquivo serializado, mas use o arquivo para armazenar um documento serializado contendo informações de "perfil do usuário", como as preferências do usuário, incluindo sua ID de logon (opcionalmente excluindo a senha) e a fonte de dados com a qual o usuário trabalhou mais recentemente.
O Assistente de Aplicativo MFC dá suporte à criação de um aplicativo sem comandos de menu arquivo relacionados a documentos. Selecione a opção Exibição banco de dados sem suporte de arquivo na página Suporte a Banco de Dados.
Para interpretar um comando de menu arquivo de um modo especial, você deve substituir um ou mais manipuladores de comando, principalmente em sua classe derivada de CWinApp
. Por exemplo, se você substituir OnFileOpen
completamente (o que implementa o comando ID_FILE_OPEN
) para significar "abrir banco de dados":
Não chame a versão de classe base de
OnFileOpen
, uma vez que você estará substituindo completamente a implementação padrão da estrutura do comando.Em vez disso, use o manipulador para exibir uma caixa de diálogo listando fontes de dados. Você pode exibir essa caixa de diálogo chamando
CDatabase::OpenEx
ouCDatabase::Open
com o parâmetro NULL. Isso abre uma caixa de diálogo ODBC que exibe todas as fontes de dados disponíveis no computador do usuário.Como os aplicativos de banco de dados normalmente não salvam um documento inteiro, você provavelmente deseja remover as implementações Salvar e Salvar como, a menos que use um documento serializado para armazenar informações de perfil. Caso contrário, você poderá implementar o comando Salvar como, por exemplo, "fazer commit da transação". Confira a Nota Técnica 22 para mais informações sobre como substituir esses comandos.
Confira também
Serialização: serialização em comparação com entrada/saída do banco de dados