Рекомендации по обработке ввода-вывода
Независимо от того, используете ли вы операции ввода-вывода на основе файлов или не зависит от того, как отвечать на вопросы в следующем дереве принятия решений:
Находится ли первичные данные в приложении в файле диска
Да, основные данные находятся в файле диска:
Приложение считывает весь файл в память при открытии файла и записывает весь файл обратно на диск при сохранении файлов
Да. Это вариант документа MFC по умолчанию. Используйте
CDocument
сериализацию.Нет. Обычно это относится к обновлению файла на основе транзакций. Файл обновляется на основе каждой транзакции и не требует
CDocument
сериализации.
Нет, первичные данные не находятся в файле диска:
Находится ли данные в источнике данных ODBC
Да, данные находятся в источнике данных ODBC:
Используйте поддержку базы данных MFC. Стандартная реализация MFC для этого дела включает
CDatabase
объект, как описано в статье MFC: использование классов баз данных с документами и представлениями. Приложение также может считывать и записывать вспомогательный файл — назначение мастера приложений "как представление базы данных, так и поддержка файлов". В этом случае для вспомогательного файла будет использоваться сериализация.Нет, данные не находятся в источнике данных ODBC.
Примеры этого случая: данные находятся в СУБД, отличном от ODBC; данные считываются с помощью другого механизма, например OLE или DDE.
В таких случаях вы не будете использовать сериализацию, и у приложения нет элементов меню "Открыть" и "Сохранить". Возможно, вы по-прежнему хотите использовать
CDocument
как домашнюю базу, так же как приложение ODBC MFC использует документ для храненияCRecordset
объектов. Но вы не будете использовать сериализацию документов по умолчанию для платформы: открытие и сохранение документов.
Для поддержки команд "Открыть", "Сохранить" и "Сохранить как" в меню "Файл" платформа предоставляет сериализацию документов. Сериализация считывает и записывает данные, включая объекты, производные от класса CObject
, в постоянное хранилище, обычно файл диска. Сериализация проста в использовании и обслуживает многие из ваших потребностей, но она может быть неуместна во многих приложениях для доступа к данным. Приложения для доступа к данным обычно обновляют данные на основе каждой транзакции. Они обновляют записи, затронутые транзакцией, а не считывают и записывают целый файл данных одновременно.
Сведения о сериализации см. в разделе "Сериализация".