Функции обмена данными полями записей
В этом разделе перечислены функции обмена полями записей (RFX, Bulk RFXи DFX), используемые для автоматизации передачи данных между объектом набора записей и источником данных и выполнения других операций с данными.
При использовании классов на основе ODBC и реализации массовой выборки строк необходимо вручную переопределить функцию-член DoBulkFieldExchange
CRecordset
путем вызова функций 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, то массивы, на которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.
Примечание.
Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPos
API 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, то массивы, на которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.
Примечание.
Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPos
API 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, то массивы, на которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.
Примечание.
Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPos
API 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, массивы, которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.
Примечание.
Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPos
API 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, то массивы, которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.
Примечание.
Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPos
API 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, массивы, которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.
Примечание.
Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPos
API 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, то массивы, на которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.
Примечание.
Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPos
API 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, то массивы, которые они указывают, будут выделены автоматически, с размерами, равными размеру набора строк.
Примечание.
Обмен полями массовой записи передает данные только из источника данных в объект набора записей. Чтобы сделать набор записей обновляемым, необходимо использовать функцию SQLSetPos
API 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