資料錄欄位交換函式

注意

Microsoft 基礎類別(MFC)函式庫持續被支援。 不過,我們不再新增功能或更新文件。

本主題列出資料錄欄位交換 (RFX、 Bulk RFX和 DFX) 函式,您可以使用這些函式將資料錄集物件與其資料來源之間的資料傳輸自動化,並對資料執行其他作業。

如果您使用 ODBC 類別並已實作大量資料列擷取,您必須針對對應至資料來源資料行的每個資料成員呼叫 Bulk RFX 函式,以手動方式覆寫 DoBulkFieldExchange 的 CRecordset 成員函式。

如果您尚未在 ODBC 類別中實作大量數據列擷取,或者如果您使用 DAO 型類別(已過時),則 ClassWizard 會針對記錄集中的每個欄位數據成員呼叫 RFX 函式或 DFX 函數(適用於 DAO 類別),來覆寫 DoFieldExchange 或 CRecordset 的成員CDaoRecordset函式。

每次架構呼叫 DoFieldExchange 或 DoBulkFieldExchange時,資料錄欄位交換函式都會傳輸資料。 每個函式會傳輸特定資料類型。

如需這些函式使用方式的詳細資訊,請參閱 資料錄欄位交換:RFX 的運作方式 (ODBC)一文。 如需大量資料列擷取的詳細資訊,請參閱 資料錄集:擷取大量資料錄 (ODBC)一文。

針對您動態繫結的資料行,您也可以自行呼叫 RFX 或 DFX 函式,如 資料錄集:動態地繫結資料行 (ODBC)一文中所述。 此外,您可以撰寫自己的自訂 RFX 或 DFX 常式,如技術提示 43 (適用於 ODBC) 和技術提示 53 (適用於 DAO) 中所述。

如需 RFX 和大量 RFX 函式出現在 和 DoFieldExchange 函式中的DoBulkFieldExchange範例,請參閱 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 傳輸物件類別為 CLongBinary 的二進位大型物件 (BLOB) 資料。
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 傳輸物件類別為 CLongBinary 的二進位大型物件 (BLOB) 資料。 若是 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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,BOOL 類型的值會取自指定的數據成員。 從資料來源傳輸至資料錄集時,值會儲存在指定的資料成員中。

範例

請參閱 RFX_Text。

需求

標頭: afxdb.h

RFX_Byte

在物件欄位資料成員與 ODBC 類型數據源上記錄的數據行之間傳送單一 CRecordset 位元組SQL_TINYINT。

語法

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

參數

pFX
CFieldExchange 類別物件的指標。 這個物件包含定義函式的每個呼叫內容的資訊。 如需物件可指定之作業CFieldExchange的詳細資訊,請參閱記錄欄位 Exchange:RFX 的運作方式一文。

szName
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,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
資料行的名稱。

value
儲存在指定數據成員中的值;要傳送的值。 函式的各種版本會採用不同的資料類型作為值:

函式的第一個版本會取得 CTime 對象的參考。 對於從記錄集到數據源的傳輸,此值取自指定的數據成員。 從資料來源傳輸至資料錄集時,值會儲存在指定的資料成員中。

函式的第二個版本會採用 結構的 TIMESTAMP_STRUCT 參考。 您必須在呼叫之前自行設定此結構。 此版本不提供對話資料交換 (DDX) 支援或程式代碼精靈支援。 第三個版本的函式的運作方式與第一個 版本類似,不同之處在於它會參考 COleDateTime 物件。

備註

函 CTime 式的版本會強加某些中繼處理的額外負荷,而且範圍有些有限。 如果您發現其中一個因素太限制,請使用函式的第二個版本。 但請注意,它缺少程式碼精靈和 DDX 支援,以及您自行設定結構的需求。

範例

請參閱 RFX_Text。

需求

標頭: afxdb.h

RFX_Double

在物件的欄位資料成員與 ODBC 類型資料來源上的記錄資料行之間傳輸CRecordset數數據SQL_DOUBLE。

語法

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

參數

pFX
CFieldExchange 類別物件的指標。 這個物件包含定義函式的每個呼叫內容的資訊。 如需物件可指定之作業CFieldExchange的詳細資訊,請參閱記錄欄位 Exchange:RFX 的運作方式一文。

