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 da estrutura em seus aplicativos de banco de dados. Este tópico explica:

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

  • Opções do Assistente de aplicativo para oferecer suporte a aplicativos sem a serialização e sem relacionados a documento arquivo comandos de menu, 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 o modo de exibição.

Quando você não precisa documentos

Alguns aplicativos possuem um conceito distinto de um documento. Esses aplicativos normalmente carrega todas 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. O que o usuário vê é um arquivo de dados.

Algumas categorias de aplicativos, no entanto, não exigem um documento. Aplicativos de banco de dados funcionam em termos de transações. O aplicativo seleciona os registros de um banco de dados e as apresenta ao usuário, geralmente, um por vez. Geralmente é um único registro atual, que pode ser o único na memória que o usuário vê.

Se seu aplicativo não exigir um documento para armazenar dados, você pode dispensar alguns ou todos da arquitetura de exibição do documento da estrutura. Quanto você dispensar depende da abordagem desejada. Você pode:

  • Use um documento mínimo como um lugar para armazenar uma conexão com a fonte de dados, mas dispensador de recursos de documento normal, como a serialização. Isso é útil quando você deseja que vários modos de exibição dos dados e deseja sincronizar todos os modos, atualizá-las de uma só vez e assim por diante.

  • Use uma janela de quadro no qual desenhar diretamente, em vez de usar um modo de exibição. Nesse caso, você pode omite o documento e armazena quaisquer dados ou conexões de dados no objeto de janela de quadro.

Opções do Assistente de aplicativo para documentos e modos de exibição

O Assistente de aplicativo 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 MFC para criar um aplicativo, todas essas opções produzem aplicativos com documentos e modos de exibição. Algumas opções fornecem documentos e modos de exibição omitir a funcionalidade documentos desnecessários. For more information, see Suporte de banco de dados, o Assistente de aplicativo do MFC.

Option

View

Document

None

Derivado CView.

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

Se você selecionar o suporte a arquitetura de exibição do documento opção na Tipo de aplicativo MFC Application Wizard página, você obtém suporte total a documentos, incluindo a serialização e New, Abrir, Salvar, e Salvar como comandos no arquivo menu. Consulte aplicativos sem nenhum documento.

Somente os arquivos de cabeçalho

Derivado CView.

Fornece o nível básico de suporte de banco de dados para seu aplicativo.

Inclui o Afxdb.h. Adiciona as 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.

Modo de exibição de banco de dados sem suporte de arquivo

DerivadoCRecordView

Fornece suporte a documentos, mas não há suporte para serialização. Documento pode armazenar um 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 o 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 Tipo de aplicativo MFC Application Wizard página.)

Modo de exibição de banco de dados com suporte a arquivos

DerivadoCRecordView

Fornece suporte total a documentos, incluindo a serialização e relacionados a documento 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, não é necessário serialização. No entanto, talvez você tenha um uso especial para serialização. Consulte aplicativos com o 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 Tipo de aplicativo MFC Application Wizard página.)

Para uma discussão sobre alternativas para a serialização e usos alternativos para a serialização, consulte Serialization: Serialization vs. Database Input/Output.

Aplicativos com documentos mínimos

O Assistente de aplicativo MFC tem duas opções de suportam a aplicativos de acesso de dados baseada em formulário. Cada opção cria uma CRecordView-derivado do modo de exibição de classe e um documento. Eles diferem no check-out do documento, eles deixam.

O documento sem suporte de arquivo

Selecione a opção de banco de dados do Assistente de aplicativo suporte do modo de exibição de banco de dados sem o arquivo se você não precisa de serialização do documento. O documento serve para as seguintes finalidades úteis:

  • É um local conveniente para armazenar um CRecordset objeto.

    Esse uso é semelhante ao conceitos de documento comum: o 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 os vários modos de exibição de registros), um documento suporta os modos de exibição de coordenação.

    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 de exibição quando altera a qualquer modo de exibição de dados.

Geralmente você pode usar esta opção para aplicativos baseados em formulário de simples. O Assistente de aplicativo suporta uma estrutura conveniente para tais aplicativos automaticamente.

Documento com o suporte de arquivo

Selecione a opção de banco de dados do Assistente de aplicativo suporte do modo de 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 do documento. Para a parte de acesso a dados do seu programa, você pode usar o documento da mesma forma como descrito em Documento sem suporte a arquivos. Você pode usar o recurso de serialização do documento, por exemplo, 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 idéias, consulte Serialization: Serialization vs. Database Input/Output.

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 de serializado em membros de dados do documento.

Aplicativos sem nenhum documento

Às vezes, talvez você queira escrever um aplicativo que não usa documentos ou exibições. Sem documentos, você pode armazenar os dados (como um CRecordset objeto) em sua classe de janela de quadro ou da sua turma 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 fazê-lo em um modo de exibição. Esse aplicativo não usa CRecordView, CFormView, ou CDialog sua interface de usuário principal, mas normalmente usa CDialog para caixas de diálogo comum.

Aplicativos de gravação 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 de aplicativo, como:

CYourNameApp theApp;

A estrutura ainda fornece o mecanismo do mapa da mensagem e muitos outros recursos.

Banco de dados separado de suporte da Interface do usuário

Alguns aplicativos precisam de nenhuma interface de usuário ou somente um mínimo. Por exemplo, suponha que você está escrevendo:

  • Um objeto de acesso a dados intermediários que chamam de 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 os dados de um formato de banco de dados para outro ou que não de cálculos e realiza atualizações em lotes.

Porque nenhum documento possui a CRecordset ou CDaoRecordset o objeto, você provavelmente deseja armazená-lo como um membro de dados incorporados em seu CWinApp-derivada da classe de aplicativo. As alternativas incluem:

  • Não manter permanentes CRecordset ou CDaoRecordset o objeto. Você pode passar Nulo para os construtores de classe do conjunto de registros. Nesse caso, o framework cria um emprego temporário de CDatabase ou CDaoDatabase as informações no conjunto de registros usando o objeto GetDefaultConnect função de membro. Esta é a abordagem alternativa mais provável.

  • Tornando o CRecordset ou CDaoRecordset objeto uma variável global. Essa variável deve ser um ponteiro para um objeto recordset que você criar dinamicamente em seu CWinApp::InitInstance substituição. 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 os objetos da janela do quadro.

Consulte também

Conceitos

Classes de banco de dados MFC (ODBC e DAO)