CFieldExchange 클래스
데이터베이스 클래스에서 사용되는 RFX(레코드 필드 교환) 및 대량 RFX(레코드 필드 교환) 루틴을 지원합니다.
구문
class CFieldExchange
멤버
공용 메서드
이름 | 설명 |
---|---|
CFieldExchange::IsFieldType | 현재 작업이 업데이트되는 필드 형식에 적합한 경우 0이 아닌 값을 반환합니다. |
CFieldExchange::SetFieldType | 다음 호출 SetFieldType 까지 RFX 함수에 대한 모든 호출로 표시되는 레코드 집합 데이터 멤버의 형식(열 또는 매개 변수)을 지정합니다. |
설명
CFieldExchange
에는 기본 클래스가 없습니다.
사용자 지정 데이터 형식에 대한 데이터 교환 루틴을 작성하거나 대량 행 페치를 구현하는 경우 이 클래스를 사용합니다. 그렇지 않으면 이 클래스를 직접 사용하지 않습니다. RFX 및 Bulk RFX는 레코드 집합 개체의 필드 데이터 멤버와 데이터 원본에 있는 현재 레코드의 해당 필드 간에 데이터를 교환합니다.
참고 항목
ODBC(Open Database Connectivity) 클래스 대신 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::param
CFieldExchange::outputParam
CFieldExchange::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
개체에 대한 포인터 CFieldExchange
를 pFX
통해 호출됩니다.
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);
}