szName
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,類型 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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,類型 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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,類型 long為的值會取自指定的數據成員。 從資料來源傳輸至資料錄集時,值會儲存在指定的資料成員中。

範例

請參閱 RFX_Text。

需求

標頭: afxdb.h

RFX_LongBinary

使用類別 CLongBinary 在物件欄位資料成員 CRecordset 和 ODBC 類型之數據源上的記錄資料行之間傳輸二進位大型物件 (BLOB) 資料SQL_LONGVARBINARY或SQL_LONGVARCHAR。

語法

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

參數

pFX
CFieldExchange 類別物件的指標。 這個物件包含定義函式的每個呼叫內容的資訊。 如需物件可指定之作業CFieldExchange的詳細資訊,請參閱記錄欄位 Exchange:RFX 的運作方式一文。

szName
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,類型 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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,類型 float為的值會取自指定的數據成員。 從資料來源傳輸至資料錄集時,值會儲存在指定的資料成員中。

範例

請參閱 RFX_Text。

需求

標頭: afxdb.h

RFX_Text

在 ODBC 類型SQL_LONGVARCHAR、SQL_CHAR、SQL_VARCHAR、SQL_DECIMAL或SQL_NUMERIC的數據源上,在對象和數據行的欄位數據成員CString之間傳輸CRecordset數據。

語法

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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,類型 CString為的值會取自指定的數據成員。 從資料來源傳輸至資料錄集時,值會儲存在指定的資料成員中。

nMaxLength
要傳輸之字串或陣列的最大允許長度。 nMaxLength 的預設值為 255。 法律值為 1 到 INT_MAX)。 架構會為數據配置這個空間量。 為了獲得最佳效能,請傳遞足夠大的值,以容納您預期的最大數據項。

nColumnType
主要用於參數。 整數,表示參數的數據類型。 此類型是表單 SQL_XXX的 ODBC 資料類型。

nScale
指定 ODBC 類型值SQL_DECIMAL或SQL_NUMERIC的縮放比例。 nScale 只有在設定參數值時才有用。 如需詳細資訊,請參閱 ODBC SDK 程式設計人員參考附錄 D 中的<精確度、小數位數、長度和顯示大小>主題。

備註

這些類型之數據源中的數據會對應至記錄集中的和來源 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所指向陣列中每個值的長度儲存為位元組。 請注意,如果對應的數據項包含 Null 值,則會儲存SQL_NULL_DATA值。 如需詳細資訊,請參閱 ODBC SDK 程式設計人員參考SQLBindColODBC API 函式。

nMaxLength
prgByteVals 所指向之陣列中儲存之值的最大允許長度。 為了確保不會截斷數據,請傳遞足夠大的值,以容納您預期的最大數據項。

備註

數據源數據行可以有 ODBC 類型的SQL_BINARY、SQL_VARBINARY或SQL_LONGVARBINARY。 記錄集必須定義 BYTE 類型指標的欄位資料成員。

如果您將prgByteVals和prgLengths初始化為NULL,則會自動配置它們指向的數位,大小等於數據列集大小。

注意

大量記錄欄位交換只會將數據從數據源傳輸到 recordset 物件。 若要讓您的記錄集更新,您必須使用 ODBC API 函式 SQLSetPos。

