MFC: Usando Classes de banco de dados sem documentos e modos de exibição
Às vezes, não convém usar a arquitetura de exibição do documento do framework em seus aplicativos de banco de dados.Este tópico explica:
Quando você não precisará usar documentos , como serialização de documento.
Opções do Assistente de aplicativo para suporte a aplicativos sem serialização e sem relacionadas a documentos arquivo menu comandos, como nova, Abrir, Salvar, e Salvar como.
Como trabalhar com um aplicativo que usa um documento mínimo.
Como estruturar um aplicativo com nenhum documento ou modo.
Quando você não precisa documentos
Alguns aplicativos possuem um conceito distinto de um documento.Esses aplicativos normalmente carrega todos ou a maioria de um arquivo de armazenamento na memória com um Abrir arquivo comando.Eles gravam o arquivo atualizado em armazenamento ao mesmo tempo com um Salvar arquivo ou Salvar como comando.Que o usuário vê é um arquivo de dados.
Algumas categorias de aplicativos, no entanto, não exigem um documento.Operam aplicativos de banco de dados em termos de transações.O aplicativo seleciona registros de um banco de dados e as apresenta ao usuário, geralmente um de cada vez.Que o usuário vê é geralmente um único registro atual, que pode ser o único na memória.
Se seu aplicativo não exigir um documento para armazenar dados, você pode dispensar alguns ou todos da arquitetura de exibição do documento do framework.Quanto você dispensar depende a abordagem desejada.Você pode:
Use um documento mínimo como um lugar para armazenar uma conexão à fonte de dados mas dispensador de recursos de um documento normal, como serialização.Isso é útil quando você deseja vários modos de exibição de dados e deseja sincronizar todos os modos, atualizando-os ao mesmo tempo e assim por diante.
Use uma janela do quadro no qual desenhar diretamente, em vez de usar um modo de exibição.Nesse caso, você pode omite o documento e armazena dados ou conexões de dados no objeto de janela do quadro.
Opções do Assistente de aplicativo para documentos e modos de exibição
O Assistente de aplicativo do MFC tem várias opções em Selecione suporte de banco de dados, que são listados na tabela a seguir.Se você usar o Assistente de aplicativo do MFC para criar um aplicativo, todas essas opções produzem aplicativos com documentos e modos de exibição.Algumas opções de fornecem documentos e exibições omitir funcionalidade documentos desnecessários.Para mais informações, consulte Database Support, MFC Application Wizard.
Opção |
View |
Document |
---|---|---|
Nenhum |
Derivado de CView. |
Não fornece nenhum suporte de banco de dados.Esta é a opção padrão. Se você selecionar o suporte a arquitetura de exibição do documento opção no Application Type, MFC Application Wizard página, você obtém suporte total a documentos incluindo serialização e New, Abrir, Salvar, e Salvar como comandos na arquivo menu.Consulte aplicativos sem documentos. |
Somente os arquivos de cabeçalho |
Derivado de CView. |
Fornece o nível básico de suporte de banco de dados para seu aplicativo. Inclui Afxdb.h.Adiciona bibliotecas de vínculo, mas não cria quaisquer classes específicas de banco de dados.Você pode criar conjuntos de registros posteriormente e usá-los para examinar e atualizar registros. |
Exibição de banco de dados sem suporte de arquivo |
Derivado deCRecordView |
Fornece suporte de documento, mas não há suporte para serialização.Documento pode armazenar o conjunto de registros e coordenar vários modos de exibição; não oferece suporte a serialização ou o New, Abrir, Salvar, e Salvar como comandos.Consulte aplicativos com mínimo documentos.Se você incluir um modo de exibição de banco de dados, você deve especificar a fonte de dados. Inclui arquivos de cabeçalho do banco de dados, bibliotecas de vínculo, um modo de exibição do registro e um conjunto de registros.(Disponível somente para aplicativos com o suporte a arquitetura de exibição do documento opção selecionada na Application Type, MFC Application Wizard página.) |
Modo de exibição de banco de dados com suporte de arquivo |
Derivado deCRecordView |
Fornece suporte de documento completo, incluindo serialização e relacionadas a documentos arquivo comandos de menu.Aplicativos de banco de dados geralmente operam em uma base por registro em vez de em um arquivo por base e, portanto, é necessário serialização.No entanto, você pode ter um uso especial para serialização.Consulte aplicativos com mínimo documentos.Se você incluir um modo de exibição de banco de dados, você deve especificar a fonte de dados. Inclui arquivos de cabeçalho do banco de dados, bibliotecas de vínculo, um modo de exibição do registro e um conjunto de registros.(Disponível somente para aplicativos com o suporte a arquitetura de exibição do documento opção selecionada na Application Type, MFC Application Wizard página.) |
Para uma discussão sobre alternativas para serialização e usos alternativos para a serialização, consulte Serialização: Serialização vs. Banco de dados de entrada/saída.
Aplicativos com documentos mínimos
O Assistente de aplicativo do MFC tem duas opções de suportam a aplicativos de acesso de dados com base em formulário.Cada opção cria uma CRecordView-derivado exibir classe e um documento.Eles diferem em eles deixam fora do documento.
Documento sem suporte de arquivo
Selecione a opção de banco de dados do Assistente de aplicativo exibição de banco de dados sem arquivo de suporte se você não precisa de serialização do documento.O documento serve para as seguintes finalidades:
É um local conveniente para armazenar um CRecordset objeto.
Este uso é semelhante ao conceitos de documento comum: documento armazena os dados (ou, neste caso, um conjunto de registros) e o modo de exibição é um modo de exibição do documento.
Se seu aplicativo apresenta vários modos de exibição (como vários modos de exibição de registros), um documento suporta coordenando as exibições.
Se vários modos de exibição mostram os mesmos dados, você pode usar o CDocument::UpdateAllViews função de membro para coordenar as atualizações para todos os modos quando qualquer exibir altera os dados.
Use esta opção para aplicativos baseados em formulário simples.O Assistente de aplicativo suporta uma estrutura conveniente para tais aplicativos automaticamente.
Documento com suporte a arquivos
Selecione a opção de banco de dados do Assistente de aplicativo suporte a exibição de banco de dados com o arquivo quando você tem a alternativa de usar para relacionados ao documento arquivo comandos de menu e serialização de documento.Para a parte de acesso a dados do seu programa, você pode usar o documento da mesma maneira como descrito em Documento sem suporte a arquivos.Você pode usar o recurso de serialização do documento, por exemplo, para ler e gravar um documento de perfil de usuário serializado armazena as preferências do usuário ou outras informações úteis.Para obter mais idéias, consulte Serialização: Serialização vs. Banco de dados de entrada/saída.
O Assistente de aplicativo oferece suporte a essa opção, mas você deve escrever o código serializa o documento.Armazene informações serializadas em membros de dados do documento.
Aplicativos com nenhum documento
Você pode querer escrever um aplicativo não usa documentos ou exibições.Sem documentos, você pode armazenar os dados (como um CRecordset objeto) em sua classe de janela do quadro ou da sua classe de aplicativo.Requisitos adicionais dependem se o aplicativo apresenta uma interface de usuário.
Suporte de banco de dados com uma Interface de usuário
Se você tiver uma interface de usuário (diferente de, por exemplo, uma interface de linha de comando do console), seu aplicativo desenha diretamente na área cliente da janela de quadro em vez de em uma exibição.Esse aplicativo não usa CRecordView, CFormView, ou CDialog para sua interface de usuário principal, mas normalmente usam CDialog para caixas de diálogo comuns.
Escrevendo aplicativos sem documentos
Porque o Assistente de aplicativo não oferece suporte a criação de aplicativos sem documentos, você deve escrever seu próprio CWinApp-classe derivada e, se necessário, também criar um CFrameWnd ou CMDIFrameWnd classe.Substituir CWinApp::InitInstance e declarar um objeto do aplicativo como:
CYourNameApp theApp;
A estrutura ainda fornece o mecanismo de mapa de mensagens e muitos outros recursos.
Banco de dados separado de suporte da Interface do usuário
Alguns aplicativos precisam sem interface do usuário ou apenas um mínimo.Por exemplo, suponha que você está escrevendo:
Um objeto de acesso a dados intermediários chamam outros aplicativos (clientes) para processamento especial de dados entre o aplicativo e a fonte de dados.
Um aplicativo que processa dados sem intervenção do usuário, como, por exemplo, um aplicativo que move dados de um formato de banco de dados para outro ou que faz cálculos e realiza atualizações em lote.
Porque nenhum documento possui o CRecordset ou CDaoRecordset de objeto, você provavelmente deseja armazená-lo como um membro de dados incorporados em seu CWinApp-aplicativo classe derivada.As alternativas incluem:
Não manter permanente CRecordset ou CDaoRecordset em todos os objetos.Você pode passar Nulo para construtores de classe do conjunto de registros.Nesse caso, o framework cria temporário CDatabase ou CDaoDatabase usando as informações do conjunto de objetos GetDefaultConnect função de membro.Esta é a abordagem alternativa mais provável.
Tornando o CRecordset ou CDaoRecordset uma variável global do objeto.Esta variável deve ser um ponteiro para um objeto recordset que você criar dinamicamente em seu CWinApp::InitInstance substituir.Isso evita a tentativa de construir o objeto antes que a estrutura é inicializada.
Usando objetos recordset como faria no contexto de um documento ou um modo de exibição.Crie conjuntos de registros no membro funções do seu aplicativo ou objetos de janela do quadro.