Partilhar via


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

Você pode usar as classes de banco de dados MFC com ou sem a arquitetura de documento/exibição. Este tópico enfatiza o trabalho com documentos e vistas. Explica:

Para obter alternativas, consulte MFC: Usando classes de banco de dados sem documentos e exibições.

Escrevendo um aplicativo Form-Based

Muitos aplicativos de acesso a dados são baseados 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 basear o formulário de inscrição, use a classe CRecordView. Quando você executa o MFC Application Wizard e seleciona o tipo de cliente ODBC na página Database Support , o projeto usa CRecordView para a classe view.

Em um aplicativo baseado em formulário, cada objeto de exibição de registro armazena um ponteiro para um CRecordset objeto. O mecanismo de intercâmbio de campos de registo (RFX) da estrutura troca dados entre o conjunto de registos e a fonte de dados. O mecanismo de intercâmbio de dados de diálogo (DDX) troca dados entre os membros de dados de campo do objeto do conjunto de registros e os controles no formulário. CRecordView também fornece funções padrão de manipulador de comandos para navegar entre registros no formulário.

Para criar um aplicativo baseado em formulário com o assistente de aplicativo, consulte Criando um aplicativo MFC Forms-Basede suporte a banco de dados, MFC Application Wizard.

Para uma discussão completa sobre os formulários, consulte Vistas de Registo.

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

Muitas aplicações simples baseadas em formulários não necessitam de documentos. Se seu aplicativo for mais complexo, você provavelmente deseja usar um documento como proxy para o banco de dados, armazenando um CDatabase objeto que se conecta à fonte de dados. As aplicações baseadas em formulário geralmente armazenam um ponteiro para um objeto de registos na vista. Outros tipos de aplicativos de banco de dados armazenam conjuntos de registros e CDatabase objetos no documento. Eis algumas possibilidades de utilização de documentos em aplicações de bases de dados:

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

    Declare um objeto de conjunto de registros como uma variável local em uma função. Passe NULL para o construtor, o que faz com que a estrutura crie e abra um objeto temporário CDatabase para você. Como alternativa, passe um ponteiro para um CDatabase objeto. Use o conjunto de registros dentro da função e deixe-o ser destruído automaticamente quando a função for encerrada.

    Quando você passa NULL para um construtor de conjunto de registros, a estrutura usa informações retornadas pela função de membro do conjunto de GetDefaultConnect registros para criar um CDatabase objeto e abri-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 objetos no documento.

    Construa os objetos do 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á existir, ou constrói e abre o conjunto de registros caso ainda não exista. Feche, exclua e recrie o conjunto de registros conforme necessário ou chame sua Requery função de membro para atualizar os registros.

  • Se você estiver acessando uma fonte de dados durante o tempo de vida do documento, incorpore um CDatabase objeto ou armazene um ponteiro para um CDatabase objeto nele.

    O CDatabase objeto gerencia uma conexão com sua fonte de dados. O objeto é construído automaticamente durante a construção do documento e chama-se a sua função-membro Open quando inicializa o documento. Ao construir objetos de conjunto de registros em funções de membro do documento, você passa um ponteiro para o objeto do CDatabase documento. Isso associa cada conjunto de registros à sua fonte de dados. O objeto de banco de dados geralmente é destruído quando o documento é fechado. Os objetos do conjunto de registros normalmente são destruídos quando saem do escopo de uma função.

Outros fatores

Os aplicativos baseados em formulário geralmente não têm nenhum uso para o mecanismo de serialização de documentos da estrutura, portanto, talvez você queira remover, desabilitar ou substituir os comandos Novo e Abrir no menu Arquivo . Consulte o artigo Serialização: Serialização vs. Entrada/Saída de Banco de Dados.

Você também pode querer fazer uso das muitas possibilidades de interface do usuário que a estrutura pode suportar. Por exemplo, você pode usar vários CRecordView objetos em uma janela de divisão, abrir vários conjuntos de registros em diferentes janelas filhas de interface de documento múltiplo (MDI) e assim por diante.

Você pode querer implementar a impressão de qualquer coisa que esteja na sua vista, seja um formulário implementado com CRecordView ou outra coisa. Como classes derivadas de CFormView, CRecordView não suporta impressão, mas você pode substituir a função de membro para permitir a OnPrint impressão. Para obter mais informações, consulte classe CFormView.

Talvez não queiras usar documentos e vistas. Nesse caso, consulte MFC: Usando classes de banco de dados sem documentos e exibições.

Ver também

Classes de banco de dados MFC