Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
51
Добавлен:
16.02.2016
Размер:
7.38 Mб
Скачать

Пример:

rsSet.Edit(); // Начало операции изменения записи // теперь можно редактировать поля набора записей - члены класса rsSet.m_dwCITY = "Moscow"; rsSet.m_strName = "Alex"; if( !rsCustSet.Update()) // Завершение операции изменения записи //...

virtual BOOL Update( );throw( CDBException );

Метод возвращает ненулевое значение, если запись источника данных была успешно обновлена. Если нет измененных полей, то метод возвращает значение 0. Если нет обновляемых записей или изменено более одной за­писи, то бросается исключение.

void MoveFirst( ); throw( CDBException, CMemory Exception ); void MoveLast( ); throw( CDBException, CMemory Exception ); void MoveNext( ); throw( CDBException, CMemoryException ); void MovePrev( ); throw( CDBException, CMemoryException );

Эти методы позволяют прокручивать набор записей - перемещать указа­тель текущей записи.

virtual void DoFieldExchange( CFieldExchange* pFX);throw( CDBException );

Этот метод вызывается для автоматического обмена данными между членами класса - полями набора записей (текущей записи) и соответст­вующими полями текущей записи в источнике данных.

Параметры:

pFX - указатель на объект CFieldExchange.

Если реализована выборка набора записей, состоящего из более чем од­ной записи, то используется метод DoBulkFieldExchange. Для реализации выборки нескольких записей следует для параметра dwOptions в методе Open установить значение CRecordset::useMultiRowFetch.

Отметим, что метод DoFieldExchange доступен только для объектов про­изводного класса от класса CRecordset. Если набор записей создан непо­средственно как объект класса CRecordset, то следует использовать метод GetFieldValue.

Обмен данными с источником данных, называемый RFX-обменом (record field exchange), работает в двух направлениях: из полей объекта набор запи­сей в поля источника данных и обратно.

Обычно для того, чтобы использовать этот метод, достаточно в произ­водном классе для набора записей определить в ClassWizard имена и тип полей данных - членов класса. ClassWizard самостоятельно вставит код пе­реопределяемого метода DoFieldExchange.

Пример:

Ц Кода автоматически формируемый ClassWizard void CSet::DoFieldExchange(CFieldExchange* pFX) { //{{AFX_FIELD_MAP(CSet) pFX->SetFieldType(CFieldExchange::outputColumn); RFX_Text(pFX, "Name", m_strName); RFX Int(pFX, "Age", m wAge); //}}AFX FIELD MAP }

Класс CRecordView

Объект-отображение CRecordView предоставляет средства для просмотра полей базы данных в элементах управления.

Отображение создается на основе шаблона документа, используя эле­менты управления, добавленные в ресурс шаблона диалога.

Объект CRecordView использует DDX-обмен данными и RFX-обмен дан­ными для реализации обмена между тремя наборами данных: элементами управления, полями набора записей и записями источника данных.

Дополнительно класс CRecordView поддерживает по умолчанию реали­зацию просмотра набора записей и перехода к первой, последней, следую­щей и предыдущей записям в текущем отображении.

При использовании для создания шаблона приложения AppWizard авто­матически будут созданы ресурсы меню и панели инструментов, содержа­щей кнопки прокрутки набора записей. При программировании вручную, используя ClassWizard, эти ресурсы надо создавать самостоятельно в редак­торе меню и в редакторе битовых изображений.

CRecordView( LPCSTR ipszTemplateName ); CRecordView( UINT nIDTemplate);

Конструктор объекта CRecordView.

Параметры:

Соседние файлы в папке VC++Баженова