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::DoBulkFieldExchange