Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Класс CRecordset. Компоненты данных и осн.методы (операции перемещения пo результир-му набору, операции IsFieldDirty, IsFieldNull, Requary, SetFieldDirty, SetFieldNull).
Все компоненты и методы этого класса можно разбить на семь категорий: 1)Компоненты данных. Служат для хранения информации, используемой для непосредственной работы с базой данных, к которой объект этого класса был присоединен. 2)Конструирование. В эту категорию входят конструктор и методы для открытия/закрытия форм БД. 3)Атрибуты результирующего набора. Функции, используемые для получения информации о результирующем наборе, к которому присоединен объект класса CRecordset. 4)Операции обновления результирующего набора. Четыре операции, предназначенные для обработки транзакций. 5)Операции перемещения по результирующему набору. Ф-ции, позволяющие перемещ-ся по записям результирующего набора. 6)Другие операции над результирующим набором. Восемь ф-ций, предоставляющие доп-е функциональные возможности. 7)Переопределяемые методы. Пять переопр-х ф-ций, позвол-е прогр-ту настроить функционир-е объекта класса CRecordset. Компоненты данных В классе CRecordset определены следующие основные компоненты данных: UINT CRecordset::m_nFields Содержит число полей данных в результирующем наборе — число столбцов, получ-х из источника данных. (Если воспольз-ся ClassWizard, то это б.сделано автоматически UINT CRecordset::m_nParams). CDatabase CRecordset: :m_pDatabase Содержит ук-ль на объект класса CDatabase, посредством кот-го результирующий набор соединяется с источником данных. CString CRecordset::m_strFilter Исп-ся в кач-ве фильтра, что позв-т выбирать только записи, удовлетв-е заданному критерию. CString CRecordset::m_strSort Исп-ся в качестве фильтра, позв-го сортир-ть записи, удовлетв-е заданному критерию. Операции перемещения пo результир-му набору К основным функциям этой категории относятся следующие: Move, MoveFirst, MoveLast, MoveNext и MovePrev. virtual void CRecordset::Move -- Функция имеет два парам-ра: nRows – кол-во строк, на кот-е необх-мо переместиться вперед («+» знач-е) или назад («-») и wFetchType — опред-т набор строк, которые функция должна выбрать. void CRecordset::MoveFirst () -- Делает текущей первую запись результирующего набора. Перед использованием данной функции рекомендуется вызвать функцию lsBOF. void CRecordset::MoveLast () Делает текущей последнюю запись результирующего набора. Перед использованием данной функции рекомендуется вызвать функцию IsEOF. void CRecordset: :MoveNext () Делает текущей первую запись следующего набора строк. Перед использованием реком-ся вызвать ф-цию IsBOF. Если работа идет не с блоками, а с отдельными записями, то текущей становится след-я запись. voidCRecordset::MovePrev () Делает текущей первую запись предыдущего набора строк. Перед ее испольванием рекомендуется вызвать функцию IsEOF. При работе не с блоками, а с отдельными строками текущей становится предыдущая запись. Другие операции над результирующим набором В эту категорию входят функции, которые трудно отнести к какому-то типу. Void CRecordset::Cancel () Вызов этой ф-ции явл-ся просьбой к источнику данных отменить либо oбрабат-ю асинхронную операцию, либо второй поток. BOOL CRecordset::IsFieldDirty(void*pv) Возвращает ненулевое значение, если поле данных было изменено после вызова AddNew или Edit, в противном случае О. Проверяемое поле данных задаете указателем pv, если это значение равно NULL, то проверяются все поля. BOOL CRecordset::IsFieldNull (void*pv) Возвращает ненулевое значение, если поле данных отмечено как содержащее значение Null, и 0 – в противном случае. Проверяемое поле данных задается указателем pv, если это значение равно Null, то проверяются все поля. Virtual BOOL CRecordset::Reguery () Позволяет обновить результирующий набор. Функцию следует вызывать для результирующего набора типа «мгновенный снимок» (snapshot) после того, как вы или другой пользователь внесли в него изменения. Для динамического (dynaset) результирующего набора обновление производится автоматически, кроме случая добавление новой записи. void CRecordset::SetFieldDirty (void*pv,BOOL bDirty = TRUE) Позволяет пометить поле данных результирующего набора (парам-р pv) как измененное (bDirty=TRUE) или не изменившееся (bDirty=FALSE). Если в кач-ве pv передается NULL, помечаются все поля. Использование этой функции позволяет снизить трафик SQL, если изменились не все поля записи. void CRecordset::SetFieldNull (void*pv,BOOL bNull = TRUE) Позволяет пометить поле данных результирующего набора (параметр pv) как содержащее (bNull = TRUE) или не содержащее (bNull = FALSE) значение Null. Если в качестве pv передается NULL, помечаются все поля.
Класс CRecordset. Переопределяемые методы (DoFieldExchange, GetDefoltSQL, GetDefoltConnect). В эту категорию входят ф-ции, кот-е можно переопред-ть в каждом конкретном прилож-и, чтобы настроить его на выполнение текущих задач. virtualvoidCRecordset::DoFieldExchange(СFieldExchange*pFx Вызывается для организации обмена данными между полями результирующего набора и соответствующими столбцами текущей записи в источнике данных. В качестве параметра функция принимает указатель на объект CFieldExchange, кот-й авт-ки созда-ся и передается библ-й MFC. Собственно обмен данными осуществляется с помощью механизма RFX (Record Field Exchange, Обмен полями записи), который работает в обоих направления от полей данных результирующего набора к записям источника данных и наоборот. virtual CString CRecordset::GetDefaultConnect() Библиотека MFC вызывает данную функцию, чтобы получить строку, содержащую источник данных, на котором базируется результирующий нaбop. virtual CString CRecordset::GetDefaultSQL() Библиотека MFC вызывает эту функцию, чтобы получить строку, содержащую оператор SQL, на кот-м базируется результир-й набор. Это должно быть или имя таблицы, или непосредственно оператор SELECT. Можно также определить здесь вызов предопределенного запроса, используя оператор CALL.
Класс CRecordView. Осн.методы (конструктор, OnGetRecordSet, OnMove). CWnd-> CView->CScrollView->CFormView->CRecordView Объекты этого класса предоставляют для изображения записей БД в элементах управл-я форму, кот-я непосредственно соед-на с объектом CRecordset. Объекты CRecordView исп-т мех-м DDX (Dialog Data Exchange, Обмен данными с блоком диалога) и RFX (Record Field Exchange, Обмен полями записей) для автомат-го перемещения данных м/у элем-ми упр-я формы и полями результир-го набора. Кроме того, м.восп-ся реализованными возм-ми перемещ-я по записям и обновления текущей записи. Вce компон-ты и методы этого класса м.разбить на три категории: 1)Создание объекта. Имеется только конструктор для создания объекта. 2)Атрибуты данных. Три функции, используемые для получения информации результирующем наборе, к которому присоединена форма. 3)Операции.Единственная функция, позволяющая программисту изменить указатель на текущую запись. Создание объекта В эту категорию входит только констр-р, имеющий две реализации. CRecordView::CRecordView(LPCSTR lpszTemplateName) CRecordView::CRecordView(UINT nIDTemplate) Создает объект класса. В кач-ве парам-ра конструктор принимает идентификатор шаблона блока диалога, задаваемый либо строкой (lpszTemplateName), либо номером (nlDTemplate), При создании класса, производного от CRecordView, в нем можно определить только один конструктор, в котором необходимо вызвать конструктор базового класса CRecordView::CRecordView с идентификатором ресурса в качестве параметра. Атрибуты данных Функции этой категории позволяют получить информацию о представлении записи virtual CRecordset*CRecordView::OnGetRecordset() Возвращает указатель на объект CRecordset, ассоциированный с формой, позволяет тем самым работать с некот-м результир-м набором. Чисто виртуальная функция, которая требует обязательного переопределения. Фрагмент кода (AppWizard): CRecordset* CDBView::OnGetRecordset() { eturn m_pSet } |
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 296. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |