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

В этом разделе перечислены функции обмена полями записей (RFX, Bulk RFXи DFX), используемые для автоматизации передачи данных между объектом набора записей и источником данных и выполнения других операций с данными.

При использовании классов на основе ODBC и реализации массовой выборки строк необходимо вручную переопределить функцию-член DoBulkFieldExchangeCRecordset путем вызова функций Bulk RFX для каждого элемента данных, соответствующего столбцу источника данных.

Если вы не реализовали массовое получение строк в классах на основе ODBC или используете классы на основе DAO (устаревшее), ClassWizard переопределит DoFieldExchange функцию-член CRecordset или вызвав функции RFX (для классов ODBC) или CDaoRecordset функции DFX (для классов DAO) для каждого элемента данных поля в наборе записей.

Функции обмена полями записей передают данные каждый раз, когда платформа вызывает DoFieldExchange или DoBulkFieldExchange. Каждая функция передает определенный тип данных.

Дополнительные сведения об использовании этих функций см. в статьях Обмен полями записей: принцип работы RFX (ODBC). Дополнительные сведения о массовой выборке строк см. в статье Набор записей: пакетная выборка строк (ODBC).

Для столбцов данных с динамической привязкой можно самостоятельно вызвать функции RFX и DFX, как описано в статьях Набор записей. Динамическая привязка столбцов данных (ODBC). Кроме того, можно написать собственные подпрограммы RFX и DFX, как описано в техническом примечании 43 (для ODBC) и техническом примечании 53 (для DAO).

Пример функций RFX и Bulk RFX, как они отображаются в иных DoBulkFieldExchange функциях, см. в DoFieldExchange разделе RFX_Text и [RFX_Text_Bulk]#rfx_text_bulk). Функции DFX очень похожи на функции RFX.

Функции RFX (ODBC)

Имя Описание
RFX_Binary Передает массивы байтов типа CByteArray.
RFX_Bool Передает логический тип данных.
RFX_Byte Передает один байт данных.
RFX_Date Передает данные времени и даты с помощью CTime или TIMESTAMP_STRUCT.
RFX_Double Передает данные двойной точности с плавающей запятой.
RFX_Int Передает целочисленные данные.
RFX_Long Передает длинные целые данные.
RFX_LongBinary Передает данные больших двоичных объектов (BLOB) с объектом класса CLongBinary .
RFX_Single Передает данные с плавающей запятой.
RFX_Text Передает строковые данные.

Функции Bulk RFX (ODBC)

Имя Описание
RFX_Binary_Bulk Передает массивы байтов данных.
RFX_Bool_Bulk Передает массивы логических данных.
RFX_Byte_Bulk Передает массивы отдельных байтов.
RFX_Date_Bulk Передает массивы данных типа TIMESTAMP_STRUCT.
RFX_Double_Bulk Передает массивы данных двойной точности с плавающей запятой.
RFX_Int_Bulk Передает массивы целочисленных данных.
RFX_Long_Bulk Передает массивы длинных целых данных.
RFX_Single_Bulk Передает массивы данных с плавающей запятой.
RFX_Text_Bulk Передает массивы данных типа LPSTR.

Функции DFX (DAO)

Имя Описание
DFX_Binary Передает массивы байтов типа CByteArray.
DFX_Bool Передает логический тип данных.
DFX_Byte Передает один байт данных.
DFX_Currency Передает данные денежных единиц типа COleCurrency.
DFX_DateTime Передает данные даты и времени типа COleDateTime.
DFX_Double Передает данные двойной точности с плавающей запятой.
DFX_Long Передает длинные целые данные.
DFX_LongBinary Передает данные больших двоичных объектов (BLOB) с объектом класса CLongBinary . Для DAO рекомендуется использовать DFX_Binary .
DFX_Short Передает короткие целые данные.
DFX_Single Передает данные с плавающей запятой.
DFX_Text Передает строковые данные.

=============================================

RFX_Binary

Передает массивы байтов между элементами CRecordset данных поля объекта и столбцами записи в источнике данных типа ODBC SQL_BINARY, SQL_VARBINARY или SQL_LONGVARBINARY.

Синтаксис

void RFX_Binary(
   CFieldExchange* pFX,
   const char* szName,
   CByteArray& value,
   int nMaxLength = 255);

Параметры

Pfx
Указатель на объект класса CFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения об операциях, которые CFieldExchange может указывать объект, см. в статье "Запись поля Exchange: как работает RFX".

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа CByteArray берется из указанного элемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

nMaxLength
Максимальная допустимая длина передаваемой строки или массива. Значение по умолчанию nMaxLength равно 255. Юридические значения — от 1 до INT_MAX. Платформа выделяет этот объем пространства для данных. Для оптимальной производительности передайте достаточно большое значение, чтобы разместить ожидаемый элемент данных.

Замечания

Данные в источнике данных этих типов сопоставляются с типом и типом CByteArray в наборе записей.

Пример

См . RFX_Text.

Требования

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

RFX_Bool

Передает логические данные между элементами CRecordset данных поля объекта и столбцами записи источника данных типа ODBC SQL_BIT.

Синтаксис

void RFX_Bool(
   CFieldExchange* pFX,
   const char* szName,
   BOOL& value);

Параметры

