共用方式為


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

注意

DAO 記錄欄位交換 (DFX) 與 ODBC 型 MFC 資料庫類別中的記錄欄位交換 ( CDatabaseCRecordset RFX) 非常類似。 如果您瞭解 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 作業的內容。

注意

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

的可能值為 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 類別