Partilhar via


MFC: usando classes de banco de dados sem documentos e exibições

Às vezes você não pode usar a arquitetura do documento/exibição de estrutura em seus aplicativos de base de dados. Este tópico explica:

  • Quando você não precisar usar documentos como a serialização do documento.

  • As opções do assistente de aplicativo para dar suporte a aplicativos sem serialização e sem comandos de menu relacionados ao documento de Arquivo como Novo, Abrir, Salvar, e Salvar como.

  • Como trabalhar com um aplicativo que usa um documento mínimo.

  • Como estruturar um aplicativo sem o documento ou exibição.

Quando você não precisa documentos

Alguns aplicativos têm um conceito distinto de um documento. Esses aplicativos normalmente carregar qualquer arquivo ou a maioria de armazenamento na memória com um comando de Abrir Arquivo . Escrevem o arquivo atualizada para o armazenamento de uma vez com um comando de Salvar Arquivo ou de Salvar como . O que o usuário vê é um arquivo de dados.

Algumas categorias de aplicativos, porém, não exigem um documento. Os aplicativos de base de dados operam em termos de transações. O aplicativo selecionar registros de um base de dados e apresenta-os ao usuário, geralmente um de cada vez. O que o usuário vê é geralmente um único registro atual, que pode ser único na memória.

Se seu aplicativo não exigir um documento armazenando dados, você pode dispensar com qualquer documento ou de qualquer estrutura/arquitetura de exibição. O quanto você dispensa com depende da abordagem que você preferir. Você pode:

  • Use um documento mínimo como um local para armazenar uma conexão à fonte de dados para dispensá-la mas com recursos comuns do documento como a serialização. Isso é útil quando você quiser várias exibições dos dados e as deseja sincronizar todas as exibições, as atualizando de uma vez e assim por diante.

  • Use uma janela do quadro, no qual você desenha diretamente, em vez de usar uma exibição. Nesse caso, você omitir o documento e armazena todos os dados ou conexões de dados na janela quadro- objeto.

As opções do assistente do aplicativo para documentos e exibições

O assistente de aplicativo MFC tem várias opções em Select database support, que são listadas na tabela a seguir. Se você usar o assistente de aplicativo MFC para criar um aplicativo, todas essas opções aplicativos gerenciem com documentos e exibições. Algumas opções fornecem os documentos e exibições que omitem funcionalidade desnecessárias do documento. Para obter mais informações, consulte Suporte ao banco de dados, Assistente de Aplicativo MFC.

Opção

View

Documento

Nenhum

Derivada de CView.

Não fornece nenhum suporte da base de dados. Esta é a opção padrão.

Se você selecionar a opção de Document/view architecture support na página de Tipo de aplicativo, Assistente de Aplicativo MFC , você obtém o suporte do documento completo que inclui a serialização e o New, o Abrir, o Salvar, os comandos e de Salvar como no menu de Arquivo . Consulte Aplicativos sem o documento.

Arquivos de cabeçalho apenas

Derivada de CView.

Fornece o nível de suporte da base de dados do aplicativo.

Inclui Afxdb.h. Adiciona bibliotecas de vínculo, mas não cria nenhuma classes base de dados - específicas. Você pode criar conjuntos de registros e usá-los posteriormente para revisar e atualizar registros.

Exibição do base de dados sem suporte do arquivo

Derivada de CRecordView

Não fornece suporte do documento mas nenhum suporte à serialização. O documento pode armazenar várias exibições de conjunto de registros e de coordenadas; o não oferece suporte à serialização ou New, Abrir, Salvar, e comandos de Salvar como . Consulte Aplicativos com documentos mínimos. Se você incluir uma exibição de base de dados, você deve especificar a origem dos dados.

Inclui arquivos de cabeçalho da base de dados, bibliotecas de vínculo, uma exibição do registro, e um conjunto de registros. (Disponível apenas para aplicativos com a opção de Document/view architecture support selecionada na página de Tipo de aplicativo, Assistente de Aplicativo MFC .)

Exibição do base de dados com suporte do arquivo

Derivada de CRecordView

Fornece suporte do documento completo, incluindo a serialização e comandos de menu relacionados ao documento de Arquivo . Os aplicativos de base de dados operam normalmente em uma base por registro em vez de em uma base de um Arquivo por vez e assim que não precisam a serialização. Porém, você pode ter um uso especial para a serialização. Consulte Aplicativos com documentos mínimos. Se você incluir uma exibição de base de dados, você deve especificar a origem dos dados.

Inclui arquivos de cabeçalho da base de dados, bibliotecas de vínculo, uma exibição do registro, e um conjunto de registros. (Disponível apenas para aplicativos com a opção de Document/view architecture support selecionada na página de Tipo de aplicativo, Assistente de Aplicativo MFC .)

