Класс 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
.