Partilhar via


Classe CRecordView

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

Sintaxe

class AFX_NOVTABLE CRecordView : public CFormView

Membros

Construtores Protegidos

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

Métodos públicos

Nome Descrição
CRecordView::IsOnFirstRecord Retornará um valor diferente de zero se o registro atual for o primeiro no conjunto de registros associado.
CRecordView::IsOnLastRecord Retornará um valor diferente de zero se o registro atual for o último no conjunto de registros associado.
CRecordView::OnGetRecordset Retorna um ponteiro para um objeto de uma classe derivada de CRecordset. ClassWizard substitui essa função para você e cria o conjunto de registros, se necessário.
CRecordView::OnMove

Métodos protegidos

Nome Descrição
CRecordView::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 CRecordset. O modo de exibição é criado com base em um recurso de modelo de caixa de diálogo e exibe os campos do objeto CRecordset nos controles do modelo de caixa de diálogo. O objeto CRecordView usa a troca de dados de caixa de diálogo (DDX) e a RFX (troca de campo de registro) para automatizar a movimentação de dados entre os controles no formulário e os campos do conjunto de registros. CRecordView também fornece uma implementação padrão para mover para o primeiro, próximo, anterior ou último registro e uma interface para atualizar o registro atualmente em exibição.

Observação

Se você estiver trabalhando com as classes DAO (Objetos de Acesso a Dados) em vez das classes ODBC (Open Database Connectivity), use a classe CDaoRecordView. Para obter mais informações, confira o artigo Visão geral: programação de banco de dados.

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ê não criar a classe de exibição de registro com o Assistente de Aplicativo, poderá criá-la posteriormente com ClassWizard. 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. 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 informações sobre a implementação padrão para se movimentar entre registros, confira IsOnFirstRecord e IsOnLastRecord e o artigo Como usar uma exibição de registro.

CRecordView 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.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CView

CScrollView

CFormView

CRecordView

Requisitos

Cabeçalho: afxdb.h

CRecordView::CRecordView

Ao criar um objeto de um tipo derivado de CRecordView, 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 CRecordView(LPCTSTR lpszTemplateName);
explicit CRecordView(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

Sua classe derivada deve fornecer um construtor próprio. No construtor da classe derivada, chame o construtor, CRecordView::CRecordView, com o nome ou a ID do recurso como argumento, como mostra o exemplo a seguir.

CRecordView::OnInitialUpdate chama UpdateData, que chama DoDataExchange. Essa chamada inicial para DoDataExchange conecta controles CRecordView (indiretamente) aos de dados de campo CRecordset 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 CRecordView::IDD de enum, o especificará na declaração de classe e o usará na lista de inicialização de membro do construtor.

Exemplo

CMyRecordView::CMyRecordView()
   : CRecordView(CMyRecordView::IDD)
{
   m_pSet = NULL;
   // TODO: add construction code here

}

CRecordView::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 retorno

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 desabilitar a movimentação de qualquer objeto da interface do usuário para o primeiro registro ou para o registro anterior.

CRecordView::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 retorno

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 não detectará o final do conjunto de registros até que o usuário tenha passado por ele. O usuário deve ir além do último registro antes que a exibição de registro consiga determinar que precisa desabilitar a movimentação dos objetos de interface do usuário 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. IsOnLastRecord também não é confiável após uma chamada para a função de implementação OnRecordLast, que manipula o comando ID_RECORD_LAST ou CRecordset::MoveLast.

CRecordView::OnGetRecordset

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

virtual CRecordset* OnGetRecordset() = 0;

Valor de retorno

Um ponteiro para um objeto derivado de CRecordset 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.

CRecordView::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 retorno

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 de membro Move apropriada do objeto CRecordset associado ao modo de 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 Encaixada, 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 CRecordset
Classe CFormView