如需詳細資訊,請參閱記錄集:大量擷取記錄和記錄欄位交換(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所指向數位中每個值的長度以位元組為單位來儲存。 請注意,如果對應的數據項包含 Null 值,則會儲存SQL_NULL_DATA值。 如需詳細資訊,請參閱 ODBC SDK 程式設計人員參考SQLBindColODBC API 函式。

備註

數據源數據行的 ODBC 類型必須是 SQL_BIT。 記錄集必須定義 BOOL 類型指標的欄位資料成員。

如果您將prgBoolVals和prgLengths初始化為NULL,則會自動配置它們指向的陣列,大小等於數據列集大小。

注意

大量記錄欄位交換只會將數據從數據源傳輸到 recordset 物件。 若要讓記錄集更新,您必須使用 ODBC API 函式 SQLSetPos。

如需詳細資訊,請參閱記錄集:大量擷取記錄和記錄欄位交換(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所指向陣列中每個值的長度儲存為位元組。 請注意,如果對應的數據項包含 Null 值,則會儲存SQL_NULL_DATA值。 如需詳細資訊,請參閱 ODBC SDK 程式設計人員參考SQLBindColODBC API 函式。

備註

數據源數據行的 ODBC 類型必須是 SQL_TINYINT。 記錄集必須定義 BYTE 類型指標的欄位資料成員。

如果您將prgByteVals和prgLengths初始化為NULL,則會自動配置它們指向的數位,大小等於數據列集大小。

注意

大量記錄欄位交換只會將數據從數據源傳輸到 recordset 物件。 若要讓記錄集更新,您必須使用 ODBC API 函式 SQLSetPos。

如需詳細資訊,請參閱記錄集:大量擷取記錄和記錄欄位交換(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數據類型的詳細資訊,請參閱 ODBC SDK 程式設計人員參考附錄 D 中的主題。

prgLengths
長整數陣列的指標。 此陣列會將prgTSVals所指向陣列中每個值的長度以位元組為單位來儲存。 請注意,如果對應的數據項包含 Null 值,則會儲存SQL_NULL_DATA值。 如需詳細資訊,請參閱 ODBC SDK 程式設計人員參考SQLBindColODBC API 函式。

備註

數據源數據行可以有 ODBC 類型的SQL_DATE、SQL_TIME或SQL_TIMESTAMP。 記錄集必須定義類型指標的欄位數據成員,才能TIMESTAMP_STRUCT。

如果您將prgTSVals和prgLengths初始化為NULL,則會自動配置它們指向的陣列,大小等於數據列集大小。

注意

大量記錄欄位交換只會將數據從數據源傳輸到 recordset 物件。 若要讓記錄集更新,您必須使用 ODBC API 函式 SQLSetPos。

如需詳細資訊,請參閱記錄集:大量擷取記錄和記錄欄位交換(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所指向陣列中每個值的長度儲存為位元組。 請注意,如果對應的數據項包含 Null 值,則會儲存SQL_NULL_DATA值。 如需詳細資訊,請參閱 ODBC SDK 程式設計人員參考SQLBindColODBC API 函式。

備註

數據源數據行的 ODBC 類型必須是 SQL_DOUBLE。 記錄集必須定義 類型指標 double的欄位數據成員。

如果您將prgDblVals和prgLengths初始化為NULL,則會自動配置它們指向的陣列,大小等於數據列集大小。

注意

大量記錄欄位交換只會將數據從數據源傳輸到 recordset 物件。 若要讓記錄集更新,您必須使用 ODBC API 函式 SQLSetPos。

如需詳細資訊,請參閱記錄集:大量擷取記錄和記錄欄位交換(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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,類型 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所指向陣列中每個值的長度以位元組為單位來儲存。 請注意,如果對應的數據項包含 Null 值,則會儲存SQL_NULL_DATA值。 如需詳細資訊,請參閱 ODBC SDK 程式設計人員參考SQLBindColODBC API 函式。

備註

數據源數據行的 ODBC 類型必須是 SQL_INTEGER。 記錄集必須定義 類型指標 long的欄位數據成員。

如果您將prgLongVals和prgLengths初始化為NULL,則會自動配置它們指向的陣列,大小等於數據列集大小。

注意

大量記錄欄位交換只會將數據從數據源傳輸到 recordset 物件。 若要讓記錄集更新,您必須使用 ODBC API 函式 SQLSetPos。

如需詳細資訊,請參閱記錄集:大量擷取記錄和記錄欄位交換(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所指向陣列中每個值的長度以位元組為單位來儲存。 請注意,如果對應的數據項包含 Null 值,則會儲存SQL_NULL_DATA值。 如需詳細資訊,請參閱 ODBC SDK 程式設計人員參考SQLBindColODBC API 函式。

備註

數據源數據行的 ODBC 類型必須是 SQL_REAL。 記錄集必須定義 類型指標 float的欄位數據成員。

如果您將prgFltVals和prgLengths初始化為NULL,則會自動配置它們指向的數位,大小等於數據列集大小。

注意

大量記錄欄位交換只會將數據從數據源傳輸到 recordset 物件。 若要讓記錄集更新,您必須使用 ODBC API 函式 SQLSetPos。

如需詳細資訊,請參閱記錄集:大量擷取記錄和記錄欄位交換(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 版本,這些值不可以是 Unicode。

prgLengths
長整數陣列的指標。 此陣列會將prgStrVals所指向陣列中每個值的長度儲存為位元組。 此長度會排除 Null 終止字元。 請注意,如果對應的數據項包含 Null 值,則會儲存SQL_NULL_DATA值。 如需詳細資訊,請參閱 ODBC SDK 程式設計人員參考SQLBindColODBC API 函式。

nMaxLength
prgStrVals 所指向數位中儲存之值的最大允許長度,包括 Null 終止字元。 為了確保不會截斷數據,請傳遞足夠大的值,以容納您預期的最大數據項。

備註

數據源數據行可以有 ODBC 類型的SQL_LONGVARCHAR、SQL_CHAR、SQL_VARCHAR、SQL_DECIMAL或SQL_NUMERIC。 記錄集必須定義 LPSTR 類型的欄位資料成員。

如果您將prgStrVals和prgLengths初始化為NULL,則會自動配置它們指向的陣列,大小等於數據列集大小。

注意

大量記錄欄位交換只會將數據從數據源傳輸到 recordset 物件。 若要讓記錄集更新,您必須使用 ODBC API 函式 SQLSetPos。

如需詳細資訊,請參閱記錄集:大量擷取記錄和記錄欄位交換(RFX)一文。

範例

您必須在覆寫中 DoBulkFieldExchange 手動撰寫呼叫。 此範例示範對 RFX_Text_Bulk的呼叫,以及對 RFX_Long_Bulk的呼叫,以進行數據傳輸。 這些呼叫前面會先呼叫 CFieldExchange::SetFieldType。 請注意,針對參數,您必須呼叫 RFX 函式,而不是大量 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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,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 中的類型DAO_BYTES和記錄集中的 CByteArray 類型之間對應。

範例

請參閱 DFX_Text。

需求

標頭: 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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,BOOL 類型的值會取自指定的數據成員。 從資料來源傳輸至資料錄集時,值會儲存在指定的資料成員中。

dwBindOptions
可讓您利用 MFC 的雙重緩衝機制來偵測已變更的資料錄集欄位的選項。 默認AFX_DAO_ENABLE_FIELD_CACHE會使用雙重緩衝。 另一個可能的值是AFX_DAO_DISABLE_FIELD_CACHE。 如果您指定此值,MFC 就不會檢查此欄位。 您必須自行呼叫 SetFieldDirty 和 SetFieldNull。

注意

您可以藉由設定 CDaoRecordset::m_bCheckCacheForDirtyFields,來控制數據是否預設為雙重緩衝。

備註

數據會在 DAO 中的類型DAO_BOOL和記錄集中的 BOOL 類型之間對應。

範例

請參閱 DFX_Text。

需求

標頭: 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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,BYTE 類型的值會取自指定的數據成員。 從資料來源傳輸至資料錄集時,值會儲存在指定的資料成員中。

dwBindOptions
可讓您利用 MFC 的雙重緩衝機制來偵測已變更的資料錄集欄位的選項。 默認AFX_DAO_ENABLE_FIELD_CACHE會使用雙重緩衝。 另一個可能的值是AFX_DAO_DISABLE_FIELD_CACHE。 如果您指定此值,MFC 就不會檢查此欄位。 您必須自行呼叫 SetFieldDirty 和 SetFieldNull。

注意

您可以藉由設定 CDaoRecordset::m_bCheckCacheForDirtyFields,來控制數據是否預設為雙重緩衝。

備註

數據會在 DAO 中的類型DAO_BYTES和記錄集中的 BYTE 類型之間對應。

範例

請參閱 DFX_Text。

需求

標頭: 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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,此值取自 COleCurrency 類型的指定數據成員。 從資料來源傳輸至資料錄集時,值會儲存在指定的資料成員中。

dwBindOptions
可讓您利用 MFC 的雙重緩衝機制來偵測已變更的資料錄集欄位的選項。 默認AFX_DAO_ENABLE_FIELD_CACHE會使用雙重緩衝。 另一個可能的值是AFX_DAO_DISABLE_FIELD_CACHE。 如果您指定此值,MFC 就不會檢查此欄位。 您必須自行呼叫 SetFieldDirty 和 SetFieldNull。

注意

您可以藉由設定 CDaoRecordset::m_bCheckCacheForDirtyFields,來控制數據是否預設為雙重緩衝。

備註

數據會在 DAO 中的類型DAO_CURRENCY和記錄集中的 COleCurrency 類型之間對應。

範例

請參閱 DFX_Text。

需求

標頭: 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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 函式會採用 COleDateTime 物件的參考。 對於從記錄集到數據源的傳輸,此值取自指定的數據成員。 從資料來源傳輸至資料錄集時,值會儲存在指定的資料成員中。

dwBindOptions
可讓您利用 MFC 的雙重緩衝機制來偵測已變更的資料錄集欄位的選項。 默認AFX_DAO_ENABLE_FIELD_CACHE會使用雙重緩衝。 另一個可能的值是AFX_DAO_DISABLE_FIELD_CACHE。 如果您指定此值,MFC 就不會檢查此欄位。 您必須自行呼叫 SetFieldDirty 和 SetFieldNull。

注意

您可以藉由設定 CDaoRecordset::m_bCheckCacheForDirtyFields,來控制數據是否預設為雙重緩衝。

備註

數據會在 DAO 中的類型DAO_DATE與記錄集中的 COleDateTime 類型之間對應。

注意

COleDateTime 會在 DAO 類別中取代 CTime 和 TIMESTAMP_STRUCT。 CTime 和 TIMESTAMP_STRUCT仍用於 ODBC 型數據存取類別。

範例

請參閱 DFX_Text。

需求

標頭: 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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,類型 double為的值會取自指定的數據成員。 從資料來源傳輸至資料錄集時,值會儲存在指定的資料成員中。

dwBindOptions
可讓您利用 MFC 的雙重緩衝機制來偵測已變更的資料錄集欄位的選項。 默認AFX_DAO_ENABLE_FIELD_CACHE會使用雙重緩衝。 另一個可能的值是AFX_DAO_DISABLE_FIELD_CACHE。 如果您指定此值,MFC 就不會檢查此欄位。 您必須自行呼叫 SetFieldDirty 和 SetFieldNull。

注意

您可以藉由設定 CDaoRecordset::m_bCheckCacheForDirtyFields,來控制數據是否預設為雙重緩衝。

備註

數據會在 DAO 中的類型DAO_R8和記錄集中的類型 double float 之間對應。

範例

請參閱 DFX_Text。

需求

標頭: 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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,類型 long為的值會取自指定的數據成員。 從資料來源傳輸至資料錄集時,值會儲存在指定的資料成員中。

dwBindOptions
可讓您利用 MFC 的雙重緩衝機制來偵測已變更的資料錄集欄位的選項。 默認AFX_DAO_ENABLE_FIELD_CACHE會使用雙重緩衝。 另一個可能的值是AFX_DAO_DISABLE_FIELD_CACHE。 如果您指定此值,MFC 就不會檢查此欄位。 您必須自行呼叫 SetFieldDirty 和 SetFieldNull。

注意

您可以藉由設定 CDaoRecordset::m_bCheckCacheForDirtyFields,來控制數據是否預設為雙重緩衝。

備註

數據會在 DAO 中的類型DAO_I4和記錄集中的類型 long 之間對應。

範例

請參閱 DFX_Text。

需求

標頭: 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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,CLongBinary 類型的值會取自指定的數據成員。 從資料來源傳輸至資料錄集時,值會儲存在指定的資料成員中。

dwPreAllocSize
架構會預先配置此數量的記憶體。 如果您的數據較大,架構會視需要配置更多空間。 為了提升效能,請將這個大小設定為足以防止重新配置的值。

dwBindOptions
可讓您利用 MFC 的雙重緩衝機制來偵測已變更的資料錄集欄位的選項。 默認AFX_DISABLE_FIELD_CACHE不會使用雙重緩衝。 另一個可能的值是AFX_DAO_ENABLE_FIELD_CACHE。 使用雙緩衝處理,您不需要執行額外的工作來標記字段已變更或 Null。 基於效能和記憶體考慮,除非您的二進位數據相對較小,否則請避免此值。

注意

您可以藉由設定 CDaoRecordset::m_bCheckCacheForDirtyFields,來控制數據是否預設為雙重緩衝。

備註

DFX_LongBinary 提供 來與 MFC ODBC 類別相容。 函式會使用類別DFX_LongBinary,在 CLongBinary 物件的欄位資料成員和資料來源上的記錄資料行之間,傳送二進位大型物件(BLOB)資料。 數據會在 DAO 中的類型DAO_BYTES與記錄集中的 CLongBinary 類型之間對應。

範例

請參閱 DFX_Text。

需求

標頭: 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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,類型 short為的值會取自指定的數據成員。 從資料來源傳輸至資料錄集時,值會儲存在指定的資料成員中。

dwBindOptions
可讓您利用 MFC 的雙重緩衝機制來偵測已變更的資料錄集欄位的選項。 默認AFX_DAO_ENABLE_FIELD_CACHE會使用雙重緩衝。 另一個可能的值是AFX_DAO_DISABLE_FIELD_CACHE。 如果您指定此值,MFC 就不會檢查此欄位。 您必須自行呼叫 SetFieldDirty 和 SetFieldNull。

注意

您可以藉由設定 CDaoRecordset::m_bCheckCacheForDirtyFields,來控制數據是否預設為雙重緩衝。

備註

數據會在 DAO 中的類型DAO_I2和記錄集中的類型 short 之間對應。

注意

DFX_Short 相當於 ODBC 型類別RFX_Int 。

範例

請參閱 DFX_Text。

需求

標頭: 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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,類型 float為的值會取自指定的數據成員。 從資料來源傳輸至資料錄集時,值會儲存在指定的資料成員中。

dwBindOptions
可讓您利用 MFC 的雙重緩衝機制來偵測已變更的資料錄集欄位的選項。 默認AFX_DAO_ENABLE_FIELD_CACHE會使用雙重緩衝。 另一個可能的值是AFX_DAO_DISABLE_FIELD_CACHE。 如果您指定此值,MFC 就不會檢查此欄位。 您必須自行呼叫 SetFieldDirty 和 SetFieldNull。

注意

您可以藉由設定 CDaoRecordset::m_bCheckCacheForDirtyFields,來控制數據是否預設為雙重緩衝。

備註

數據會在 DAO 中的類型DAO_R4和記錄集中的類型 float 之間對應。

範例

請參閱 DFX_Text。

需求

標頭: afxdao.h

DFX_Text

在 CDaoRecordsetCString與數據源上記錄的數據行之間傳輸數據。

語法

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
資料行的名稱。

value
儲存在指定資料成員中的值,即要傳輸的值。 對於從記錄集到數據源的傳輸,CString 類型的值會取自指定的數據成員。 從資料來源傳輸至資料錄集時,值會儲存在指定的資料成員中。

nPreAllocSize
架構會預先配置此數量的記憶體。 如果您的數據較大,架構會視需要配置更多空間。 為了提升效能,請將這個大小設定為足以防止重新配置的值。

dwBindOptions
可讓您利用 MFC 的雙重緩衝機制來偵測已變更的資料錄集欄位的選項。 默認AFX_DAO_ENABLE_FIELD_CACHE會使用雙重緩衝。 另一個可能的值是AFX_DAO_DISABLE_FIELD_CACHE。 如果您指定此值,MFC 就不會檢查此欄位。 您必須自行呼叫 SetFieldDirty 和 SetFieldNull 。

注意

您可以藉由設定 CDaoRecordset::m_bCheckCacheForDirtyFields,來控制數據是否預設為雙重緩衝。

備註

數據會在 DAO 中的類型DAO_CHAR之間對應(或者,如果已定義符號_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);
}

需求

標頭: afxdao.h

另請參閱

巨集和全域
CRecordset::DoFieldExchange
CRecordset::DoBulkFieldExchange
CDaoRecordset::DoFieldExchange