Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Классы базы данных MFC можно использовать с архитектурой документа или представления или без нее. В этом разделе подчеркивается работа с документами и представлениями. В нем объясняется:
Как написать приложение на основе форм с помощью
CRecordViewобъекта в качестве основного представления в документе.Использование объектов набора записей в документах и представлениях.
Дополнительные сведения см. в разделе MFC: использование классов баз данных без документов и представлений.
Написание приложения на основе форм
Многие приложения для доступа к данным основаны на формах. Пользовательский интерфейс — это форма, содержащая элементы управления, в которых пользователь проверяет, вводит или редактирует данные. Чтобы сделать приложение основанным на форме, используйте класс CRecordView. При запуске мастера приложений MFC и выбора типа клиента ODBC на странице поддержки базы данных проект использует CRecordView для класса представления.
В приложении на основе форм каждый объект представления записей сохраняет указатель на CRecordset объект. Механизм обмена полями записей платформы (RFX) обменивается данными между набором записей и источником данных. Механизм обмена данными диалогового окна (DDX) обменивается данными между элементами данных поля объекта набора записей и элементами управления в форме.
CRecordView также предоставляет функции обработчика команд по умолчанию для перехода от записи к записи в форме.
Сведения о создании приложения на основе форм с помощью мастера приложений см. в разделе "Создание приложения MFC на основе форм" и "Поддержка баз данных" мастера приложений MFC.
Полный обзор форм см. в разделе "Просмотры записей".
Использование наборов записей в документах и представлениях
Многие простые приложения на основе форм не нуждаются в документах. Если приложение является более сложным, возможно, вы хотите использовать документ в качестве прокси-сервера для базы данных, сохраняя CDatabase объект, который подключается к источнику данных. Приложения на основе форм обычно хранят указатель на объект набора записей в представлении. Другие типы приложений базы данных хранят наборы записей и CDatabase объекты в документе. Ниже приведены некоторые возможности использования документов в приложениях базы данных:
Если вы обращаетесь к набору записей в локальном контексте, создайте объект
CRecordsetлокально в методах-членах документа или представления по мере необходимости.Объявите объект набора записей как локальную переменную в функции. Передайте значение NULL конструктору, чтобы фреймворк создал и открыл для вас временный объект
CDatabase. В качестве альтернативы передайте указатель наCDatabaseобъект. Используйте набор записей в функции и позвольте ему автоматически уничтожаться при завершении функции.При передаче NULL в конструктор наборов записей платформа использует сведения, возвращаемые функцией-членом набора
GetDefaultConnectзаписей, для созданияCDatabaseобъекта и открытия его. Мастера реализуютGetDefaultConnectдля вас.Если вы обращаетесь к набору записей в течение срока действия документа, включите один или несколько
CRecordsetобъектов в документ.Создайте объекты набора записей либо при инициализации документа, либо при необходимости. Можно написать функцию, которая возвращает указатель на набор записей, если он уже существует или создается, и открывает набор записей, если он еще не существует. Закройте, удалите и повторно создайте набор записей по мере необходимости или вызовите ее
Requeryфункцию-член, чтобы обновить записи.Если вы обращаетесь к источнику данных в течение срока существования документа, встраивайте
CDatabaseобъект или храните указатель наCDatabaseобъект в источнике данных.Объект
CDatabaseуправляет подключением к источнику данных. Объект создается автоматически во время построения документа, и при инициализации документа вызывается егоOpenфункция-член. При создании объектов Recordset в функциях-членах документа передавайте указатель на объект документаCDatabase. При этом каждый набор записей связывается с источником данных. Объект базы данных обычно уничтожается при закрытии документа. Объекты набора записей обычно уничтожаются при выходе из области функции.
Прочие факторы
Приложения на основе форм часто не используются для механизма сериализации документов платформы, поэтому может потребоваться удалить, отключить или заменить команды "Создать " и "Открыть " в меню "Файл ". См. статью Сериализация: сериализация vs. ввод/вывод базы данных.
Вы также можете использовать множество возможностей пользовательского интерфейса, которые может поддерживать платформа. Например, можно использовать несколько CRecordView объектов в окне делителя, открыть несколько наборов записей в разных дочерних окнах множественного интерфейса документов (MDI) и т. д.
Вам, возможно, потребуется реализовать возможность печати всего, что находится в вашем виде, будь то форма, реализованная с CRecordView, или что-то другое. Будучи классом, производным от CFormView, CRecordView не поддерживает печать, но вы можете переопределить метод OnPrint, чтобы разрешить печать. Дополнительные сведения см. в классе CFormView.
Возможно, вы вообще не хотите использовать документы и представления. В этом случае см. раздел MFC: использование классов базы данных без документов и представлений.