Pfx
Указатель на объект класса CFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения об операциях, которые CFieldExchange может указывать объект, см. в статье "Запись поля Exchange: как работает RFX".

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа BOOL берется из указанного элемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

Пример

См . RFX_Text.

Требования

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

RFX_Byte

Передает один байт между элементами CRecordset данных поля объекта и столбцами записи в источнике данных типа ODBC SQL_TINYINT.

Синтаксис

void RFX_Byte(
   CFieldExchange* pFX,
   const char* szName,
   BYTE& value);

Параметры

Pfx
Указатель на объект класса CFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения об операциях, которые CFieldExchange может указывать объект, см. в статье "Запись поля Exchange: как работает RFX".

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа BYTE берется из указанного элемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

Пример

См . RFX_Text.

Требования

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

RFX_Date

Передает CTime или TIMESTAMP_STRUCT данные между элементами CRecordset данных поля объекта и столбцами записи источника данных типа ODBC SQL_DATE, SQL_TIME или SQL_TIMESTAMP.

Синтаксис

void RFX_Date(
   CFieldExchange* pFX,
   const char* szName,
   CTime& value);

void RFX_Date(
   CFieldExchange* pFX,
   const char* szName,
   TIMESTAMP_STRUCT& value);

void RFX_Date(
   CFieldExchange* pFX,
   const char* szName,
   COleDateTime& value);

Параметры

Pfx
Указатель на объект класса CFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения об операциях, которые CFieldExchange может указывать объект, см. в статье "Запись поля Exchange: как работает RFX".

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных; значение, которое необходимо передать. Различные версии функции принимают различные типы данных для значения:

Первая версия функции принимает ссылку на объект CTime . Для передачи из набора записей в источник данных это значение берется из указанного элемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

Вторая версия функции принимает ссылку на TIMESTAMP_STRUCT структуру. Перед вызовом необходимо настроить эту структуру самостоятельно. Для этой версии не поддерживается ни поддержка обмена данными диалоговых окон (DDX), ни поддержка мастера кода. Третья версия функции работает аналогично первой версии, за исключением того, что она принимает ссылку на объект COleDateTime .

Замечания

Версия CTime функции накладывает издержки на некоторые промежуточные обработки и имеет несколько ограниченный диапазон. Если один из этих факторов слишком ограничен, используйте вторую версию функции. Но обратите внимание на отсутствие поддержки мастера кода и DDX, а также требование, которое вы настраиваете структуру самостоятельно.

Пример

См . RFX_Text.

Требования

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

RFX_Double

Передает двойные данные с плавающей запятой между элементами CRecordset данных поля объекта и столбцами записи в источнике данных типа ODBC SQL_DOUBLE.

Синтаксис

void RFX_Double(
   CFieldExchange* pFX,
   const char* szName,
   double& value);

Параметры

Pfx
Указатель на объект класса CFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения об операциях, которые CFieldExchange может указывать объект, см. в статье "Запись поля Exchange: как работает RFX".

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа берется из указанного doubleэлемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

Пример

См . RFX_Text.

Требования

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

RFX_Int

Передает целые данные между элементами CRecordset данных поля объекта и столбцами записи источника данных типа ODBC SQL_SMALLINT.

Синтаксис

void RFX_Int(
   CFieldExchange* pFX,
   const char* szName,
   int& value);

Параметры

Pfx
Указатель на объект класса CFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения об операциях, которые CFieldExchange может указывать объект, см. в статье "Запись поля Exchange: как работает RFX".

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа берется из указанного intэлемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

Пример

См . RFX_Text.

Требования

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

RFX_Long

Передает длинные целые данные между элементами CRecordset данных поля объекта и столбцами записи источника данных типа ODBC SQL_INTEGER.

Синтаксис

void RFX_Long(
   CFieldExchange* pFX,
   const char* szName,
   LONG&
value );

Параметры

Pfx
Указатель на объект класса CFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения об операциях, которые CFieldExchange может указывать объект, см. в статье "Запись поля Exchange: как работает RFX".

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа берется из указанного longэлемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

Пример

См . RFX_Text.

Требования

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

RFX_LongBinary

Передает данные двоичного большого объекта (BLOB) с помощью класса CLongBinary между элементами CRecordset данных поля объекта и столбцами записи источника данных типа ODBC SQL_LONGVARBINARY или SQL_LONGVARCHAR.

Синтаксис

void RFX_LongBinary(
   CFieldExchange* pFX,
   const char* szName,
   CLongBinary& value);

Параметры

Pfx
Указатель на объект класса CFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения об операциях, которые CFieldExchange может указывать объект, см. в статье "Запись поля Exchange: как работает RFX".

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа берется из указанного CLongBinaryэлемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

Пример

См . RFX_Text.

Требования

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

RFX_Single

Передает данные с плавающей запятой между элементами CRecordset данных поля объекта и столбцами записи источника данных типа ODBC SQL_REAL.

Синтаксис

void RFX_Single(
   CFieldExchange* pFX,
   const char* szName,
   float& value);

Параметры

Pfx
Указатель на объект класса CFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения об операциях, которые CFieldExchange может указывать объект, см. в статье "Запись поля Exchange: как работает RFX".

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа берется из указанного floatэлемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

Пример

См . RFX_Text.

Требования

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

RFX_Text

