пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Класс CRecordset. Компоненты данных и основные методы (операции перемещения по результирующему набору, операции IsFieldDirty, IsFieldNull, Requary, SetFieldDirty, SetFieldNull).

 

 

Все компоненты и методы этого класса можно разбить на семь категорий:

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


18.01.2020; 22:37
хиты: 47
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь