Clase CDaoRecordView

Una vista que muestra registros de una base de datos en controles.

Sintaxis

class AFX_NOVTABLE CDaoRecordView : public CFormView

Miembros

Constructores protegidos

Nombre Descripción
CDaoRecordView::CDaoRecordView Construye un objeto CDaoRecordView.

Métodos públicos

Nombre Descripción
CDaoRecordView::IsOnFirstRecord Devuelve un valor distinto de cero si el registro actual es el primero del conjunto de registros asociado.
CDaoRecordView::IsOnLastRecord Devuelve un valor distinto de cero si el registro actual es el último del conjunto de registros asociado.
CDaoRecordView::OnGetRecordset Se usa para devolver un puntero a un objeto de una clase derivada de CDaoRecordset. ClassWizard invalida esta función de forma automática y crea el conjunto de registros si es necesario.
CDaoRecordView::OnMove Si se ha cambiado el registro actual, lo actualiza en el origen de datos y, a continuación, se mueve al registro especificado (siguiente, anterior, primero o último).

Comentarios

La vista es una vista de formulario conectada directamente a un objeto CDaoRecordset. La vista se crea a partir de un recurso de plantilla de diálogo y muestra los campos del objeto CDaoRecordset en los controles de la plantilla de diálogo. El objeto CDaoRecordView emplea el intercambio de datos de diálogo (DDX) y el intercambio de campos de registros DAO (DFX) para automatizar el movimiento de datos entre los controles del formulario y los campos del conjunto de registros. CDaoRecordView también proporciona una implementación predeterminada para pasar al primer, siguiente, anterior o último registro y una interfaz para actualizar el registro actualmente en la vista.

Nota:

Las clases de base de datos DAO son distintas de las clases de base de datos MFC, basadas en la conectividad abierta de base de datos (ODBC). Todos los nombres de las clases de base de datos DAO tienen el prefijo "CDao". Sigue pudiendo acceder a orígenes de datos ODBC con las clases DAO; las clases DAO suelen ofrecer capacidades superiores porque usan el motor de base de datos de Microsoft Jet.

El Asistente para aplicaciones es el medio más habitual para crear vistas de registros. El Asistente para aplicaciones crea la clase de vista de registros y su clase de conjunto de registros asociada como parte de la aplicación de inicio del esqueleto.

El enfoque del Asistente para aplicaciones resultará más sencillo si solo necesita un único formulario. Con ClassWizard se puede decidir usar una vista de registros más adelante en el proceso de desarrollo. Si no se crea la clase de vista de registros con el Asistente para aplicaciones, puede hacerse más tarde con ClassWizard. Usar ClassWizard para crear una vista de registro y un conjunto de registros por separado y conectarlos a continuación es el enfoque más flexible, ya que ofrece más control al dar nombre a la clase de conjunto de registros y sus archivos .H/.CPP. Mediante este enfoque también es posible tener varias vistas de registro en la misma clase de conjunto de registros.

Para que los usuarios finales se desplacen con más facilidad de registro a registro en la vista de registros, el Asistente para aplicaciones crea recursos de menú, y de forma opcional una barra de herramientas, para moverse al primer, siguiente, anterior o último registro. Si creas una clase de vista de registros con ClassWizard, necesitas crear estos recursos usted mismo con el menú y los editores de mapa de bits.

Si deseas más información sobre la implementación predeterminada para desplazarte de registro a registro, consulta IsOnFirstRecord, IsOnLastRecord y el artículo Uso de una vista de registros, que se aplica tanto a CRecordView como a CDaoRecordView.

CDaoRecordView hace un seguimiento de la posición del usuario en el conjunto de registros para que la vista de registros pueda actualizar la interfaz de usuario. Cuando el usuario se mueve al final del conjunto de registros, la vista de registros deshabilita los objetos de la interfaz de usuario (como los elementos de menú o los botones de la barra de herramientas) para moverse más lejos en la misma dirección.

Para obtener más información sobre cómo declarar y usar las clases de la vista de registros y los conjuntos de registros, consulte «Designing and Creating a Record View», (Diseño y creación de una vista de registros) en el artículo Record Views, (Vistas de registros). Para obtener más información sobre cómo funcionan las vistas de registros y cómo usarlas, consulta el artículo Uso de una vista de registros. Todos los artículos mencionados anteriormente se aplican a CRecordView y CDaoRecordView.

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CView

CScrollView

CFormView

CDaoRecordView

Requisitos

Encabezado: afxdao.h

CDaoRecordView::CDaoRecordView

Al crear un objeto de un tipo derivado de CDaoRecordView, llame a cualquier tipo de constructor para inicializar objeto de vista e identificar el recurso de diálogo en el que se basa la vista.

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

Parámetros

lpszTemplateName
Contiene una cadena terminada en null que es el nombre de un recurso de plantilla de diálogo.

nIDTemplate
Contiene el número de id. de un recurso de plantilla de diálogo.

Comentarios

Se puede identificar el recurso por nombre, (pasar una cadena como argumento al constructor), o por su id., (pasar un entero sin signo como argumento). Se recomienda usar un identificador de recurso.

Nota:

La clase derivada debe proporcionar su propio constructor. En el constructor de la clase derivada, llama al constructor CDaoRecordView::CDaoRecordView con el nombre del recurso o el identificador como argumento.

