logo search
Конспект по ООПиП ч

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, помечаются все поля.