CWnd-> CView->CScrollView->CFormView->CRecordView
Объекты этого класса предоставляют для изображения записей БД в элементах управл-я форму, кот-я непосредственно соед-на с объектом CRecordset. Объекты CRecordView исп-т мех-м DDX (Dialog Data Exchange, Обмен данными с блоком диалога) и RFX (Record Field Exchange, Обмен полями записей) для автомат-го перемещения данных м/у элем-ми упр-я формы и полями результир-го набора. Кроме того, м.восп-ся реализованными возм-ми перемещ-я по записям и обновления текущей записи.
Вce компон-ты и методы этого класса м.разбить на три категории:
1)Создание объекта. Имеется только конструктор для создания объекта.
2)Атрибуты данных. Три функции, используемые для получения информации результирующем наборе, к которому присоединена форма.
3)Операции.Единственная функция, позволяющая программисту изменить указатель на текущую запись.
1)Создание объекта
В эту категорию входит только констр-р, имеющий две реализации.
CRecordView::CRecordView(LPCSTR lpszTemplateName)
CRecordView::CRecordView(UINT nIDTemplate)
Создает объект класса. В кач-ве парам-ра конструктор принимает идентификатор шаблона блока диалога, задаваемый либо строкой (lpszTemplateName), либо номером (nlDTemplate), При создании класса, производного от CRecordView, в нем можно определить только один конструктор, в котором необходимо вызвать конструктор базового класса CRecordView::CRecordView с идентификатором ресурса в качестве параметра.
2)Атрибуты данных
Функции этой категории позволяют получить информацию о представлении записи
virtual CRecordset*CRecordView::OnGetRecordset()
Возвращает указатель на объект CRecordset, ассоциированный с формой, позволяет тем самым работать с некот-м результир-м набором. Чисто виртуальная функция, которая требует обязательного переопределения.
Фрагмент кода (AppWizard):
CRecordset* CDBView::OnGetRecordset()
зн eturn m_pSet зн
BOOL CRecordView::IsOnFirstRecord( )
Позволяет определить, является ли текущая запись первой в результирующем наборе, ассоциированном с данной формой. BOOL CRecordView::IsOnLastRecord( )
Позволяет определить, является ли текущая запись последней в результирующем наборе, ассоциированном с данной формой. 3)Операции
Имеется единственная функция, позволяющая программисту перемещаться по записям результирующего набора.
virtual BOOL CRecordView::OnMove(UINT nIDMoveCommand)
Позволяет изменять указ-ль на текущую запись (перемещаться no записям результирующего набора и отображать его поля в элементах управления формы).
Параметр nIDMoveCommand задает направление перемещения:
ID_RECORD_FiRST переход к первой строке в результир-м наборе
ID_RECORD_LAST переход к посл-й строке в результир-м наборе
ID_RECORD_NEXT переход к след-й строке в результир-м наборе
ID_RECORD_PREV переход к пред-й строке в результир-м наборе
Реализация этой функции по умолчанию обновляет текущую запись источника данных, если пользователь изменил ее в форме.