Передает CString данные между элементами CRecordset данных поля объекта и столбцами записи в источнике данных типа ODBC SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL или SQL_NUMERIC.

Синтаксис

void RFX_Text(
   CFieldExchange* pFX,
   const char* szName,
   CString& value,
   int nMaxLength = 255,
   int nColumnType = SQL_VARCHAR,
   short nScale = 0);

Параметры

Pfx
Указатель на объект класса CFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения об операциях, которые CFieldExchange может указывать объект, см. в статье "Запись поля Exchange: как работает RFX".

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа берется из указанного CStringэлемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

nMaxLength
Максимальная допустимая длина передаваемой строки или массива. Значение по умолчанию nMaxLength равно 255. Юридические значения — от 1 до INT_MAX). Платформа выделяет этот объем пространства для данных. Для оптимальной производительности передайте достаточно большое значение, чтобы разместить ожидаемый элемент данных.

nColumnType
Используется главным образом для параметров. Целое число, указывающее тип данных параметра. Тип — это тип данных ODBC формы SQL_XXX.

nScale
Задает масштаб значений типа ODBC SQL_DECIMAL или SQL_NUMERIC. Значение nScale полезно только при задании значений параметров. Дополнительные сведения см. в разделе "Точность, масштаб, длина и размер дисплея" в приложении D справочника программиста по пакету SDK ODBC.

Замечания

Данные в источнике данных всех этих типов сопоставляются с набором записей и из CString них.

Пример

В этом примере показано несколько вызовов RFX_Text. Обратите внимание также на два вызова CFieldExchange::SetFieldType. Для параметров необходимо записать вызов SetFieldType и его вызов RFX. Вызов выходного столбца и связанные вызовы RFX обычно записываются мастером кода.

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);
}

Требования

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

RFX_Binary_Bulk

Передает несколько строк байтовых данных из столбца источника данных ODBC в соответствующий массив в производном объекте CRecordset.

Синтаксис

void RFX_Binary_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   BYTE** prgByteVals,
   long** prgLengths,
   int nMaxLength);

Параметры

Pfx
Указатель на объект CFieldExchange . Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения см. в статье "Обмен полями записей: как работает RFX".

szName
Имя столбца данных.

prgByteVals
Указатель на массив значений BYTE. Этот массив будет хранить данные, передаваемые из источника данных в набор записей.

prgLengths
Указатель на массив длинных целых чисел. Этот массив будет хранить длину в байтах каждого значения в массиве, на которое указывает prgByteVals. Обратите внимание, что значение SQL_NULL_DATA будет сохранено, если соответствующий элемент данных содержит значение NULL. Дополнительные сведения см. в описании функции SQLBindCol API ODBC в справочнике программиста по пакету SDK ODBC.

nMaxLength
Максимальная допустимая длина значений, хранящихся в массиве, на которую указывает prgByteVals. Чтобы убедиться, что данные не будут усечены, передайте достаточно большое значение, чтобы разместить ожидаемый элемент данных.

Замечания

Столбец источника данных может иметь тип ODBC SQL_BINARY, SQL_VARBINARY или SQL_LONGVARBINARY. Набор записей должен определить элемент данных поля указателя типа на BYTE.

Если инициализировать prgByteVals и prgLengths до NULL, то массивы, на которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.

Примечание.

Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPosAPI ODBC.

Дополнительные сведения см. в статьях Recordset: получение записей в пакетной службе (ODBC) и Exchange полей записей (RFX).

Пример

См . RFX_Text_Bulk.

Требования

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

RFX_Bool_Bulk

Передает несколько строк логических данных из столбца источника данных ODBC в соответствующий массив в производном объекте CRecordset.

Синтаксис

void RFX_Bool_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   BOOL** prgBoolVals,
   long** prgLengths);

Параметры

Pfx
Указатель на объект CFieldExchange . Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения см. в статье "Обмен полями записей: как работает RFX".

szName
Имя столбца данных.

prgBoolVals
Указатель на массив значений BOOL. Этот массив будет хранить данные, передаваемые из источника данных в набор записей.

prgLengths
Указатель на массив длинных целых чисел. Этот массив будет хранить длину в байтах каждого значения в массиве, на которое указывает prgBoolVals. Обратите внимание, что значение SQL_NULL_DATA будет сохранено, если соответствующий элемент данных содержит значение NULL. Дополнительные сведения см. в описании функции SQLBindCol API ODBC в справочнике программиста по пакету SDK ODBC.

Замечания

Столбец источника данных должен иметь тип ODBC SQL_BIT. Набор записей должен определить элемент данных поля указателя типа на BOOL.

Если инициализировать prgBoolVals и prgLengths до NULL, то массивы, на которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.

Примечание.

Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPosAPI ODBC.

Дополнительные сведения см. в статьях Recordset: получение записей в пакетной службе (ODBC) и Exchange полей записей (RFX).

Пример

См . RFX_Text_Bulk.

Требования

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

RFX_Byte_Bulk

Передает несколько строк одного байта из столбца источника данных ODBC в соответствующий массив в производном объекте CRecordset.

Синтаксис

void RFX_Byte_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   BYTE** prgByteVals,
   long** prgLengths);

Параметры

Pfx
Указатель на объект CFieldExchange . Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения см. в статье "Обмен полями записей: как работает RFX".

