Московский государственный университет имени М.В.Ломоносова
Опубликован: 20.12.2005 | Доступ: свободный | Студентов: 3142 / 371 | Оценка: 4.22 / 3.86 | Длительность: 12:03:00
ISBN: 978-5-9556-0068-0
Лекция 10:

Реализация доступа к базам данных в среде VISUAL STUDIO.NET на языке С++ с применением MFC

< Лекция 9 || Лекция 10: 12345 || Лекция 11 >

Класс CRECORDVIEW

Объект "отображение" типа CRecordView предоставляет средства для просмотра полей базы данных в элементах управления.

Отображение создается на основе шаблона документа, используя элементы управления, добавленные в ресурс шаблона диалога.

Объект CRecordView использует DDX-обмен данными и RFX-обмен данными для реализации обмена между тремя наборами данных: элементами управления, полями результирующего набора и записями источника данных. На следующей схеме проиллюстрировано взаимодействие этих трех наборов данных.

Элементы управления (определяются как ресурсы) \gets DDX-методы \to Поля результирующего набора (определяются как переменные члены класса, наследуемого от CRecordset ) \gets RFX-методы \to Поля источника данных (указываются оператором SELECT )

Класс CRecordView по умолчанию поддерживает реализацию просмотра набора записей и перехода к первой, последней, следующей и предыдущей записям в текущем отображении.

При использовании для создания шаблона приложения MFC Application Wizard автоматически будут созданы ресурс меню и панели инструментов, содержащей кнопки прокрутки набора записей. При программировании вручную, используя ClassWizard, эти ресурсы надо создавать самостоятельно в редакторе меню и в редакторе битовых изображений.

Класс CRecordView имеет два конструктора и набор методов, включая следующие:

  • CRecordView – конструктор, параметр которого указывает используемый ресурс шаблона диалога;
  • OnGetRecordset – метод, возвращающий указатель на "объект результирующий набор", ассоциированный с отображением, при его успешном создании, и NULL — в противном случае;
  • OnMove – метод, используемый для перехода к другой записи результирующего набора. Направление перехода задается параметром, который может принимать следующие значения: ID_RECORD_FIRST ; ID_RECORD_LAST ; ID_RECORD_NEXT ; ID_RECORD_PREV. По умолчанию, OnMove обновляет текущую запись источника данных, если пользователь внес изменения в отображение записи (элементы управления);
  • IsOnFirstRecord – метод, возвращающий ненулевое значение, если текущей записью является первая запись результирующего набора.

Для использования базы данных следует:

  1. Создать объект класса, наследуемого от CDatabase.
  2. Установить соединение, открыв базу данных (вызвав метод CDatabase::OpenEx или CDatabase::Open ).
  3. Создать объект класса, наследуемого от CRecordset, для операций над подсоединенным источником данных, передав конструктору указатель на CDatabase. Как любой класс, реализующий визуализацию данных, этот класс связывается с шаблоном диалога (шаблон диалога – это ресурс, описывающий диалоговое окно и все располагаемые в нем элементы управления). Используя DDX-механизм (Dialog Data eXchange) обмена данными между результирующим набором и элементами управления, класс CRecordView реализует отображение и изменение данных.
  4. Для завершения работы закрыть базу данных, вызвав метод CDatabase::Close. Это также закроет все наборы записей.
< Лекция 9 || Лекция 10: 12345 || Лекция 11 >