다음을 통해 공유


CRecordset::DoFieldExchange

(양방향)의 데이터를 데이터 소스에서 해당 레코드와 레코드 집합의 필드 데이터 멤버 간에 교환 하기 위해 호출 됩니다.Implements 필드 교환 RFX ()를 기록합니다.

virtual void DoFieldExchange( 
   CFieldExchange* pFX  
);

매개 변수

  • pFX
    CFieldExchange 개체에 대한 포인터.이미 프레임 워크 필드 exchange 작업에 대 한 컨텍스트를 지정 하려면이 개체를 설정 해야 합니다.

설명

대량 행 페치가 구현 되 면 프레임 워크는 자동으로 데이터 원본에서 현재 레코드의 해당 열 및 레코드 집합 개체의 필드 데이터 멤버 간에 데이터를 교환 하려면이 멤버 함수를 호출 합니다.DoFieldExchange또한 있는 경우 매개 변수 자리 표시자 SQL 문 문자열을 레코드 집합의 선택에 대 한 매개 변수 데이터 멤버를 바인딩합니다.

대량 행 페치를 구현한 경우, 프레임 워크에서 호출 DoBulkFieldExchange.대량 행 페치를 구현 하려면 사용자 지정 해야는 CRecordset::useMultiRowFetch 옵션의의 dwOptions 매개 변수는 열려 멤버 함수.

[!참고]

DoFieldExchange파생 된 클래스 에서만 사용 하는 경우 사용할 수 CRecordset.Recordset 개체에서 직접 만든 경우 CRecordset를 호출 해야는 GetFieldValue 멤버 함수는 데이터를 검색 합니다.

Exchange의 레코드 필드 교환 (RFX) 라고 하는 필드 데이터를 양방향으로 모두 작동 합니다: recordset 개체를 데이터 소스에서 레코드와 레코드 집합 개체의 필드 데이터 멤버는 데이터 소스에서 레코드의 필드에서.

작업만 해야 정상적으로 수행을 구현 하는 DoFieldExchange 파생된 레코드 집합에 대 한 클래스 클래스 클래스 마법사를 만들 필드 데이터 멤버 이름과 데이터 형식을 지정 하는 것입니다.또한 어떤 클래스 마법사 매개 변수 데이터 멤버를 지정 하거나 동적으로 바인딩할 열을 처리 하기 위해 작성에 코드를 추가할 수 있습니다.자세한 내용은 레코드 집합: 동적으로 바인딩 데이터 열 (ODBC).

클래스 마법사와 파생된 레코드 집합 클래스를 선언 하는 경우 마법사의 재정의 씁니다 DoFieldExchange 으로 유사한 다음 예제:

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);
}

RFX 함수에 대 한 자세한 내용을 보려면 레코드 필드 교환 함수.

자세한 예제 및 정보에 대 한 DoFieldExchange, 문서를 참조 하십시오. 레코드 필드 교환: RFX 작동 방식.RFX에 대 한 일반적인 내용은 문서 레코드 필드 교환.

예외

이 메서드가 형식의 예외를 throw 할 수 있습니다 CDBException *.

요구 사항

헤더: afxdb.h

참고 항목

참조

CRecordset 클래스

계층 구조 차트

CRecordset::m_nFields

CRecordset::m_nParams

CRecordset::DoBulkFieldExchange

CRecordset::GetFieldValue

CFieldExchange 클래스

기타 리소스

레코드 필드 교환 함수