Para um exame das alternativas aos usos de serialização e alternativos para serialização, consulte Serialização: serialização em comparação com entrada/saída do banco de dados.

Aplicativos com documentos mínimos

O assistente de aplicativo MFC tem duas opções que oferecem suporte a aplicativos de acesso a dados com base em formulários. Cada opção cria CRecordView- classe derivada da exibição e um documento. Diferem no que permitem fora do documento.

Documento sem suporte de Arquivo

Selecione a opção Database view without file support da base de dados do assistente do aplicativo se você não precisar de serialização do documento. O documento tem as seguintes finalidades úteis:

  • É um local conveniente para armazenar um objeto de CRecordset .

    Esse uso se conceitos comuns do documento: os repositórios de documento os dados (ou, nesse caso, um conjunto de registros) e a exibição é uma exibição do documento.

  • Se seu aplicativo apresenta várias exibições (como várias exibições de registro), o oferece suporte de um documento que coordenam as exibições.

    Se várias exibições mostram os mesmos dados, você pode usar a função de membro de CDocument::UpdateAllViews para coordenar atualizações a todas as exibições quando qualquer exibição altera os dados.

Você geralmente usa essa opção para aplicativos com base em formulários simples. O assistente de aplicativo oferece suporte a uma estrutura conveniente para esses aplicativos automaticamente.

Documento com suporte de Arquivo

Selecione a opção Database view with file support da base de dados do assistente de aplicativo quando você tem um uso de backup para os comandos de menu de Arquivo e a serialização relacionados ao documento do 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 de Arquivo. Você pode usar o recurso de serialização do documento, por exemplo, ler e gravar um documento serializado de perfil de usuário que armazena outras informações útil as preferências do usuário ou. Para obter mais ideias, consulte Serialização: serialização em comparação com entrada/saída do banco de dados.

O assistente de aplicativo suporta essa opção, mas você deve escrever o código que serializa o documento. Armazenar as informações serializadas em membros de dados de documento.

Aplicativos sem o documento

Às vezes você pode escrever um aplicativo que não usa documentos ou exibições. Sem documentos, você armazena os dados (como um objeto de CRecordset ) em sua classe de quadro- janela ou em sua classe do aplicativo. Todos os requisitos adicionais dependem se o aplicativo apresenta uma interface do usuário.

Suporte de base de dados com uma interface do usuário

Se você tiver uma interface do usuário (diferente, por exemplo, uma interface de linha de comando do console), seu aplicativo desenha diretamente na área do cliente da janela do quadro vez de em uma exibição. Esse aplicativo não usa CRecordView, CFormView, ou CDialog para sua interface de usuário principal, mas normalmente uso CDialog para caixas de diálogo comuns.

Aplicativos de escrita sem documentos

Porque o assistente de aplicativo não oferece suporte à criação de aplicativos sem documentos, escreva seu próprio CWinApp- a classe derivada e, se necessário, também cria uma classe de CFrameWnd ou de CMDIFrameWnd . Substituir CWinApp::InitInstance e declarar um objeto de aplicativo como:

CYourNameApp theApp;

A estrutura ainda fornece o mecanismo retornadas mapa e vários outros recursos.

O suporte da base de dados separado da interface do usuário

Alguns aplicativos não precisam de nenhuma interface do usuário ou apenas mínima. Por exemplo, suponha que você estiver escrevendo:

  • Um objeto intermediário de acesso a dados que outros aplicativos clientes () chame 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 um aplicativo que move dados de um formato da base de dados para outro ou um que faz cálculos e executa atualizações em lote.

Porque nenhum documento é o proprietário do objeto de CRecordset ou de CDaoRecordset , você deseja que provavelmente para armazená-los como um membro de dados inserido em seu CWinApp- classe derivada do aplicativo. As alternativas incluem:

  • Não manter CRecordset ou um objeto permanente de CDaoRecordset de todos eles. Você pode passar nulo a seus construtores da classe do conjunto de registros. Nesse caso, a estrutura CDatabase ou cria um objeto temporário de CDaoDatabase usando as informações na função de membro de GetDefaultConnect conjunto de registros. Essa é a abordagem alternativa mais provável.

  • Fazendo CRecordset ou CDaoRecordset objeto variável global. Essa variável deve ser um ponteiro para um objeto do conjunto de registros que você cria dinamicamente em sua substituição de CWinApp::InitInstance . Isso impede tentar criar o objeto antes que a estrutura foi inicializada.

  • Usando o conjunto de registros objetos como você dentro do contexto de um documento ou exibição. Crie conjuntos de registros das funções de membro seus de aplicativo ou objetos de quadro- janela.

Consulte também

Conceitos

Classes de banco de dados MFC (ODBC e DAO)