共用方式為


CFieldExchange 類別

支援資料庫類別使用的資料錄欄位交換 (RFX) 和大量資料錄欄位交換 (Bulk RFX) 常式。

語法

class CFieldExchange

成員

公用方法

名稱 描述
CFieldExchange::IsFieldType 如果目前的作業適用于要更新的欄位類型,則傳回非零。
CFieldExchange::SetFieldType 指定記錄集資料成員的型別 ,資料行或參數,由下列所有 RFX 函式的呼叫表示,直到下一次呼叫 SetFieldType 為止。

備註

CFieldExchange 沒有基類。

如果您要為自訂資料類型撰寫資料交換常式,或是在實作大量資料列擷取時,請使用這個類別;否則,您不會直接使用這個類別。 RFX 和大量 RFX 會交換記錄集物件的欄位資料成員與資料來源上目前記錄的對應欄位之間的資料。

注意

如果您使用資料存取物件 (DAO) 類別,而不是 Open Database 連線ivity (ODBC) 類別,請改用 CDaoFieldExchange 類別 。 如需詳細資訊,請參閱概觀:資料庫程式設計 一文

CFieldExchange物件提供要進行記錄欄位交換或大量記錄欄位結算所需的內容資訊。 CFieldExchange 物件支援許多作業,包括系結參數和欄位資料成員,以及在目前記錄的欄位上設定各種旗標。 RFX 和大量 RFX 作業是在 中 FieldType CFieldExchangeenum 定義之類型的 recordset 類別資料成員上執行。 可能的 FieldType 值為:

  • CFieldExchange::outputColumn 欄位資料成員。

  • CFieldExchange::inputParamCFieldExchange::param 輸入參數資料成員。

  • CFieldExchange::outputParam 表示輸出參數資料成員。

  • CFieldExchange::inoutParam 用於輸入/輸出參數資料成員。

大部分類別的成員函式和資料成員都提供來撰寫您自己的自訂 RFX 常式。 您將經常使用 SetFieldType 。 如需詳細資訊,請參閱 Record Field Exchange (RFX) Recordset (ODBC) 文章 。 如需大量資料列擷取的相關資訊,請參閱記錄集:大量擷取記錄一文 (ODBC)。 如需 RFX 和大量 RFX 全域函式的詳細資訊,請參閱 本參考的 MFC 宏和全域一節中的記錄欄位 Exchange 函 式。

繼承階層架構

CFieldExchange

需求

標頭: afxdb.h

CFieldExchange::IsFieldType

如果您撰寫自己的 RFX 函式,請在函式開頭呼叫 IsFieldType ,以判斷目前的作業是否可以在特定欄位或參數資料類型上執行(、 CFieldExchange::inputParamCFieldExchange::outputColumn 、、 CFieldExchange::paramCFieldExchange::outputParamCFieldExchange::inoutParam )。

BOOL IsFieldType(UINT* pnField);

參數

pnField
這個參數會傳回欄位或參數資料成員的序號。 此數位會對應至 CRecordset::D oFieldExchange 或 CRecordset::D oBulkFieldExchange 函式中的資料 成員順序。

傳回值

如果目前的作業可以在目前欄位或參數類型上執行,則為非零。

備註

遵循現有 RFX 函式的模型。

CFieldExchange::SetFieldType

您需要在記錄集類別的 DoFieldExchange 或 DoBulkFieldExchange 覆寫中呼叫 SetFieldType

void SetFieldType(UINT nFieldType);

參數

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

  • CFieldExchange::outputColumn

  • CFieldExchange::inputParam

  • CFieldExchange::param

  • CFieldExchange::outputParam

  • CFieldExchange::inoutParam

備註

針對欄位資料成員,您必須使用 的參數 CFieldExchange::outputColumn 呼叫 SetFieldType ,後面接著呼叫 RFX 或大量 RFX 函式。 如果您尚未實作大量資料列擷取,ClassWizard 會將此 SetFieldType 呼叫放在 的 DoFieldExchange 欄位對應區段中。

如果您將記錄集類別參數化,則必須在任何欄位對應區段外再次呼叫 SetFieldType ,後面接著所有參數資料成員的 RFX 呼叫。 每個參數資料成員類型都必須有自己的 SetFieldType 呼叫。 下表區分您可以傳遞給 SetFieldType 的不同值,以代表類別的參數資料成員:

SetFieldType 參數值 參數資料成員的類型
CFieldExchange::inputParam 輸入參數。 傳遞至記錄集查詢或預存程式的值。
CFieldExchange::param CFieldExchange::inputParam 相同。
CFieldExchange::outputParam 輸出參數。 記錄集預存程式的傳回值。
CFieldExchange::inoutParam 輸入/輸出參數。 傳入並從記錄集預存程式傳回的值。

一般而言,與欄位資料成員或參數資料成員相關聯的 RFX 函式呼叫每個群組之前,都必須先呼叫 SetFieldType每個 SetFieldType 呼叫的 nFieldType 參數都會識別呼叫後 SetFieldType RFX 函式呼叫所代表的資料成員類型。

如需處理輸出和輸入/輸出參數的詳細資訊,請參閱 CRecordset 成員函式 FlushResultSet 。 如需 RFX 和大量 RFX 函式的詳細資訊,請參閱記錄欄位 Exchange 函式 主題 。 如需大量資料列擷取的相關資訊,請參閱記錄集:大量擷取記錄一文 (ODBC)。

範例

此範例顯示數個對 RFX 函式的呼叫,以及對 SetFieldType 的隨附呼叫。 請注意, SetFieldType 是透過 pFX 物件的指標呼叫 CFieldExchange

void CSections::DoFieldExchange(CFieldExchange *pFX)
{
   pFX->SetFieldType(CFieldExchange::outputColumn);
   RFX_Text(pFX, _T("[CourseID]"), m_CourseID);
   RFX_Text(pFX, _T("[InstructorID]"), m_InstructorID);
   RFX_Text(pFX, _T("[RoomNo]"), m_RoomNo);
   RFX_Text(pFX, _T("[Schedule]"), m_Schedule);

   // output parameter
   pFX->SetFieldType(CFieldExchange::outputParam);
   RFX_Long(pFX, _T("Instructor_Count"), m_nCountParam);

   // input parameter
   pFX->SetFieldType(CFieldExchange::inputParam);
   RFX_Text(pFX, _T("Department_Name"), m_strNameParam);
}

另請參閱

階層架構圖表
CRecordset 類別