szName
Имя столбца данных.

prgByteVals
Указатель на массив значений BYTE. Этот массив будет хранить данные, передаваемые из источника данных в набор записей.

prgLengths
Указатель на массив длинных целых чисел. Этот массив будет хранить длину в байтах каждого значения в массиве, на которое указывает prgByteVals. Обратите внимание, что значение SQL_NULL_DATA будет сохранено, если соответствующий элемент данных содержит значение NULL. Дополнительные сведения см. в описании функции SQLBindCol API ODBC в справочнике программиста по пакету SDK ODBC.

Замечания

Столбец источника данных должен иметь тип ODBC SQL_TINYINT. Набор записей должен определить элемент данных поля указателя типа на BYTE.

Если инициализировать prgByteVals и prgLengths до NULL, то массивы, на которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.

Примечание.

Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPosAPI ODBC.

Дополнительные сведения см. в статьях Recordset: получение записей в пакетной службе (ODBC) и Exchange полей записей (RFX).

Пример

См . RFX_Text_Bulk.

Требования

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

RFX_Date_Bulk

Передает несколько строк TIMESTAMP_STRUCT данных из столбца источника данных ODBC в соответствующий массив в производном объекте CRecordset.

Синтаксис

void RFX_Date_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   TIMESTAMP_STRUCT** prgTSVals,
   long** prgLengths);

Параметры

Pfx
Указатель на объект CFieldExchange . Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения см. в статье "Обмен полями записей: как работает RFX".

szName
Имя столбца данных.

prgTSVals
Указатель на массив значений TIMESTAMP_STRUCT. Этот массив будет хранить данные, передаваемые из источника данных в набор записей. Дополнительные сведения о типе данных TIMESTAMP_STRUCT см. в разделе "Типы данных C" в приложении D справочника программиста пакета SDK ODBC.

prgLengths
Указатель на массив длинных целых чисел. Этот массив будет хранить длину в байтах каждого значения в массиве, на которое указывает prgTSVals. Обратите внимание, что значение SQL_NULL_DATA будет сохранено, если соответствующий элемент данных содержит значение NULL. Дополнительные сведения см. в описании функции SQLBindCol API ODBC в справочнике программиста по пакету SDK ODBC.

Замечания

Столбец источника данных может иметь тип ODBC SQL_DATE, SQL_TIME или SQL_TIMESTAMP. Набор записей должен определить элемент данных поля указателя типа на TIMESTAMP_STRUCT.

Если инициализировать prgTSVals и prgLengths до NULL, массивы, которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.

Примечание.

Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPosAPI ODBC.

Дополнительные сведения см. в статьях Recordset: получение записей в пакетной службе (ODBC) и Exchange полей записей (RFX).

Пример

См . RFX_Text_Bulk.

Требования

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

RFX_Double_Bulk

Передает несколько строк двойной точности данных с плавающей запятой из столбца источника данных ODBC в соответствующий массив в производном объекте CRecordset.

Синтаксис

void RFX_Double_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   double** prgDblVals,
   long** prgLengths);

Параметры

Pfx
Указатель на объект CFieldExchange . Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения см. в статье "Обмен полями записей: как работает RFX".

szName
Имя столбца данных.

prgDblVals
Указатель на массив значений double . Этот массив будет хранить данные, передаваемые из источника данных в набор записей.

prgLengths
Указатель на массив длинных целых чисел. Этот массив будет хранить длину в байтах каждого значения в массиве, на которое указывает prgDblVals. Обратите внимание, что значение SQL_NULL_DATA будет сохранено, если соответствующий элемент данных содержит значение NULL. Дополнительные сведения см. в описании функции SQLBindCol API ODBC в справочнике программиста по пакету SDK ODBC.

Замечания

Столбец источника данных должен иметь тип ODBC SQL_DOUBLE. Набор записей должен определить элемент данных поля указателя типа double.

Если вы инициализируете prgDblVals и prgLengths значение NULL, то массивы, которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.

Примечание.

Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPosAPI ODBC.

Дополнительные сведения см. в статьях Recordset: получение записей в пакетной службе (ODBC) и Exchange полей записей (RFX).

Пример

См . RFX_Text_Bulk.

Требования

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

RFX_Int_Bulk

Передает целые данные между элементами CRecordset данных поля объекта и столбцами записи источника данных типа ODBC SQL_SMALLINT.

Синтаксис

void RFX_Int(
   CFieldExchange* pFX,
   const char* szName,
   int& value);

Параметры

Pfx
Указатель на объект класса CFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения об операциях, которые CFieldExchange может указывать объект, см. в статье "Запись поля Exchange: как работает RFX".

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа берется из указанного intэлемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

Пример

См . RFX_Text.

Требования

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

RFX_Long_Bulk

Передает несколько строк длинных целых данных из столбца источника данных ODBC в соответствующий массив в производном объекте CRecordset.

Синтаксис

void RFX_Long_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   long** prgLongVals,
   long** prgLengths);

Параметры

Pfx
Указатель на объект CFieldExchange . Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения см. в статье "Обмен полями записей: как работает RFX".

szName
Имя столбца данных.

prgLongVals
Указатель на массив длинных целых чисел. Этот массив будет хранить данные, передаваемые из источника данных в набор записей.

