Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puede usar las clases de base de datos MFC con o sin la arquitectura de documento o vista. En este tema se resalta el trabajo con documentos y vistas. Se explica lo siguiente:
Cómo escribir una aplicación basada en formularios mediante un objeto
CRecordViewcomo vista principal del documento.Cómo usar objetos de conjunto de registros en los documentos y vistas.
Para conocer alternativas, consulte MFC: Utilizar clases de base de datos sin documentos ni vistas.
Escritura de una aplicación basada en formularias
Muchas aplicaciones de acceso a datos se basan en formularios. La interfaz de usuario es un formulario que contiene controles en los que el usuario examina, escribe o edita los datos. Para que su aplicación se base en un formulario, utilice la clase CRecordView. Al ejecutar el Asistente para aplicaciones MFC y seleccionar el tipo de cliente ODBC en la página Compatibilidad con bases de datos, el proyecto usa CRecordView para la clase de vista.
En una aplicación basada en formularios, cada objeto de vista de registro almacena un puntero a un objeto CRecordset. El mecanismo de intercambio de campos de registro (RFX) del marco intercambia datos entre el conjunto de registros y el origen de datos. El mecanismo de intercambio de datos de cuadro de diálogo (DDX) intercambia datos entre los miembros de datos de campo del objeto del conjunto de registros y los controles del formulario.
CRecordView también proporciona funciones de controlador de comandos predeterminadas para navegar de registro a registro en el formulario.
Para crear una aplicación basada en formularios con el Asistente para aplicaciones, consulte Creación de una aplicación de MFC basada en formularios y Compatibilidad con bases de datos, Asistente para aplicaciones MFC.
Para obtener una explicación completa de los formularios, consulte Vistas de registros.
Uso de conjuntos de registros en documentos y vistas
Muchas aplicaciones sencillas basadas en formularios no necesitan documentos. Si la aplicación es más compleja, probablemente quiera usar un documento como proxy para la base de datos, almacenando un objeto CDatabase que se conecta al origen de datos. Las aplicaciones basadas en formularios suelen almacenar un puntero a un objeto de conjunto de registros en la vista. Otros tipos de aplicaciones de base de datos almacenan conjuntos de registros y objetos CDatabase en el documento. Estas son algunas posibilidades para usar documentos en aplicaciones de base de datos:
Si tiene acceso a un conjunto de registros en un contexto local, cree un objeto
CRecordsetlocalmente en funciones miembro del documento o la vista, según sea necesario.Declare un objeto de conjunto de registros como una variable local en una función. Pase NULL al constructor, lo que hace que el marco cree y abra un objeto
CDatabasetemporal automáticamente. Como alternativa, pase un puntero a un objetoCDatabase. Use el conjunto de registros dentro de la función y deje que se destruya automáticamente cuando se cierre la función.Cuando se pasa NULL a un constructor del conjunto de registros, el marco usa la información devuelta por la función miembro
GetDefaultConnectdel conjunto de registros para crear un objetoCDatabasey abrirlo. Los asistentes implementanGetDefaultConnectautomáticamente.Si tiene acceso a un conjunto de registros durante la vigencia del documento, inserte uno o varios objetos
CRecordseten el documento.Construya los objetos del conjunto de registros al inicializar el documento o según sea necesario. Puede escribir una función que devuelva un puntero al conjunto de registros si ya existe o construya y abra el conjunto de registros si aún no existe. Cierre, elimine y vuelva a crear el conjunto de registros según sea necesario o llame a su función miembro
Requerypara actualizar los registros.Si tiene acceso a un origen de datos durante la vigencia del documento, inserte un objeto
CDatabaseo almacene un puntero a un objetoCDatabaseen él.El objeto
CDatabaseadministra una conexión al origen de datos. El objeto se construye automáticamente durante la construcción del documento y llama a su función miembroOpenal inicializar el documento. Al construir objetos del conjunto de registro en funciones miembro del documento, se pasa un puntero al objetoCDatabasedel documento. Esto asocia cada conjunto de registros a su origen de datos. Normalmente, el objeto de base de datos se destruye cuando se cierra el documento. Normalmente, los objetos del conjunto de registros se destruyen cuando salen del ámbito de una función.
Otros factores
Las aplicaciones basadas en formularios a menudo no tienen ningún uso para el mecanismo de serialización de documentos del marco, por lo que es posible que quiera quitar, deshabilitar o reemplazar los comandos Nuevo y Abrir en el menú Archivo. Consulte el artículo Serialización: Serialización frente a entrada/salida de base de datos.
También puede usar las muchas posibilidades de la interfaz de usuario que el marco puede admitir. Por ejemplo, puede usar varios objetos CRecordView en una ventana divisora, abrir varios conjuntos de registros en distintas ventanas secundarias de la interfaz de documento (MDI), etc.
Es posible que desee implementar la impresión de lo que esté en la vista, ya sea un formulario implementado con CRecordView o cualquier otra cosa. Como clases derivadas de CFormView, CRecordView no admite la impresión, pero puede invalidar la función miembro OnPrint para permitir la impresión. Para obtener más información, consulte la clase CFormView.
Es posible que no quiera usar documentos y vistas. En ese caso, consulte MFC: Utilizar clases de base de datos sin documentos ni vistas.