Класс COleDBRecordView
Представление, которое отображает записи базы данных в элементах управления.
Синтаксис
class COleDBRecordView : public CFormView
Участники
Защищенные конструкторы
Имя | Описание |
---|---|
COleDBRecordView::COleDBRecordView | Формирует объект COleDBRecordView . |
Открытые методы
Имя | Описание |
---|---|
COleDBRecordView::OnGetRowset | Возвращает стандартное значение HRESULT. |
COleDBRecordView::OnMove | Обновляет текущую запись (если грязная) в источнике данных, а затем переходит к указанной записи (следующей, предыдущей, первой или последней). |
Замечания
Представление представляет собой представление формы, непосредственно подключенное к объекту CRowset
. Представление создается из ресурса шаблона диалогового окна и отображает поля объекта в элементах управления диалогового CRowset
окна. Объект COleDBRecordView
использует диалоговый обмен данными (DDX) и встроенные CRowset
функции навигации для автоматизации перемещения данных между элементами управления в форме и полями набора строк. COleDBRecordView
также предоставляет реализацию по умолчанию для перехода на первую, следующую, предыдущую или последнюю запись и интерфейс для обновления записи в настоящее время в представлении.
Функции DDX можно использовать для COleDbRecordView
получения данных непосредственно из набора записей базы данных и отображения его в элементе управления диалоговым окном. Следует использовать DDX_*
методы (например DDX_Text
, не DDX_Field*
функции (например DDX_FieldText
) с COleDbRecordView
. DDX_FieldText
не будет работать, COleDbRecordView
так как DDX_FieldText
принимает дополнительный аргумент типа CRecordset*
(для CRecordView
) или CDaoRecordset*
(для CDaoRecordView
).
Примечание.
Если вы работаете с классами объектов доступа к данным (DAO), а не с классами шаблонов шаблона OLE DB, используйте вместо этого класс CDaoRecordView . Дополнительные сведения см. в статье "Обзор: программирование баз данных".
COleDBRecordView
отслеживает позицию пользователя в наборе строк, чтобы представление записи может обновить пользовательский интерфейс. Когда пользователь переходит в любой конец набора строк, представление записей отключает объекты пользовательского интерфейса , такие как пункты меню или кнопки панели инструментов, для дальнейшего перемещения в том же направлении.
Дополнительные сведения о классах наборов строк см. в статье "Использование шаблонов потребителей OLE DB".
Иерархия наследования
COleDBRecordView
Требования
Заголовок: afxoledb.h
COleDBRecordView::COleDBRecordView
Формирует объект COleDBRecordView
.
COleDBRecordView(LPCTSTR lpszTemplateName);
COleDBRecordView(UINT nIDTemplate);
Параметры
lpszTemplateName
Содержит строку, завершающую значение NULL, которая является именем ресурса диалогового шаблона.
nIDTemplate
Содержит идентификатор ресурса диалогового шаблона.
Замечания
При создании объекта типа, производного от COleDBRecordView
, вызовите один из конструкторов, чтобы создать объект представления и определить ресурс диалогового окна, на котором основано представление. Ресурс можно определить по имени (передать строку в качестве аргумента конструктору) или идентификатором ресурса (передать целое число без знака в качестве аргумента).
Примечание.
Производный класс должен предоставить собственный конструктор. В конструкторе вызовите конструктор COleDBRecordView::COleDBRecordView
с именем ресурса или идентификатором в качестве аргумента.
COleDBRecordView::OnGetRowset
Возвращает дескриптор объекта CRowset<> , связанного с представлением записи.
virtual CRowset<>* OnGetRowset() = 0;
Возвращаемое значение
Стандартное значение HRESULT.
Замечания
Эту функцию-член необходимо переопределить для создания или получения объекта набора строк и возврата дескриптора. Если вы объявляете класс представления записей с помощью ClassWizard, мастер записывает для вас переопределение по умолчанию. Реализация classWizard по умолчанию возвращает дескриптор набора строк, хранящийся в представлении записей, если он существует. Если нет, он создает объект набора строк типа, указанного в ClassWizard, и вызывает ее Open
функцию-член, чтобы открыть таблицу или запустить запрос, а затем возвращает дескриптор объекту.
Примечание.
До MFC 7.0 OnGetRowset
вернул указатель CRowset
на . Если у вас есть код, который вызывается OnGetRowset
, необходимо изменить тип возврата на шаблонный класс CRowset<>.
Пример
CFrameWnd* pFrame = (CFrameWnd*)AfxGetMainWnd();
COleDBRecordView* pView = (COleDBRecordView*)pFrame->GetActiveView();
// CProductAccessor is a user-defined accessor class
CRowset<CAccessor<CProductAccessor>>* pRowSet =
(CRowset<CAccessor<CProductAccessor>>*)pView->OnGetRowset();
Дополнительные сведения и примеры см. в статье "Представления записей: использование представления записей".
COleDBRecordView::OnMove
Перемещается в другую запись в наборе строк и отображает его поля в элементах управления представления записей.
virtual BOOL OnMove(UINT nIDMoveCommand);
Параметры
nIDMoveCommand
Одно из следующих стандартных значений идентификатора команды:
ID_RECORD_FIRST — переход к первой записи в наборе записей.
ID_RECORD_LAST — переход к последней записи в наборе записей.
ID_RECORD_NEXT — перейдите к следующей записи в наборе записей.
ID_RECORD_PREV — перейдите к предыдущей записи в наборе записей.
Возвращаемое значение
Ненулевое значение, если перемещение выполнено успешно; в противном случае значение 0, если запрос на перемещение был отклонен.
Замечания
Реализация по умолчанию вызывает соответствующую Move
функцию-член объекта, связанного CRowset
с представлением записи.
По умолчанию обновляет текущую запись в источнике данных, OnMove
если пользователь изменил его в представлении записи.
Мастер приложений создает ресурс меню с элементами меню "Первая запись", "Последняя запись", "Следующая запись" и "Предыдущая запись". Если выбрать параметр панели инструментов для закрепления, мастер приложений также создает панель инструментов с кнопками, соответствующими этим командам.
Если вы перемещаете последнюю запись в наборе записей, представление записей продолжает отображать последнюю запись. При перемещении назад после первой записи представление записи продолжает отображать первую запись.