prgLengths
Указатель на массив длинных целых чисел. Этот массив будет хранить длину в байтах каждого значения в массиве, на которое указывает prgLongVals. Обратите внимание, что значение SQL_NULL_DATA будет сохранено, если соответствующий элемент данных содержит значение NULL. Дополнительные сведения см. в описании функции SQLBindCol API ODBC в справочнике программиста по пакету SDK ODBC.

Замечания

Столбец источника данных должен иметь тип ODBC SQL_INTEGER. Набор записей должен определить элемент данных поля указателя типа long.

Если инициализировать prgLongVals и prgLengths до NULL, массивы, которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.

Примечание.

Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPosAPI ODBC.

Дополнительные сведения см. в статьях Recordset: получение записей в пакетной службе (ODBC) и Exchange полей записей (RFX).

Пример

См . RFX_Text_Bulk.

Требования

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

RFX_Single_Bulk

Передает несколько строк данных с плавающей запятой из столбца источника данных ODBC в соответствующий массив в производном объекте CRecordset.

Синтаксис

void RFX_Single_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   float** prgFltVals,
   long** prgLengths);

Параметры

Pfx
Указатель на объект CFieldExchange . Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения см. в статье "Обмен полями записей: как работает RFX".

szName
Имя столбца данных.

prgFltVals
Указатель на массив значений float . Этот массив будет хранить данные, передаваемые из источника данных в набор записей.

prgLengths
Указатель на массив длинных целых чисел. Этот массив будет хранить длину в байтах каждого значения в массиве, на которое указывает prgFltVals. Обратите внимание, что значение SQL_NULL_DATA будет сохранено, если соответствующий элемент данных содержит значение NULL. Дополнительные сведения см. в описании функции SQLBindCol API ODBC в справочнике программиста по пакету SDK ODBC.

Замечания

Столбец источника данных должен иметь тип ODBC SQL_REAL. Набор записей должен определить элемент данных поля указателя типа float.

Если инициализировать prgFltVals и prgLengths до NULL, то массивы, на которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.

Примечание.

Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPosAPI ODBC.

Дополнительные сведения см. в статьях Recordset: получение записей в пакетной службе (ODBC) и Exchange полей записей (RFX).

Пример

См . RFX_Text_Bulk.

Требования

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

RFX_Text_Bulk

Передает несколько строк символьных данных из столбца источника данных ODBC в соответствующий массив в производном объекте CRecordset.

Синтаксис

void RFX_Text_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   LPSTR* prgStrVals,
   long** prgLengths,
   int nMaxLength);

Параметры

Pfx
Указатель на объект CFieldExchange . Этот объект содержит сведения для определения контекста для каждого вызова функции. Дополнительные сведения см. в статье "Обмен полями записей: как работает RFX".

szName
Имя столбца данных.

prgStrVals
Указатель на массив значений LPSTR. Этот массив будет хранить данные, передаваемые из источника данных в набор записей. Обратите внимание, что с текущей версией ODBC эти значения не могут быть Юникодом.

prgLengths
Указатель на массив длинных целых чисел. Этот массив будет хранить длину в байтах каждого значения в массиве, на который указывает prgStrVals. Эта длина исключает символ завершения null. Обратите внимание, что значение SQL_NULL_DATA будет сохранено, если соответствующий элемент данных содержит значение NULL. Дополнительные сведения см. в описании функции SQLBindCol API ODBC в справочнике программиста по пакету SDK ODBC.

nMaxLength
Максимальная допустимая длина значений, хранящихся в массиве, на которую указывает prgStrVals, включая символ завершения null. Чтобы убедиться, что данные не будут усечены, передайте достаточно большое значение, чтобы разместить ожидаемый элемент данных.

Замечания

Столбец источника данных может иметь тип ODBC SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL или SQL_NUMERIC. Набор записей должен определять элемент данных поля типа LPSTR.

Если вы инициализируете prgStrVals и prgLengths значение NULL, то массивы, которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.

Примечание.

Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPosAPI ODBC.

Дополнительные сведения см. в статьях Recordset: получение записей в пакетной службе (ODBC) и Exchange полей записей (RFX).

Пример

Необходимо вручную записывать вызовы в DoBulkFieldExchange переопределении. В этом примере показан вызов RFX_Text_Bulk, а также вызов для RFX_Long_Bulkпередачи данных. Эти вызовы предшествуют вызову CFieldExchange::SetFieldType. Обратите внимание, что для параметров необходимо вызывать функции RFX вместо функций BULK RFX.

