MFC: Usando classes de banco de dados com documentos e exibições

Você pode usar as classes de banco de dados MFC — DAO ou ODBC — com ou sem a arquitetura/modo de exibição do documento.Este tópico enfatiza a trabalhar com documentos e modos de exibição.Explica:

  • sistema autônomo escrever um aplicativo baseado em formulário using a CRecordView ou CDaoRecordView objeto sistema autônomo o modo de exibição principal no seu documento.

  • Como usar objetos de conjunto de registros em seus documentos e modos de exibição.

  • Outras considerações.

Alternativas, consulte MFC: Usando classes de banco de dados sem documentos e modos de exibição.

Escrever um aplicativo baseado em formulário

Muitos aplicativos de acesso aos dados baseiam-se em formulários.A interface do usuário é um formulário que contém controles nos quais o usuário examina, insere ou edita dados.Para tornar o formulário do aplicativo com base, use a classe CRecordView ou CDaoRecordView. Quando você executa o Assistente de aplicativos MFC e selecionar ODBC tipo de cliente sobre o Suporte de banco de dados página, o projeto usa CRecordView para a classe de modo de exibição. Os assistentes não suportam mais DAO, portanto, se você deseja usar CDaoRecordView, você precisa codificá-lo manualmente.

Em um aplicativo baseado em formulário, cada objeto de exibição registro armazena um ponteiro para um CRecordset ou CDaoRecordset objeto. Mecanismo de troca (RFX) de campo de registro da estrutura troca dados entre o conjunto de registros e a fonte de dados.Os dados da caixa de diálogo trocam (DDX) mecanismo trocas de dados entre os membros de dados de campo do objeto conjunto de registros e controles no formulário.CRecordView ou CDaoRecordView também fornece padrão funções do manipulador de comando para navegar de um registro para outro no formulário.

Para criar um aplicativo baseado em formulário com o Assistente de aplicativo, consulte Criando um aplicativo MFC baseada em formulários and Suporte a banco de dados, MFC Application Wizard.

Para obter uma abordagem completa de formulários, consulte Modos de exibição do registro.

Usando conjuntos de registros em documentos e modos de exibição

Muitos aplicativos baseados em formulário simples não precisam de documentos.Se seu aplicativo é mais complexo, você provavelmente desejará usar um documento sistema autônomo um proxy para o banco de dados, armazenando um CDatabase ou CDaoDatabase objeto que se conecta a fonte de dados. Aplicativos com base em formulários normalmente armazenam um ponteiro para um objeto conjunto de registros no modo de exibição.Outros tipos de aplicativos de banco de dados armazenam conjuntos de registros e CDatabase ou CDaoDatabase objeto no documento. Aqui estão algumas possibilidades para o uso de documentos em aplicativos de banco de dados:

  • Se você estiver acessando um conjunto de registros em um contexto local, criar um CRecordset ou CDaoRecordset objeto localmente em funções de membro do documento ou o modo de exibição, conforme necessário.

    Declare um objeto de conjunto de registros sistema autônomo uma variável local em uma função.Passar NULO para o construtor, que faz com que a estrutura criar e em em aberto um temporária CDatabase ou CDaoDatabase objeto para você. sistema autônomo alternativa, passar um ponteiro para um CDatabase ou CDaoDatabase objeto. Usar o conjunto de registros dentro da função e deixe-a ser destruídos automaticamente quando a função é encerrado.

    Quando você passar NULO para um construtor de conjunto de registros, a estrutura usa informações retornadas pelo GetDefaultConnect função de membro para criar um CDatabase ou CDaoDatabase objeto e em aberto-lo. Os assistentes implementam GetDefaultConnect para você.

  • Se você estiver acessando um conjunto de registros durante o tempo de vida do documento, incorpore um ou mais CRecordset ou CDaoRecordset objetos em seu documento.

    Construa sistema autônomo objetos conjunto de registros ao inicializar o documento ou conforme necessário.Você pode escrever uma função que retorna um ponteiro para o conjunto de registros se ele já existe ou construções e abre o conjunto de registros se ele ainda não existe.Fechar, excluir e recriar o conjunto de registros conforme necessário, ou telefonar seus Repetir a consultafunção de membro para atualizar sistema autônomo registros.

  • Se você estiver acessando uma fonte de dados durante o ciclo de vida de seu documento, incorpore um CDatabase ou CDaoDatabase objeto ou armazenar um ponteiro para um CDatabase ou CDaoDatabase objeto nele.

    The CDatabase ou CDaoDatabase objeto gerencia uma conexão com a fonte de dados. O objeto for construído automaticamente durante a construção de documento, e você chamar sua em aberto função de membro ao inicializar o documento.Quando você construir objetos de conjunto de registros no documento funções de membro, você passar um ponteiro para CDatabase ou CDaoDatabase objeto. Isto associa cada conjunto de registros com a fonte de dados.O objeto de banco de dados geralmente é destruído quando o documento é fechado.Os objetos conjunto de registros normalmente são destruídos quando eles sai do escopo de uma função.

Outros fatores

Aplicativos baseados em formulário geralmente não têm de uso mecanismo de serialização do documento da estrutura do, por isso, você talvez queira remover, desabilitar ou substituir o New e em aberto comandos o Arquivo menu.Consulte o artigo Serialização: Entrada/saída de serialização versus banco de dados.

Convém também fazer usa as diversas possibilidades de interface do usuário que a estrutura de suporte.Por exemplo, você pode usar vários CRecordView ou CDaoRecordView objetos em uma janela separadora, abra vários conjuntos de registros em diferentes várias janelas filho MDI (interface) dos documentos e assim por diante.

Convém implementar a impressão de qualquer item que está no modo de exibição, que você seja um formulário implementado com CRecordView ou CDaoRecordView ou algo mais. sistema autônomo sistema autônomo classes derivadas de CFormView, CRecordView e CDaoRecordView não têm suporte para impressão, mas você pode substituir o OnPrint função de membro para permitir a impressão. Para obter mais informações, consulte classe CFormView.

Não convém usar modos de exibição e documentos.Nesse caso, consulte MFC: Usando classes de banco de dados sem documentos e modos de exibição.

Consulte também

Conceitos

Classes de banco de dados MFC (ODBC e DAO)