CFieldExchange 클래스

데이터베이스 클래스에서 사용되는 RFX(레코드 필드 교환) 및 대량 RFX(레코드 필드 교환) 루틴을 지원합니다.

구문

class CFieldExchange

멤버

공용 메서드

이름 설명
CFieldExchange::IsFieldType 현재 작업이 업데이트되는 필드 형식에 적합한 경우 0이 아닌 값을 반환합니다.
CFieldExchange::SetFieldType 다음 호출 SetFieldType까지 RFX 함수에 대한 모든 호출로 표시되는 레코드 집합 데이터 멤버의 형식(열 또는 매개 변수)을 지정합니다.

설명

CFieldExchange 에는 기본 클래스가 없습니다.

사용자 지정 데이터 형식에 대한 데이터 교환 루틴을 작성하거나 대량 행 페치를 구현하는 경우 이 클래스를 사용합니다. 그렇지 않으면 이 클래스를 직접 사용하지 않습니다. RFX 및 Bulk RFX는 레코드 집합 개체의 필드 데이터 멤버와 데이터 원본에 있는 현재 레코드의 해당 필드 간에 데이터를 교환합니다.

참고 항목

ODBC(Open Database 커넥트ivity) 클래스 대신 DAO(Data Access Objects) 클래스를 사용하는 경우 CDaoFieldExchange 클래스를 대신 사용합니다. 자세한 내용은 개요:데이터베이스 프로그래밍 문서를 참조하세요.

개체는 CFieldExchange 레코드 필드 교환 또는 대량 레코드 필드 교환이 수행되는 데 필요한 컨텍스트 정보를 제공합니다. CFieldExchange 개체는 바인딩 매개 변수 및 필드 데이터 멤버를 비롯한 다양한 작업을 지원하고 현재 레코드의 필드에 다양한 플래그를 설정합니다. RFX 및 대량 RFX 작업은 FieldType에서 정의enum한 형식의 레코드 집합 클래스 데이터 멤버에서 수행됩니다CFieldExchange. 가능한 FieldType 값은 다음과 같습니다.

  • CFieldExchange::outputColumn 필드 데이터 멤버에 대한 입니다.

  • CFieldExchange::inputParam 또는 CFieldExchange::param 입력 매개 변수 데이터 멤버의 경우

  • CFieldExchange::outputParam 출력 매개 변수 데이터 멤버에 대한 입니다.

  • CFieldExchange::inoutParam 입력/출력 매개 변수 데이터 멤버에 대한 입니다.

클래스의 멤버 함수 및 데이터 멤버는 대부분 사용자 지정 RFX 루틴을 작성하기 위해 제공됩니다. 자주 사용합니다 SetFieldType . 자세한 내용은 RFX(레코드 필드 교환) 및 레코드 집합(ODBC) 문서를 참조하세요. 대량 행 가져오기에 대한 자세한 내용은 Recordset: 대량으로 레코드 가져오기(ODBC) 문서를 참조하세요. RFX 및 Bulk RFX 전역 함수 에 대한 자세한 내용은 이 참조의 MFC 매크로 및 전역 섹션에서 레코드 필드 교환 함수 를 참조하세요.

상속 계층 구조

CFieldExchange

요구 사항

헤더: afxdb.h

CFieldExchange::IsFieldType

고유한 RFX 함수를 작성하는 경우 함수의 시작 부분에 호출 IsFieldType 하여 특정 필드 또는 매개 변수 데이터 멤버 형식(aCFieldExchange::outputColumn, , CFieldExchange::inputParam또는CFieldExchange::paramCFieldExchange::outputParamCFieldExchange::inoutParam)에서 현재 작업을 수행할 수 있는지 여부를 확인합니다.

BOOL IsFieldType(UINT* pnField);

매개 변수

pnField
필드 또는 매개 변수 데이터 멤버의 순차 번호가 이 매개 변수에 반환됩니다. 이 숫자는 CRecordset::D oFieldExchange 또는 CRecordset::D oBulkFieldExchange 함수의 데이터 멤버 순서에 해당합니다.

Return Value

현재 필드 또는 매개 변수 형식에서 현재 작업을 수행할 수 있는 경우 0이 아닌 경우

설명

기존 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경우 매개 변수를 사용하여 호출한 다음 RFX 또는 Bulk RFX 함수를 호출 SetFieldType 해야 합니다. 대량 행 페치를 구현하지 않은 경우 ClassWizard는 이 SetFieldType 호출을 의 필드 맵 섹션 DoFieldExchange에 배치합니다.

레코드 집합 클래스를 매개 변수화하는 경우 필드 맵 섹션 외부에서 다시 호출 SetFieldType 한 다음 모든 매개 변수 데이터 멤버에 대한 RFX 호출을 수행해야 합니다. 매개 변수 데이터 멤버의 각 형식에는 자체 SetFieldType 호출이 있어야 합니다. 다음 표에서는 클래스의 매개 변수 데이터 멤버를 나타내기 위해 SetFieldType 전달할 수 있는 다양한 값을 구분합니다.

SetFieldType 매개 변수 값 매개 변수 데이터 멤버의 형식
CFieldExchange::inputParam 입력 매개 변수입니다. 레코드 집합의 쿼리 또는 저장 프로시저에 전달되는 값입니다.
CFieldExchange::param 와 동일합니다 CFieldExchange::inputParam.
CFieldExchange::outputParam 출력 매개 변수입니다. 레코드 집합 저장 프로시저의 반환 값입니다.
CFieldExchange::inoutParam 입력/출력 매개 변수입니다. 레코드 집합의 저장 프로시저에서 전달되고 반환되는 값입니다.

일반적으로 필드 데이터 멤버 또는 매개 변수 데이터 멤버와 연결된 각 RFX 함수 호출 그룹에는 호출 SetFieldType앞에 와야 합니다. 각 SetFieldType 호출의 nFieldType 매개 변수는 호출 뒤에 있는 RFX 함수 호출에서 나타내는 데이터 멤버의 형식을 SetFieldType 식별합니다.

출력 및 입력/출력 매개 변수 처리에 대한 자세한 내용은 멤버 함수 FlushResultSet를 CRecordset 참조하세요. RFX 및 Bulk RFX 함수에 대한 자세한 내용은 레코드 필드 교환 함수 항목을 참조하세요. 대량 행 가져오기에 대한 관련 정보는 레코드 집합: 대량 레코드 가져오기(ODBC) 문서를 참조하세요.

예시

이 예제에서는 다음과 같은 호출과 함께 RFX 함수에 대한 여러 호출을 SetFieldType보여 줍니다. SetFieldType 개체에 대한 포인터 CFieldExchangepFX 통해 호출됩니다.

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 클래스