void CMultiCustomer::DoBulkFieldExchange(CFieldExchange* pFX)
{
   pFX->SetFieldType(CFieldExchange::outputColumn);
   RFX_Long_Bulk(pFX, _T("[CustomerID]"), &m_pCustomerID, &m_pcCustomerID);
   RFX_Text_Bulk(pFX, _T("[ContactFirstName]"), &m_pContactFirstName, &m_pcContactFirstName, 50);
   RFX_Text_Bulk(pFX, _T("[PostalCode]"), &m_pPostalCode, &m_pcPostalCode, 50);
   RFX_Text_Bulk(pFX, _T("[L_Name]"), &m_pL_Name, &m_pcL_Name, 50);
   RFX_Long_Bulk(pFX, _T("[BillingID]"), &m_pBillingID, &m_pcBillingID);

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

Требования

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

DFX_Binary

Передает массивы байтов между элементами данных поля объекта CDaoRecordset и столбцами записи в источнике данных.

Синтаксис

void AFXAPI DFX_Binary(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   CByteArray& value,
   int nPreAllocSize = AFX_DAO_BINARY_DEFAULT_SIZE,
   DWORD dwBindOptions = 0);

Параметры

Pfx
Указатель на объект класса CDaoFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции.

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа CByteArray берется из указанного элемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

nPreAllocSize
Платформа предварительно выделяет этот объем памяти. Если данные больше, платформа будет выделять больше места по мере необходимости. Для повышения производительности задайте для этого размера достаточно большое значение, чтобы предотвратить перемещение. Размер по умолчанию определяется в AFXDAO. H-файл как AFX_DAO_BINARY_DEFAULT_SIZE.

dwBindOptions
Параметр, позволяющий воспользоваться механизмом двойной буферизации MFC для обнаружения измененных полей набора записей. По умолчанию AFX_DAO_DISABLE_FIELD_CACHE не используется двойное буферизация, и необходимо вызвать SetFieldDirty и SetFieldNull самостоятельно. Другое возможное значение, AFX_DAO_ENABLE_FIELD_CACHE, использует двойное буферизация, и вам не нужно выполнять дополнительную работу, чтобы пометить поля грязное или NULL. По соображениям производительности и памяти избежать этого значения, если двоичные данные не являются относительно небольшими.

Примечание.

Вы можете контролировать, является ли данные двойными буферизируемыми для всех полей по умолчанию, задав CDaoRecordset::m_bCheckCacheForDirtyFields.

Замечания

Данные сопоставляются между типом DAO_BYTES в DAO и типом CByteArray в наборе записей.

Пример

См . DFX_Text.

Требования

Header: afxdao.h

DFX_Bool

Передает логические данные между элементами данных поля объекта CDaoRecordset и столбцами записи в источнике данных.

Синтаксис

void AFXAPI DFX_Bool(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   BOOL& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Параметры

Pfx
Указатель на объект класса CDaoFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции.

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа BOOL берется из указанного элемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

dwBindOptions
Параметр, позволяющий воспользоваться механизмом двойной буферизации MFC для обнаружения измененных полей набора записей. По умолчанию AFX_DAO_ENABLE_FIELD_CACHE используется двойное буферизация. Другое возможное значение — AFX_DAO_DISABLE_FIELD_CACHE. Если указать это значение, MFC не проверка в этом поле. Вы должны позвонить SetFieldDirty и SetFieldNull себя.

Примечание.

Вы можете контролировать, является ли данные двойной буферизацией по умолчанию, задав CDaoRecordset::m_bCheckCacheForDirtyFields.

Замечания

Данные сопоставляются между типом DAO_BOOL в DAO и типом BOOL в наборе записей.

Пример

См . DFX_Text.

Требования

Header: afxdao.h

DFX_Byte

Передает один байт между элементами данных поля объекта CDaoRecordset и столбцами записи в источнике данных.

Синтаксис

void AFXAPI DFX_Byte(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   BYTE& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Параметры

Pfx
Указатель на объект класса CDaoFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции.

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа BYTE берется из указанного элемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

dwBindOptions
Параметр, позволяющий воспользоваться механизмом двойной буферизации MFC для обнаружения измененных полей набора записей. По умолчанию AFX_DAO_ENABLE_FIELD_CACHE используется двойное буферизация. Другое возможное значение — AFX_DAO_DISABLE_FIELD_CACHE. Если указать это значение, MFC не проверка в этом поле. Вы должны позвонить SetFieldDirty и SetFieldNull себя.

Примечание.

Вы можете контролировать, является ли данные двойной буферизацией по умолчанию, задав CDaoRecordset::m_bCheckCacheForDirtyFields.

Замечания

Данные сопоставляются между типом DAO_BYTES в DAO и типом BYTE в наборе записей.

Пример

См . DFX_Text.

Требования

Header: afxdao.h

DFX_Currency

Передает данные валюты между элементами данных поля объекта CDaoRecordset и столбцами записи в источнике данных.

Синтаксис

void AFXAPI DFX_Currency(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   COleCurrency& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Параметры

Pfx
Указатель на объект класса CDaoFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции.

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных это значение берется из указанного элемента данных типа COleCurrency. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

dwBindOptions
Параметр, позволяющий воспользоваться механизмом двойной буферизации MFC для обнаружения измененных полей набора записей. По умолчанию AFX_DAO_ENABLE_FIELD_CACHE используется двойное буферизация. Другое возможное значение — AFX_DAO_DISABLE_FIELD_CACHE. Если указать это значение, MFC не проверка в этом поле. Вы должны позвонить SetFieldDirty и SetFieldNull себя.

Примечание.

Вы можете контролировать, является ли данные двойной буферизацией по умолчанию, задав CDaoRecordset::m_bCheckCacheForDirtyFields.

Замечания

Данные сопоставляются между типом DAO_CURRENCY в DAO и типом COleCurrency в наборе записей.

Пример

См . DFX_Text.

Требования

Header: afxdao.h

DFX_DateTime

Передает данные времени и даты между элементами данных поля объекта CDaoRecordset и столбцами записи в источнике данных.

Синтаксис

void AFXAPI DFX_DateTime(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   COleDateTime& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Параметры

Pfx
Указатель на объект класса CDaoFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции.

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Функция принимает ссылку на объект COleDateTime . Для передачи из набора записей в источник данных это значение берется из указанного элемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

dwBindOptions
Параметр, позволяющий воспользоваться механизмом двойной буферизации MFC для обнаружения измененных полей набора записей. По умолчанию AFX_DAO_ENABLE_FIELD_CACHE используется двойное буферизация. Другое возможное значение — AFX_DAO_DISABLE_FIELD_CACHE. Если указать это значение, MFC не проверка в этом поле. Вы должны позвонить SetFieldDirty и SetFieldNull себя.

Примечание.

Вы можете контролировать, является ли данные двойной буферизацией по умолчанию, задав CDaoRecordset::m_bCheckCacheForDirtyFields.

Замечания

Данные сопоставляются между типом DAO_DATE в DAO и типом COleDateTime в наборе записей.

Примечание.

COleDateTime заменяет CTime и TIMESTAMP_STRUCT для этой цели в классах DAO. CTime и TIMESTAMP_STRUCT по-прежнему используются для классов доступа к данным на основе ODBC.

Пример

См . DFX_Text.

Требования

Header: afxdao.h

DFX_Double

Передает двойные плавающие данные между элементами данных поля объекта CDaoRecordset и столбцами записи в источнике данных.

Синтаксис

void AFXAPI DFX_Double(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   double& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Параметры

Pfx
Указатель на объект класса CDaoFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции.

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа берется из указанного doubleэлемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

dwBindOptions
Параметр, позволяющий воспользоваться механизмом двойной буферизации MFC для обнаружения измененных полей набора записей. По умолчанию AFX_DAO_ENABLE_FIELD_CACHE используется двойное буферизация. Другое возможное значение — AFX_DAO_DISABLE_FIELD_CACHE. Если указать это значение, MFC не проверка в этом поле. Вы должны позвонить SetFieldDirty и SetFieldNull себя.

Примечание.

Вы можете контролировать, является ли данные двойной буферизацией по умолчанию, задав CDaoRecordset::m_bCheckCacheForDirtyFields.

Замечания

Данные сопоставляются между типом DAO_R8 в DAO и типом double float в наборе записей.

Пример

См . DFX_Text.

Требования

Header: afxdao.h

DFX_Long

Передает длинные целые данные между элементами данных поля объекта CDaoRecordset и столбцами записи в источнике данных.

Синтаксис

void AFXAPI DFX_Long(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   long& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Параметры

Pfx
Указатель на объект класса CDaoFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции.

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа берется из указанного longэлемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

dwBindOptions
Параметр, позволяющий воспользоваться механизмом двойной буферизации MFC для обнаружения измененных полей набора записей. По умолчанию AFX_DAO_ENABLE_FIELD_CACHE используется двойное буферизация. Другое возможное значение — AFX_DAO_DISABLE_FIELD_CACHE. Если указать это значение, MFC не проверка в этом поле. Вы должны позвонить SetFieldDirty и SetFieldNull себя.

Примечание.

Вы можете контролировать, является ли данные двойной буферизацией по умолчанию, задав CDaoRecordset::m_bCheckCacheForDirtyFields.

Замечания

Данные сопоставляются между типом DAO_I4 в DAO и введите long в набор записей.

Пример

См . DFX_Text.

Требования

Header: afxdao.h

DFX_LongBinary

Важно отметить, что вместо этой функции рекомендуется использовать DFX_Binary .

Синтаксис

void AFXAPI DFX_LongBinary(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   CLongBinary& value,
   DWORD dwPreAllocSize = AFX_DAO_LONGBINARY_DEFAULT_SIZE,
   DWORD dwBindOptions = 0);

Параметры

Pfx
Указатель на объект класса CDaoFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции.

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа CLongBinary берется из указанного элемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

dwPreAllocSize
Платформа предварительно выделяет этот объем памяти. Если данные больше, платформа будет выделять больше места по мере необходимости. Для повышения производительности задайте для этого размера достаточно большое значение, чтобы предотвратить перемещение.

dwBindOptions
Параметр, позволяющий воспользоваться механизмом двойной буферизации MFC для обнаружения измененных полей набора записей. По умолчанию AFX_DISABLE_FIELD_CACHE не используется двойное буферизация. Другое возможное значение — AFX_DAO_ENABLE_FIELD_CACHE. Использует двойное буферизация и не требуется выполнять дополнительную работу, чтобы пометить поля грязное или NULL. По соображениям производительности и памяти избежать этого значения, если двоичные данные не являются относительно небольшими.

Примечание.

Вы можете контролировать, является ли данные двойной буферизацией по умолчанию, задав CDaoRecordset::m_bCheckCacheForDirtyFields.

Замечания

DFX_LongBinary предоставляется для обеспечения совместимости с классами ODBC MFC. Функция DFX_LongBinary передает данные большого двоичного объекта (BLOB) с помощью класса CLongBinary между элементами данных поля объекта CDaoRecordset и столбцами записи в источнике данных. Данные сопоставляются между типом DAO_BYTES в DAO и типом CLongBinary в наборе записей.

Пример

См . DFX_Text.

Требования

Header: afxdao.h

DFX_Short

Передает короткие целые данные между элементами данных поля объекта CDaoRecordset и столбцами записи в источнике данных.

Синтаксис

void AFXAPI DFX_Short(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   short& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Параметры

Pfx
Указатель на объект класса CDaoFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции.

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа берется из указанного shortэлемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

dwBindOptions
Параметр, позволяющий воспользоваться механизмом двойной буферизации MFC для обнаружения измененных полей набора записей. По умолчанию AFX_DAO_ENABLE_FIELD_CACHE используется двойное буферизация. Другое возможное значение — AFX_DAO_DISABLE_FIELD_CACHE. Если указать это значение, MFC не проверка в этом поле. Вы должны позвонить SetFieldDirty и SetFieldNull себя.

Примечание.

Вы можете контролировать, является ли данные двойной буферизацией по умолчанию, задав CDaoRecordset::m_bCheckCacheForDirtyFields.

Замечания

Данные сопоставляются между типом DAO_I2 в DAO и введите short в набор записей.

Примечание.

DFX_Short эквивалентен RFX_Int для классов на основе ODBC.

Пример

См . DFX_Text.

Требования

Header: afxdao.h

DFX_Single

Передает данные с плавающей запятой между элементами данных поля объекта CDaoRecordset и столбцами записи в источнике данных.

Синтаксис

void AFXAPI DFX_Single(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   float& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Параметры

Pfx
Указатель на объект класса CDaoFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции.

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа берется из указанного floatэлемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

dwBindOptions
Параметр, позволяющий воспользоваться механизмом двойной буферизации MFC для обнаружения измененных полей набора записей. По умолчанию AFX_DAO_ENABLE_FIELD_CACHE используется двойное буферизация. Другое возможное значение — AFX_DAO_DISABLE_FIELD_CACHE. Если указать это значение, MFC не проверка в этом поле. Вы должны позвонить SetFieldDirty и SetFieldNull себя.

Примечание.

Вы можете контролировать, является ли данные двойной буферизацией по умолчанию, задав CDaoRecordset::m_bCheckCacheForDirtyFields.

Замечания

Данные сопоставляются между типом DAO_R4 в DAO и введите float в набор записей.

Пример

См . DFX_Text.

Требования

Header: afxdao.h

DFX_Text

Передает CString данные между элементами данных поля объекта CDaoRecordset и столбцами записи в источнике данных.

Синтаксис

void AFXAPI DFX_Text(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   CString& value,
   int nPreAllocSize = AFX_DAO_TEXT_DEFAULT_SIZE,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Параметры

Pfx
Указатель на объект класса CDaoFieldExchange. Этот объект содержит сведения для определения контекста для каждого вызова функции.

szName
Имя столбца данных.

значение
Значение, хранящееся в указанном элементе данных, — значение, которое необходимо передать. Для передачи из набора записей в источник данных значение типа CString берется из указанного элемента данных. Для передачи из источника данных в набор записей значение хранится в указанном элементе данных.

nPreAllocSize
Платформа предварительно выделяет этот объем памяти. Если данные больше, платформа будет выделять больше места по мере необходимости. Для повышения производительности задайте для этого размера достаточно большое значение, чтобы предотвратить перемещение.

dwBindOptions
Параметр, позволяющий воспользоваться механизмом двойной буферизации MFC для обнаружения измененных полей набора записей. По умолчанию AFX_DAO_ENABLE_FIELD_CACHE используется двойное буферизация. Другое возможное значение — AFX_DAO_DISABLE_FIELD_CACHE. Если указать это значение, MFC не проверка в этом поле. Необходимо вызвать SetFieldDirty и SetFieldNull самостоятельно.

Примечание.

Вы можете контролировать, является ли данные двойной буферизацией по умолчанию, задав CDaoRecordset::m_bCheckCacheForDirtyFields.

Замечания

Данные сопоставляются между типом DAO_CHAR в DAO (или, если определен символ _UNICODE, DAO_WCHAR) и введите CString в наборе записей. n

Пример

В этом примере показано несколько вызовов DFX_Text. Обратите внимание также на два вызова CDaoFieldExchange::SetFieldType. Необходимо написать первый вызов SetFieldType и его вызов DFX . Второй вызов и связанные вызовы DFX обычно записываются мастером кода, создающим класс.

void CCustSet::DoFieldExchange(CDaoFieldExchange* pFX)
{
   pFX->SetFieldType(CDaoFieldExchange::param);
   DFX_Text(pFX, _T("Param"), m_strParam);
   pFX->SetFieldType(CDaoFieldExchange::outputColumn);
   DFX_Short(pFX, _T("EmployeeID"), m_EmployeeID);
   DFX_Text(pFX, _T("LastName"), m_LastName);
   DFX_Short(pFX, _T("Age"), m_Age);
   DFX_DateTime(pFX, _T("hire_date"), m_hire_date);
   DFX_DateTime(pFX, _T("termination_date"), m_termination_date);

   CDaoRecordset::DoFieldExchange(pFX);
}

Требования

Header: afxdao.h

См. также

Макросы и глобальные
CRecordset::D oFieldExchange
CRecordset::D oBulkFieldExchange
CDaoRecordset::D oFieldExchange