Compartilhar via


Classe CDaoRecordView

Uma exibição que mostra registros de banco de dados em controles.

Sintaxe

class AFX_NOVTABLE CDaoRecordView : public CFormView

Membros

Construtores Protegidos

Nome Descrição
CDaoRecordView::CDaoRecordView Constrói um objeto CDaoRecordView.

Métodos públicos

Nome Descrição
CDaoRecordView::IsOnFirstRecord Retornará um valor diferente de zero se o registro atual for o primeiro no conjunto de registros associado.
CDaoRecordView::IsOnLastRecord Retornará um valor diferente de zero se o registro atual for o último no conjunto de registros associado.
CDaoRecordView::OnGetRecordset Retorna um ponteiro para um objeto de uma classe derivada de CDaoRecordset. ClassWizard substitui essa função para você e cria o conjunto de registros, se necessário.
CDaoRecordView::OnMove Se o registro atual foi alterado, o atualiza na fonte de dados e passa para o registro especificado (próximo, anterior, primeiro ou último).

Comentários

A exibição é uma exibição de formulário conectada diretamente a um objeto CDaoRecordset. O modo de exibição é criado com base em um recurso de modelo de caixa de diálogo e exibe os campos do objeto CDaoRecordset nos controles do modelo de caixa de diálogo. O objeto CDaoRecordView usa DDX (troca de dados de caixa de diálogo) e DFX (troca de campos de registro) de DAO para automatizar a movimentação de dados entre os controles no formulário e os campos do conjunto de registros. CDaoRecordView também fornece uma implementação padrão para mover para o primeiro, próximo, anterior ou último registro, bem como uma interface para atualizar o registro atualmente em exibição.

Observação

As classes de banco de dados do DAO são diferentes das classes de banco de dados MFC com base no ODBC (Open Database Connectivity). Todos os nomes de classe de banco de dados do DAO têm o prefixo "CDao". Você ainda pode acessar fontes de dados ODBC com as classes DAO. Elas geralmente oferecem recursos superiores porque usam o mecanismo de banco de dados do Microsoft Jet.

A maneira mais comum de criar sua exibição de registro é usando o Assistente de Aplicativo. O Assistente de Aplicativo cria a classe de exibição do registro e a classe de conjunto de registros associada como parte do aplicativo de início do esqueleto.

Se você precisar apenas de um formulário, a abordagem do Assistente de Aplicativo será mais fácil. ClassWizard permite que você opte por usar uma exibição de registro posteriormente no processo de desenvolvimento. Se você não criar a classe de exibição de registro com o Assistente de Aplicativo, poderá criá-la posteriormente com ClassWizard. Usar ClassWizard para criar uma exibição de registro e um conjunto de registros separadamente e conectá-los é a abordagem mais flexível, pois oferece mais controle sobre a nomenclatura da classe do conjunto de registros e seus arquivos .H/.CPP. Essa abordagem também permite ter várias exibições de registro na mesma classe de conjunto de registros.

Para facilitar para os usuários finais a movimentação entre registros na exibição de registro, o Assistente de Aplicativo cria recursos de menu (e, opcionalmente, barra de ferramentas) para migrar para o registro anterior ou para o primeiro, próximo ou último registro. Se você criar uma classe de exibição de registro com ClassWizard, precisará criar esses recursos por conta própria com os editores de menu e bitmap.

Para obter informações sobre a implementação padrão para se movimentar entre registros, consulte IsOnFirstRecord e IsOnLastRecord e o artigo Usando uma exibição de registro, que se aplica a CRecordView e a CDaoRecordView.

CDaoRecordView mantém o controle da posição do usuário no conjunto de registros para que o modo de exibição de registro possa atualizar a interface do usuário. Quando o usuário se move para alguma extremidade do conjunto de registros, a exibição de registro desabilita a movimentação de os objetos de interface do usuário, como itens de menu ou botões da barra de ferramentas, para adiante na mesma direção.

Para mais informações sobre como declarar e usar as classes de conjunto de registros e exibição de registro, confira "Como projetar e criar uma exibição de registro" no artigo Exibições de registro. Para obter mais informações sobre como as exibições de registro funcionam e como usá-las, consulte o artigo Usando uma exibição de registro. Todos os artigos mencionados acima se aplicam a CRecordView e a CDaoRecordView.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CView

CScrollView

CFormView

CDaoRecordView

Requisitos

Cabeçalho: afxdao.h

CDaoRecordView::CDaoRecordView

Ao criar um objeto de um tipo derivado de CDaoRecordView, chame um dos formulários do construtor para inicializar o objeto de exibição e identificar o recurso de caixa de diálogo no qual a exibição se baseia.

explicit CDaoRecordView(LPCTSTR lpszTemplateName);
explicit CDaoRecordView(UINT nIDTemplate);

Parâmetros

lpszTemplateName
Contém uma cadeia de caracteres terminada em nulo que é o nome de um recurso de modelo de caixa de diálogo.

nIDTemplate
Contém o número de ID de um recurso de modelo de caixa de diálogo.

Comentários

Você pode identificar o recurso pelo nome (passe uma cadeia de caracteres como o argumento para o construtor) ou pela ID (passe um inteiro sem sinal como argumento). É recomendável usar uma ID de recurso.

Observação

A classe derivada precisa fornecer o próprio construtor. No construtor da classe derivada, chame o construtor, CDaoRecordView::CDaoRecordView, com o nome ou a ID do recurso como argumento.

