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


CRecordset::DoFieldExchange

Вызываемый для обмена данными (в обоих направлениях) между элементами данных полей набора записей и соответствующие записи в источнике данных.Средства записывают обмен полями записей (RFX).

virtual void DoFieldExchange( 
   CFieldExchange* pFX  
);

Параметры

  • pFX
    Указатель на объект CFieldExchange.Рамки уже настроить этот объект, чтобы определить контекст для операции обмена полями.

Заметки

Если пакетная выборка строк не реализован, вызывается функция-член границы этого в автоматически обмена данными между элементами данных полей объекта набора записей и соответствующих столбцов текущей записи в источнике данных.DoFieldExchange также привязывает элементы данных параметра, если он существует в прототипам параметра в строке инструкции SQL для выделения набора записей.

Если пакетная выборка строк реализована, то платформа вызывает функцию DoBulkFieldExchange.Для реализации bulk строку выборка, необходимо указать параметр CRecordset::useMultiRowFetch параметра dwOptions в функции-члене Открытие.

ПримечаниеПримечание

DoFieldExchange доступно, только если используется класс, производный от CRecordset.Если созданный объект набора записей непосредственно из CRecordset, необходимо вызвать функцию-член GetFieldValue для получения данных.

Обмен данными с именем поля, запись обмена полями записей (RFX), работает в обоих направлениях: из элементов поля данных объекта набора записей с полями записей в источнике данных, а из записи из источника данных в объект набора записей.

Единственная операция обычно предполагая, что необходимо для реализации DoFieldExchange для производного класса набора записей создание класса с функциональным возможностям ClassWizard и указать имена и типы данных элементов данных полей.Также можно добавить код к функциональным возможностям ClassWizard записывает, что для определения элементов данных параметров или работать с любыми столбцами привязке динамически.Дополнительные сведения см. в статье Набор записей. Динамическая привязка столбцов данных (ODBC).

При объявлении пользовательский производный класс набора записей с функциональным возможностям ClassWizard мастер записывает переопределение DoFieldExchange, которые будет выглядеть примерно так:

void CCustomer::DoFieldExchange(CFieldExchange* pFX)
{
   pFX->SetFieldType(CFieldExchange::outputColumn);
   // Macros such as RFX_Text() and RFX_Int() are dependent on the
   // type of the member variable, not the type of the field in the database.
   // ODBC will try to automatically convert the column value to the requested type
   RFX_Long(pFX, _T("[CustomerID]"), m_CustomerID);
   RFX_Text(pFX, _T("[ContactFirstName]"), m_ContactFirstName);
   RFX_Text(pFX, _T("[PostalCode]"), m_PostalCode);
   RFX_Text(pFX, _T("[L_Name]"), m_L_Name);
   RFX_Long(pFX, _T("[BillingID]"), m_BillingID);

   pFX->SetFieldType(CFieldExchange::inputParam);
   RFX_Text(pFX, _T("Param"), m_strParam);
}

Дополнительные сведения о функциях RFX см. в разделе Функции обмена полями записей.

Для последующих примеров и сведений о DoFieldExchange см. в статье Обмен полями записей: Принцип работы RFX.Общие сведения о RFX см. в статье Обмен полями записей.

Исключения

Этот метод может создавать исключения типа CDBException*.

Требования

Header: afxdb.h

См. также

Ссылки

Класс CRecordset

Диаграмма иерархии

CRecordset::m_nFields

CRecordset::m_nParams

CRecordset::DoBulkFieldExchange

CRecordset::GetFieldValue

Класс CFieldExchange

Другие ресурсы

Функции обмена полями записей