Recomendaciones para el control de entrada/salida
Tanto si usas I/O basada en archivos como si no, depende de cómo respondas a las preguntas del árbol de decisión siguiente:
Los datos principales de la aplicación residen en un archivo de disco
Sí, los datos principales residen en un archivo de disco:
¿La aplicación lee todo el archivo en memoria en el archivo abierto y escribe todo el archivo en el disco en el guardado de archivos
Sí: este es el caso de documento MFC predeterminado. Usa la serialización
CDocument
.No: suele ser el caso de la actualización basada en transacciones del archivo. Actualizas el archivo por transacción y no necesitas serialización
CDocument
.
No, los datos principales no residen en un archivo de disco:
Los datos residen en un origen de datos ODBC
Sí, los datos residen en un origen de datos ODBC:
Usa la compatibilidad con la base de datos de MFC. La implementación estándar de MFC para este caso incluye un objeto
CDatabase
, como se describe en el artículo MFC: Uso de clases de base de datos con documentos y vistas. La aplicación también puede leer y escribir un archivo auxiliar, el propósito del asistente para aplicaciones «tanto una vista de base de datos como una compatibilidad con archivos». En este caso, usaría la serialización para el archivo auxiliar.No, los datos no residen en un origen de datos ODBC.
Ejemplos de este caso: los datos residen en un DBMS que no es ODBC; los datos se leen a través de algún otro mecanismo, como OLE o DDE.
En tales casos, no usarás la serialización y la aplicación no tendrá elementos de menú Abrir y Guardar. Es posible que todavía quieras usar un elemento
CDocument
como base principal, al igual que una aplicación ODBC de MFC usa el documento para almacenar objetosCRecordset
. Pero no usarás la serialización predeterminada de archivos abiertos o guardados del documento del marco.
Para admitir los comandos Abrir, Guardar y Guardar como en el menú Archivo, el marco proporciona serialización de documentos. La serialización lee y escribe datos, incluidos los objetos derivados de la clase CObject
, en almacenamiento permanente, normalmente un archivo de disco. La serialización es fácil de usar y sirve para muchas de tus necesidades, pero puede ser inapropiada en muchas aplicaciones de acceso a datos. Las aplicaciones de acceso a datos normalmente actualizan los datos por transacción. Actualizan los registros afectados por la transacción en lugar de leer y escribir un archivo de datos completo a la vez.
Para obtener más información acerca de la serialización, vea Serialización.
Consulte también
Serialización: Serialización frente a entrada/salida de bases de datos