Поделиться через


Класс CDaoFieldExchange

Поддерживает процедуры обмена полями записей (DAO DFX), используемые классами баз данных DAO.

Примечание.

DAO поддерживается через Office 2013. DAO 3.6 является окончательной версией, и она считается устаревшей.

Синтаксис

class CDaoFieldExchange

Участники

Открытые методы

Имя Описание
CDaoFieldExchange::IsValidOperation Возвращает ненулевое значение, если текущая операция подходит для типа обновляемого поля.
CDaoFieldExchange::SetFieldType Указывает тип элемента данных набора записей — столбец или параметр, представленный всеми последующими вызовами функций DFX до следующего вызова SetFieldType.

Открытые члены данных

Имя Описание
CDaoFieldExchange::m_nOperation Операция DFX, выполняемая текущим вызовом функции-члена набора DoFieldExchange записей.
CDaoFieldExchange::m_prs Указатель на набор записей, на который выполняются операции DFX.

Замечания

CDaoFieldExchange не имеет базового класса.

Используйте этот класс, если вы пишете подпрограммы обмена данными для пользовательских типов данных; в противном случае вы не будете напрямую использовать этот класс. DFX обменивается данными между элементами данных поля объекта CDaoRecordset и соответствующими полями текущей записи в источнике данных. DFX управляет обменом в обоих направлениях из источника данных и источника данных. Дополнительные сведения о написании пользовательских подпрограмм DFX см . в техническом примечание 53 .

Примечание.

Классы базы данных DAO отличаются от классов баз данных MFC на основе open Database Connectivity (ODBC). Все имена классов базы данных DAO имеют префикс CDao. Вы по-прежнему можете получить доступ к источникам данных ODBC с помощью классов DAO. Как правило, классы MFC на основе DAO более способны, чем классы MFC на основе ODBC. Классы на основе DAO могут получать доступ к данным, включая драйверы ODBC, через собственный ядро СУБД. Они также поддерживают операции языка определения данных (DDL), такие как добавление таблиц через классы вместо того, чтобы самостоятельно вызывать DAO.

Примечание.

Обмен полями записей DAO (DFX) очень похож на обмен полями записей (RFX) в классах баз данных MFC на основе ODBC ( CDatabase, ). CRecordset Если вы понимаете RFX, вы сможете легко использовать DFX.

Объект CDaoFieldExchange предоставляет сведения о контексте, необходимые для обмена полями записей DAO. CDaoFieldExchange объекты поддерживают ряд операций, включая параметры привязки и члены данных поля, а также параметры различных флагов в полях текущей записи. Операции DFX выполняются в элементах данных набора записей типов, определенных типом enum FieldType в CDaoFieldExchange. Возможные значения FieldType :

  • CDaoFieldExchange::outputColumn для элементов данных поля.

  • CDaoFieldExchange::param для элементов данных параметров.

Функция-член IsValidOperation предоставляется для написания собственных пользовательских подпрограмм DFX. Вы будете часто использовать SetFieldType в функциях CDaoRecordset::D oFieldExchange . Дополнительные сведения о глобальных функциях DFX см. в разделе "Функции Exchange полей записи". Сведения о написании пользовательских подпрограмм DFX для собственных типов данных см . в техническом примечание 53.

Иерархия наследования

CDaoFieldExchange

Требования

Заголовок: afxdao.h

CDaoFieldExchange::IsValidOperation

Если вы пишете собственную функцию DFX, вызовите IsValidOperation в начале функции, чтобы определить, может ли текущая операция выполняться для определенного типа элементов данных поля (a CDaoFieldExchange::outputColumn или a CDaoFieldExchange::param).

BOOL IsValidOperation();

Возвращаемое значение

Ненулевое значение, если текущая операция подходит для типа обновляемого поля.

Замечания

Некоторые операции, выполняемые механизмом DFX, применяются только к одному из возможных типов полей. Следуйте модели существующих функций DFX.

Дополнительные сведения о написании пользовательских подпрограмм DFX см . в техническом примечание 53.

CDaoFieldExchange::m_nOperation

Определяет операцию, выполняемую для объекта CDaoRecordset , связанного с объектом exchange поля.

Замечания

Объект CDaoFieldExchange предоставляет контекст для ряда различных операций DFX в наборе записей.

Примечание.

Значение PSEUDONULL , описанное в приведенном MarkForAddNew ниже разделе, SetFieldNull — это значение, используемое для пометки полей NULL. Механизм обмена полями записей DAO (DFX) использует это значение, чтобы определить, какие поля были явно помечены null. PSEUDONULL не требуется для COleDateTime полей и COleCurrency полей.

Возможные значения m_nOperation :

Операция Description
AddToParameterList Создает предложение PARAMETERS инструкции SQL.
AddToSelectList Создает предложение SELECT инструкции SQL.
BindField Привязывает поле в базе данных к расположению памяти в приложении.
BindParam Задает значения параметров для запроса набора записей.
Fixup Задает состояние NULL для поля.
AllocCache Выделяет кэш, используемый для проверки "грязных" полей в наборе записей.
StoreField Сохраняет текущую запись в кэше.
LoadField Восстанавливает кэшированные переменные-члены данных в наборе записей.
FreeCache Освобождает кэш, используемый для проверки "грязных" полей в наборе записей.
SetFieldNull Задает для поля значение NULL и значение ПСЕВДОНУЛЛ.
MarkForAddNew Помечает поля "грязные", если не ПСЕВДОНУЛЛ.
MarkForEdit Помечает поля "грязные", если они не соответствуют кэшу.
SetDirtyField Задает значения полей, помеченные как "грязные".
DumpField Дамп содержимого поля (только отладка).
MaxDFXOperation Используется для проверки входных данных.

CDaoFieldExchange::m_prs

Содержит указатель на объект CDaoRecordset , связанный CDaoFieldExchange с объектом.

Замечания

CDaoFieldExchange::SetFieldType

Вызов SetFieldType в переопределении класса DoFieldExchange CDaoRecordset.

void SetFieldType(UINT nFieldType);

Параметры

nFieldType
Значение перечисления FieldType, объявленное в CDaoFieldExchange, которое может иметь одно из следующих значений:

  • CDaoFieldExchange::outputColumn

  • CDaoFieldExchange::param

Замечания

Как правило, ClassWizard записывает этот звонок для вас. Если вы пишете собственную функцию и используете мастер для записи DoFieldExchange функции, добавьте вызовы к собственной функции за пределами карты полей. Если мастер не используется, не будет карты полей. Вызов предшествует вызовам функций DFX, по одному для каждого члена данных поля класса и определяет тип поля как CDaoFieldExchange::outputColumn.

При параметризации класса набора записей необходимо добавить вызовы DFX для всех элементов данных параметров (за пределами карты полей) и предшествуйте этим вызовам SetFieldType. Передайте значение CDaoFieldExchange::param. (Вместо этого можно использовать CDaoQueryDef и задайте его значения параметров.)

Как правило, каждая группа вызовов функций DFX, связанных с элементами данных поля или элементами данных параметров, должна предшествовать вызову SetFieldType. Параметр nFieldType каждого SetFieldType вызова определяет тип элементов данных, представленных вызовами функции DFX, которые следуют за вызовомSetFieldType.

См. также

Диаграмма иерархии
Класс CDaoRecordset