Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Por vezes, poderás não querer usar a arquitetura de documento/visualização do framework nas tuas aplicações de base de dados. Este tópico explica:
Quando você não precisa usar documentos como a serialização de documentos.
Opções do assistente de aplicativos para oferecer suporte a aplicativos sem serialização e sem comandos de menu Arquivo relacionados a documentos, como Novo, Abrir, Salvar e Salvar como.
Como trabalhar com um aplicativo que usa um documento mínimo.
Como estruturar um aplicativo sem documento ou visualização.
Quando você não precisa de documentos
Algumas aplicações têm um conceito distinto de documento. Esses aplicativos normalmente carregam todo ou a maior parte de um arquivo do armazenamento para a memória com um comando Abrir arquivo . Eles gravam o arquivo atualizado de volta ao armazenamento de uma só vez com um comando Salvar arquivo ou Salvar como . O que o usuário vê é um arquivo de dados.
Algumas categorias de candidaturas, no entanto, não exigem um documento. As aplicações de base de dados operam em termos de transações. O aplicativo seleciona registros de um banco de dados e os apresenta ao usuário, geralmente um de cada vez. O que o usuário vê geralmente é um único registro atual, que pode ser o único na memória.
Se a sua aplicação não necessitar de um documento para armazenar dados, poderá dispensar parte ou toda a arquitetura de documento/vista do sistema. O quanto você dispensa depende da abordagem que você prefere. Você pode:
Use um documento mínimo como um local para armazenar uma conexão com sua fonte de dados, mas dispense os recursos normais do documento, como a serialização. Isso é útil quando você deseja várias visualizações dos dados e deseja sincronizar todas as visualizações, atualizando-as todas de uma vez e assim por diante.
Use uma janela de moldura, na qual se desenha diretamente, em vez de usar uma vista. Nesse caso, você omite o documento e armazena quaisquer dados ou conexões de dados no objeto frame-window.
Opções do Assistente de Configuração para Documentos e Vistas
O MFC Application Wizard tem várias opções em Selecionar suporte a banco de dados, listadas na tabela a seguir. Se você usar o MFC Application Wizard para criar um aplicativo, todas essas opções produzirão aplicativos com documentos e modos de exibição. Algumas opções fornecem documentos e modos de exibição que omitem a funcionalidade desnecessária do documento. Para obter mais informações, consulte Suporte a banco de dados, Assistente de aplicativo MFC.
| Opção | Visualizar | Documento |
|---|---|---|
| Nenhum | Derivado de CView. |
Não fornece suporte a banco de dados. Esta é a opção padrão. Se você selecionar a opção Suporte à arquitetura de documento/exibição na página Tipo de aplicativo, Assistente de aplicativo MFC , obterá suporte completo a documentos, incluindo serialização e comandos Novo, Abrir, Salvar e Salvar como no menu Arquivo . Consulte Aplicações sem documento. |
| Somente 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 links, mas não cria classes específicas do banco de dados. Você pode criar conjuntos de registros posteriormente e usá-los para examinar e atualizar registros. |
| Visualização do banco de dados sem suporte a arquivos | Derivado de CRecordView |
Fornece suporte a documentos, mas sem suporte a serialização. O documento pode armazenar o conjunto de registros e coordenar várias visualizações; não suporta serialização ou os comandos Novo, Abrir, Salvar e Salvar como . Consulte Aplicativos com documentos mínimos. Se você incluir uma exibição de banco de dados, deverá especificar a fonte dos dados. Inclui arquivos de cabeçalho de banco de dados, bibliotecas de links, uma exibição de registro e um conjunto de registros. (Disponível apenas para aplicativos com a opção de suporte à arquitetura de documento/exibição selecionada na página Tipo de aplicativo, Assistente de aplicativo MFC .) |
| Visualização de banco de dados com suporte a arquivos | Derivado de CRecordView |
Fornece suporte completo a documentos, incluindo serialização e comandos de menu Arquivo relacionados a documentos. Os aplicativos de banco de dados normalmente operam por registro em vez de por arquivo e, portanto, não precisam de serialização. No entanto, você pode ter um uso especial para serialização. Consulte Aplicativos com documentos mínimos. Se você incluir uma exibição de banco de dados, deverá especificar a fonte dos dados. Inclui arquivos de cabeçalho de banco de dados, bibliotecas de links, uma exibição de registro e um conjunto de registros. (Disponível apenas para aplicativos com a opção de suporte à arquitetura de documento/exibição selecionada na página Tipo de aplicativo, Assistente de aplicativo MFC .) |
Para obter uma discussão sobre alternativas à serialização e usos alternativos para serialização, consulte Serialização: serialização vs. entrada/saída de banco de dados.
Aplicações com Documentos Mínimos
O MFC Application Wizard tem duas opções que suportam aplicativos de acesso a dados baseados em formulário. Cada opção cria uma CRecordViewclasse de exibição derivada e um documento. Eles diferem no que deixam de fora do documento.
Documento sem suporte de ficheiro
Selecione a opção de banco de dados do assistente de aplicativo Visualização de banco de dados sem suporte a arquivos se você não precisar de serialização de documentos. O documento serve os seguintes propósitos úteis:
É um lugar conveniente para armazenar um
CRecordsetobjeto.Esse uso é paralelo aos conceitos comuns do documento: o documento armazena os dados (ou, neste caso, um conjunto de registros) e a exibição é uma exibição do documento.
Se o seu aplicativo apresentar vários modos de exibição (como vários modos de exibição de registro), um documento oferece suporte à coordenação dos modos de exibição.
Se várias vistas mostrarem os mesmos dados, pode utilizar a
CDocument::UpdateAllViewsfunção de membro para coordenar as atualizações de todas as vistas quando qualquer vista alterar os dados.
Você geralmente usa essa opção para aplicativos simples baseados em formulários. O assistente de aplicativos suporta uma estrutura conveniente para esses aplicativos automaticamente.
Documento com suporte a arquivos
Selecione a opção de banco de dados do assistente de aplicativo Visualização de banco de dados com suporte a arquivos quando você tiver um uso alternativo para os comandos do menu Arquivo relacionados a documentos e serialização de documentos. Para a parte de acesso a dados do seu programa, você pode usar o documento da mesma maneira descrita 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 que armazena as preferências do usuário ou outras informações úteis. Para obter mais ideias, consulte Serialização: serialização vs. entrada/saída de banco de dados.
O assistente de aplicativo oferece suporte a essa opção, mas você deve escrever o código que serializa o documento. Armazene as informações serializadas nas estruturas de dados do documento.
Candidaturas sem documento
Às vezes, você pode querer escrever um aplicativo que não use documentos ou modos de exibição. Sem documentos, você armazena seus dados (como um CRecordset objeto) em sua classe de janela de quadro ou sua classe de aplicativo. Quaisquer requisitos adicionais dependem se o aplicativo apresenta uma interface de usuário.
Suporte a banco de dados com uma interface de usuário
Se você tiver uma interface de usuário (diferente, por exemplo, de uma interface de linha de comando do console), seu aplicativo desenha diretamente na área do cliente da janela do quadro em vez de em uma exibição. Tal aplicativo não usa CRecordView, CFormViewou CDialog para sua interface de usuário principal, mas normalmente usa CDialog para diálogos comuns.
Redigir candidaturas sem documentos
Como o assistente de aplicação não oferece suporte à criação de aplicações sem documentos, deve-se escrever a sua própria classe derivada CWinApp e, se necessário, também criar uma classe CFrameWnd ou CMDIFrameWnd. Substituir CWinApp::InitInstance e declarar um objeto de aplicativo como:
CYourNameApp theApp;
A estrutura ainda fornece o mecanismo de mapa de mensagens e muitos outros recursos.
Suporte a banco de dados separado da interface do usuário
Algumas aplicações não necessitam de uma interface de utilizador ou apenas de uma interface mínima. Por exemplo, suponha que você esteja escrevendo:
Um objeto intermediário de acesso a dados que outros aplicativos (clientes) chamam para o processamento especial de dados entre o aplicativo e a fonte de dados.
Um aplicativo que processa dados sem intervenção do usuário, como um aplicativo que move dados de um formato de banco de dados para outro ou um que faz cálculos e executa atualizações em lote.
Como nenhum documento possui o CRecordset objeto, você provavelmente deseja armazená-lo como um membro de dados incorporado em sua CWinAppclasse de aplicativo derivada. As alternativas incluem:
Não manter de modo algum um objeto permanente
CRecordset. Você pode passar NULL para seus construtores de classe de conjunto de registros. Nesse caso, a estrutura cria um objeto temporárioCDatabaseusando as informações na função de membro do conjunto de registrosGetDefaultConnect. Esta é a abordagem alternativa mais provável.Tornando o
CRecordsetobjeto uma variável global. Essa variável deve ser um ponteiro para um objeto de conjunto de registos que você cria dinamicamente na sua substituiçãoCWinApp::InitInstance. Isso evita a tentativa de construir o objeto antes que a estrutura seja inicializada.Usando objetos de conjunto de registos como faria no contexto de um documento ou de uma vista. Crie conjuntos de registros nas funções de membro do seu aplicativo ou objetos de janela de quadro.