CDaoRecordView::OnInitialUpdate llama a CWnd::UpdateData, que llama a CWnd::DoDataExchange. Esta llamada inicial a DoDataExchange conecta los controles CDaoRecordView (indirectamente) a los miembros CDaoRecordset de datos de campo creados por ClassWizard. Estos miembros de datos no se pueden usar hasta después de llamar a la función miembro de clase CFormView::OnInitialUpdate base.

Nota:

Si se usa ClassWizard, el asistente define un enum valor CDaoRecordView::IDD, en la declaración de clase y lo usa en la lista de inicialización de miembros para el constructor.

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

CDaoRecordView::IsOnFirstRecord

Llame a esta función miembro para determinar si el registro actual es el primero de los objetos del conjunto de registros asociados a esta vista de registro.

BOOL IsOnFirstRecord();

Valor devuelto

El valor es distinto a cero si el registro actual es el primero del conjunto de registros, de lo contario 0.

Comentarios

Esta función resulta útil para escribir sus propias implementaciones de controladores de actualización de comandos predeterminados que escribe ClassWizard.

Si el usuario se desplaza al primer registro, el marco desactiva cualquier objeto de la interfaz de usuario (por ejemplo, elementos de menú o botones de la barra de herramientas) que tengas para desplazarse al primer registro o al anterior.

CDaoRecordView::IsOnLastRecord

Llame a esta función miembro para determinar si el registro actual es el último de los objetos del conjunto de registros asociados a esta vista de registro.

BOOL IsOnLastRecord();

Valor devuelto

Es un valor distinto a cero si el registro actual es el último del conjunto de registros; de lo contario, 0.

Comentarios

Esta función resulta útil para escribir sus propias implementaciones de los controladores de actualización de comandos predeterminados que ClassWizard escribe para admitir una interfaz de usuario para pasar de registro a registro.

Precaución

Esta función ofrece resultados seguros, salvo que la vista tal vez no pueda detectar al final del conjunto de registros hasta que el usuario lo haya sobrepasado. El usuario debe ir más allá del último registro antes de que la vista de registro pueda indicar que deben deshabilitarse los objetos de la interfaz de usuario para pasar al siguiente registro o al último. Si el usuario va más allá del último registro y, a continuación, vuelve al último (o antes), la vista de registro puede seguir la posición del usuario en un conjunto de registros y deshabilitar los objetos de la interfaz de usuario correctamente.

CDaoRecordView::OnGetRecordset

Devuelve un puntero al objeto derivado de CDaoRecordset asociado a la vista de registro.

virtual CDaoRecordset* OnGetRecordset() = 0;

Valor devuelto

Es un puntero a un objeto derivado de CDaoRecordset si el objeto pudo crearse correctamente, en caso contrario un puntero nulo.

Comentarios

Debes invalidar esta función miembro para construir u obtener un objeto de conjunto de registros y devolverle un puntero. Si declara la clase de vista de registros con ClassWizard, el asistente escribe una invalidación predeterminada. La implementación predeterminada de ClassWizard devuelve el puntero de conjunto de registros almacenado en la vista de registros si existe uno. Si no es así, construye un objeto de conjunto de registros del tipo especificado con ClassWizard y llama a su función miembro Open para abrir la tabla o ejecutar la consulta y, a continuación, devuelve un puntero al objeto.

Para obtener más información y ejemplos, vea el artículo Vistas de registro: Uso de una vista de registros.

CDaoRecordView::OnMove

Llame a esta función para desplazarse a un registro distinto en el conjunto de registros y mostrar sus campos en los controles de la vista de registro.

virtual BOOL OnMove(UINT nIDMoveCommand);

Parámetros

nIDMoveCommand
Uno de los siguientes valores de identificador de comando estándar:

  • ID_RECORD_FIRST: vaya al primer registro del conjunto de registros.

  • ID_RECORD_LAST: vaya al último registro del conjunto de registros.

  • ID_RECORD_NEXT: vaya al siguiente registro del conjunto de registros.

  • ID_RECORD_PREV: vaya al registro anterior del conjunto de registros.

Valor devuelto

Distinto de cero si el movimiento se realizó correctamente; de lo contrario, 0 si se denegó la solicitud de traslado.

Comentarios

La implementación predeterminada llama a la función miembro CDaoRecordset adecuada del objeto asociado a la vista de registros.

De forma predeterminada, OnMove actualiza el registro actual en el origen de datos si el usuario lo ha cambiado en la vista de registros.

El Asistente para aplicaciones crea un recurso de menú con los elementos de menú Primer registro, Último registro, Registro siguiente y Registro anterior. Si seleccionas la opción Barra de herramientas inicial, el Asistente para aplicaciones también crea una barra de herramientas con botones correspondientes a estos comandos.

Si se mueve más allá del último registro del conjunto de registros, la vista de registros continúa mostrando el último registro. Si se desplaza hacia atrás después del primer registro, la vista de registro continúa mostrando el primer registro.

Precaución

Al llamar a OnMove se produce una excepción si el conjunto de registros no tiene registros. Llama a la función del controlador de actualización de la interfaz de usuario apropiada (OnUpdateRecordFirst, OnUpdateRecordLast, OnUpdateRecordNext o OnUpdateRecordPrev), antes de la operación de movimiento correspondiente para determinar si el controlador tiene registros.

Consulte también

CFormView (clase)
Gráfico de jerarquías
CDaoRecordset (clase)
CDaoTableDef (clase)
CDaoQueryDef (clase)
CDaoDatabase (clase)
CDaoWorkspace (clase)
CFormView (clase)