Все компоненты и методы этого класса можно разбить на семь категорий:
1)Компоненты данных. Служат для хранения информации, используемой для непосредственной работы с базой данных, к которой объект этого класса был присоединен.
2)Конструирование. В эту категорию входят конструктор и методы для открытия/закрытия форм БД.
3)Атрибуты результирующего набора. Функции, используемые для получения информации о результирующем наборе, к которому присоединен объект класса CRecordset.
4)Операции обновления результирующего набора. Четыре операции, предназначенные для обработки транзакций.
5)Операции перемещения по результирующему набору. Ф-ции, позволяющие перемещ-ся по записям результирующего набора.
6)Другие операции над результирующим набором. Восемь ф-ций, предоставляющие доп-е функциональные возможности.
7)Переопределяемые методы. Пять переопр-х ф-ций, позвол-е прогр-ту настроить функционир-е объекта класса CRecordset.
1)Компоненты данных
В классе 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, помечаются все поля.