Основы проектирования приложений баз данных

       

Класс CRECORDVIEW


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

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

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

Элементы управления (определяются как ресурсы)
DDX-методы
Поля результирующего набора (определяются как переменные члены класса, наследуемого от CRecordset)
RFX-методы
Поля источника данных (указываются оператором 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. Это также закроет все наборы записей.



Содержание раздела