CDaoRecordView::OnInitialUpdate chama CWnd::UpdateData, que chama CWnd::DoDataExchange. Essa chamada inicial para DoDataExchange conecta controles CDaoRecordView (indiretamente) aos de dados de campo CDaoRecordset criados por ClassWizard. Esses membros de dados não poderão ser usados até que você chame a função membro CFormView::OnInitialUpdate da classe base.

Observação

Se você usar ClassWizard, o assistente definirá um valor CDaoRecordView::IDD de enum na declaração de classe e o usará na lista de inicialização de membro do construtor.

CMyDaoRecordView::CMyDaoRecordView()
    : CDaoRecordView(CMyDaoRecordView::IDD)
{
   m_pSet = NULL;
   // TODO: add construction code here
}

CDaoRecordView::IsOnFirstRecord

Chame essa função membro para determinar se o registro atual é o primeiro registro no objeto de conjunto de registros associado a essa exibição de registro.

BOOL IsOnFirstRecord();

Valor de Devolução

Diferente de zero se o registro atual for o primeiro no conjunto de registros; caso contrário, 0.

Comentários

Essa função é útil para escrever suas implementações dos manipuladores de atualização de comando padrão escritos por ClassWizard.

Se o usuário se mover para o primeiro registro, a estrutura impedirá que qualquer objeto de interface do usuário (por exemplo, itens de menu ou botões da barra de ferramentas) que você tiver se mova para o primeiro registro ou para o registro anterior.

CDaoRecordView::IsOnLastRecord

Chame essa função membro para determinar se o registro atual é o último registro no objeto de conjunto de registros associado a essa exibição de registro.

BOOL IsOnLastRecord();

Valor de Devolução

Diferente de zero se o registro atual for o último no conjunto de registros; caso contrário, 0.

Comentários

Essa função é útil para escrever suas implementações dos manipuladores de atualização de comando padrão que ClassWizard escreve para dar suporte à movimentação entre registros em uma interface do usuário.

Cuidado

O resultado dessa função é confiável, exceto pelo fato de que a exibição pode não ser capaz de detectar o final do conjunto de registros até que o usuário tenha passado por ele. O usuário pode ter que ir além do último registro antes que a exibição de registro consiga determinar que precisa impedir que os objetos de interface do usuário se movam para o próximo ou para o último registro. Se o usuário passar do último registro e voltar para ele (ou para antes dele), a exibição de registro poderá acompanhar a posição do usuário no conjunto de registros e desabilitar os objetos de interface do usuário corretamente.

CDaoRecordView::OnGetRecordset

Retorna um ponteiro para o objeto derivado de CDaoRecordset associado à exibição de registro.

virtual CDaoRecordset* OnGetRecordset() = 0;

Valor de Devolução

Um ponteiro para um objeto derivado de CDaoRecordset se o objeto foi criado com êxito; caso contrário, um ponteiro NULL.

Comentários

Você precisa substituir essa função membro para construir ou obter um objeto de conjunto de registros e retornar um ponteiro para ele. Se você declarar sua classe de exibição de registro com ClassWizard, o assistente gravará uma substituição padrão para você. A implementação padrão de ClassWizard retornará o ponteiro do conjunto de registros armazenado na exibição de registro, se houver um. Caso contrário, construirá um objeto de conjunto de registros do tipo especificado com ClassWizard e chamará sua função membro Open para abrir a tabela ou executar a consulta e retornará um ponteiro para o objeto.

Para mais informações e exemplos, confira o artigo Exibições de registro: como usar uma exibição de registro.

CDaoRecordView::OnMove

Chame essa função membro para passar para um registro diferente no conjunto de registros e exibir os respectivos campos nos controles da exibição de registro.

virtual BOOL OnMove(UINT nIDMoveCommand);

Parâmetros

nIDMoveCommand
Um dos seguintes valores de ID de comando padrão:

  • ID_RECORD_FIRST Mover para o primeiro registro no conjunto de registros.

  • ID_RECORD_LAST Mover para o último registro no conjunto de registros.

  • ID_RECORD_NEXT Mover para o próximo registro no conjunto de registros.

  • ID_RECORD_PREV Mover para o registro anterior no conjunto de registros.

Valor de Devolução

Diferente de zero se a movimentação foi bem-sucedida; caso contrário, 0 se a solicitação de movimentação foi negada.

Comentários

A implementação padrão chama a função membro Move apropriada do objeto CDaoRecordset associado à exibição de registro.

Por padrão, OnMove atualiza o registro atual na fonte de dados se o usuário o tiver alterado no modo de exibição de registro.

O Assistente de Aplicativo cria um recurso de menu com itens de menu Primeiro Registro, Último Registro, Próximo Registro e Registro Anterior. Se você selecionar a opção Barra de Ferramentas Inicial, o Assistente de Aplicativo também criará uma barra de ferramentas com botões correspondentes a esses comandos.

Se você passar do último registro no conjunto de registros, a exibição de registro continuará a exibir o último registro. Se você passar para trás após o primeiro registro, o modo de exibição de registro continuará a exibir o primeiro registro.

Cuidado

Chamar OnMove gera uma exceção quando o conjunto de registros não tem registros. Chame a função apropriada do manipulador de atualização da interface do usuário – OnUpdateRecordFirst, OnUpdateRecordLast, OnUpdateRecordNext ou OnUpdateRecordPrev – antes da operação de movimentação correspondente para determinar se o conjunto de registros tem registros.

Confira também

Classe CFormView
Gráfico da hierarquia
Classe CDaoRecordset
Classe CDaoTableDef
Classe CDaoQueryDef
Classe CDaoDatabase
Classe CDaoWorkspace
Classe CFormView