共用方式為


CDaoFieldExchange 類別

支援 DAO 資料庫類別使用的 DAO 資料錄欄位交換 (DFX) 常式。

注意

DAO 可透過 Office 2013 支援。 DAO 3.6 是最終版本,且被視為過時。

語法

class CDaoFieldExchange

成員

公用方法

名稱 描述
CDaoFieldExchange::IsValidOperation 如果目前的作業適用於要更新的字段類型,則傳回非零。
CDaoFieldExchange::SetFieldType 指定記錄集數據成員的類型 , 資料行或參數 — 由所有後續呼叫 DFX 函式所表示,直到下一次呼叫 SetFieldType為止。

公用資料成員

名稱 描述
CDaoFieldExchange::m_nOperation 目前對記錄集 DoFieldExchange 成員函式的呼叫所執行的 DFX 作業。
CDaoFieldExchange::m_prs 執行 DFX 作業之記錄集的指標。

備註

CDaoFieldExchange 沒有基類。

如果您要撰寫自定義數據類型的數據交換例程,請使用這個類別;否則,您不會直接使用這個類別。 DFX 會交換 CDaoRecordset 物件的欄位資料成員與數據源上目前記錄的對應欄位之間的數據。 DFX 會從數據源和數據源雙向管理交換。 如需撰寫自定義 DFX 例程的相關信息,請參閱 Technical Note 53

注意

DAO 資料庫類別與以開放式資料庫連接性 (ODBC) 為基礎的 MFC 資料庫類別不同。 所有 DAO 資料庫類別名稱都有 「CDao」 前置詞。 您仍然可以使用 DAO 類別存取 ODBC 資料來源。 一般而言,以 DAO 為基礎的 MFC 類別比以 ODBC 為基礎的 MFC 類別更有能力。 DAO 型類別可以透過自己的資料庫引擎存取數據,包括透過 ODBC 驅動程式。 它們也支持資料定義語言 (DDL) 作業,例如透過類別新增數據表,而不必自行呼叫 DAO。

注意

DAO 記錄欄位交換 (DFX) 與 ODBC 型 MFC 資料庫類別中的記錄欄位交換 (CDatabaseCRecordsetRFX) 非常類似。 如果您瞭解 RFX,您會發現很容易使用 DFX。

CDaoFieldExchange物件提供進行 DAO 記錄欄位交換所需的內容資訊。 CDaoFieldExchange 對象支援許多作業,包括係結參數和欄位數據成員,以及在當前記錄的欄位上設定各種旗標。 DFX 作業是在 中 FieldType CDaoFieldExchangeenum定義類型的 recordset 類別數據成員上執行。 可能的 FieldType 值為:

  • CDaoFieldExchange::outputColumn 欄位數據成員。

  • CDaoFieldExchange::param 用於參數數據成員。

IsValidOperation 成員函式可供撰寫您自己的自定義 DFX 例程。 您將經常在 CDaoRecordset::D oFieldExchange 函式中使用 SetFieldType。 如需 DFX 全域函式的詳細資訊,請參閱 記錄欄位 Exchange 函式。 如需為您自己的數據類型撰寫自定義 DFX 例程的相關信息,請參閱 Technical Note 53

繼承階層架構

CDaoFieldExchange

需求

標頭: afxdao.h

CDaoFieldExchange::IsValidOperation

如果您撰寫自己的 DFX 函式,請在函式開頭呼叫 IsValidOperation ,以判斷目前的作業是否可以在特定欄位資料類型 ( CDaoFieldExchange::outputColumnCDaoFieldExchange::param) 上執行。

BOOL IsValidOperation();

傳回值

如果目前的作業適用於要更新的欄位類型,則為非零。

備註

DFX 機制所執行的一些作業僅適用於其中一個可能的欄位類型。 遵循現有 DFX 函式的模型。

如需撰寫自定義 DFX 例程的其他資訊,請參閱 技術附註 53

CDaoFieldExchange::m_nOperation

識別要對與字段交換對象相關聯的 CDaoRecordset 物件上執行的作業。

備註

CDaoFieldExchange物件會提供記錄集上數個不同 DFX 作業的內容。

注意

PSEUDONULL下列和 SetFieldNull 作業底下MarkForAddNew所述的值是用來標記 Null 欄位的值。 DAO 記錄欄位交換機制 (DFX) 會使用此值來判斷哪些欄位已明確標示為 Null。 PSEUDONULLCOleCurrency 欄位不需要 COleDateTime

的可能值為 m_nOperation

作業 描述
AddToParameterList 建置 SQL 語句的 PARAMETERS 子句。
AddToSelectList 建置 SQL 語句的 SELECT 子句。
BindField 將資料庫中的欄位系結至應用程式中的記憶體位置。
BindParam 設定記錄集查詢的參數值。
Fixup 設定欄位的 Null 狀態。
AllocCache 配置快取,用來檢查記錄集中的「骯髒」字段。
StoreField 將目前的記錄儲存至快取。
LoadField 還原記錄集中快取的數據成員變數。
FreeCache 釋放用來檢查記錄集中 「髒」欄位的快取。
SetFieldNull 將欄位的狀態設定為 Null,並將值設定為 PSEUDONULL。
MarkForAddNew 如果不是 PSEUDONULL,則標記欄位「已變更」。
MarkForEdit 如果欄位不符合快取,則標示為「已變更」。
SetDirtyField 設定標示為「已變更」的域值。
DumpField 傾印欄位的內容(僅限偵錯)。
MaxDFXOperation 用於輸入檢查。

CDaoFieldExchange::m_prs

包含與 對象相關聯的 CDaoFieldExchange CDaoRecordset 物件的指標

備註

CDaoFieldExchange::SetFieldType

在類別CDaoRecordsetDoFieldExchange覆寫中呼叫 SetFieldType

void SetFieldType(UINT nFieldType);

參數

nFieldType
在 中CDaoFieldExchange宣告的列舉 FieldType 值,可以是下列其中一項:

  • CDaoFieldExchange::outputColumn

  • CDaoFieldExchange::param

備註

一般而言,ClassWizard 會為您撰寫此呼叫。 如果您撰寫自己的函式並使用精靈來撰寫函 DoFieldExchange 式,請在欄位對應外部新增您自己的函式呼叫。 如果您不使用精靈,則不會有字段對應。 呼叫會在呼叫 DFX 函式之前,針對類別的每個欄位資料成員呼叫一個,並將欄位類型識別為 CDaoFieldExchange::outputColumn

如果您將記錄集類別參數化,則應該針對所有參數數據成員新增 DFX 呼叫(在欄位對應之外),並在這些呼叫前面加上對 SetFieldType的呼叫。 傳遞值 CDaoFieldExchange::param。 (您可以改用 CDaoQueryDef 並設定其參數值。

一般而言,與欄位數據成員或參數數據成員相關聯的每個 DFX 函數呼叫群組,前面都必須有對 SetFieldType的呼叫。 每個SetFieldType呼叫的 nFieldType 參數會識別 DFX 函式呼叫所代表的數據成員類型,而該呼叫後面接著SetFieldType

另請參閱

階層架構圖表
CDaoRecordset 類別