다음을 통해 공유


CDaoFieldExchange 클래스

DAO 데이터베이스 클래스에서 사용하는 DAO 레코드 필드 교환(DFX) 루틴을 지원합니다.

참고 항목

DAO는 Office 2013까지 지원됩니다. DAO 3.6은 최종 버전이며 사용되지 않는 것으로 간주됩니다.

구문

class CDaoFieldExchange

멤버

공용 메서드

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

공용 데이터 멤버

속성 설명
CDaoFieldExchange::m_nOperation 레코드 집합의 멤버 함수에 대한 현재 호출에 의해 수행되는 DFX 작업입니다 DoFieldExchange .
CDaoFieldExchange::m_prs DFX 작업이 수행되는 레코드 집합에 대한 포인터입니다.

설명

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

사용자 지정 데이터 형식에 대한 데이터 교환 루틴을 작성하는 경우 이 클래스를 사용합니다. 그렇지 않으면 이 클래스를 직접 사용하지 않습니다. DFX는 CDaoRecordset 개체의 필드 데이터 멤버와 데이터 원본에 있는 현재 레코드의 해당 필드 간에 데이터를 교환합니다. DFX는 데이터 원본과 데이터 원본에서 양방향으로 교환을 관리합니다. 사용자 지정 DFX 루틴 작성에 대한 자세한 내용은 Technical Note 53을 참조하세요.

참고 항목

DAO 데이터베이스 클래스는 ODBC(Open Database Connectivity)를 기반으로 하는 MFC 데이터베이스 클래스와 다릅니다. 모든 DAO 데이터베이스 클래스 이름에는 "CDao" 접두사가 있습니다. DAO 클래스를 사용하여 ODBC 데이터 원본에 계속 액세스할 수 있습니다. 일반적으로 DAO를 기반으로 하는 MFC 클래스는 ODBC를 기반으로 하는 MFC 클래스보다 더 많은 기능을 제공합니다. DAO 기반 클래스는 자체 데이터베이스 엔진을 통해 ODBC 드라이버를 포함한 데이터에 액세스할 수 있습니다. 또한 DAO를 직접 호출하는 대신 클래스를 통해 테이블을 추가하는 것과 같은 DDL(데이터 정의 언어) 작업을 지원합니다.

참고 항목

DAO DFX(레코드 필드 교환)는 ODBC 기반 MFC 데이터베이스 클래스(, CRecordset)의 RFX(CDatabase레코드 필드 교환)와 매우 유사합니다. RFX를 이해하면 DFX를 쉽게 사용할 수 있습니다.

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

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

  • CDaoFieldExchange::param 매개 변수 데이터 멤버에 대한 입니다.

IsValidOperation 멤버 함수는 사용자 고유의 사용자 지정 DFX 루틴을 작성하기 위해 제공됩니다. CDaoRecordset::D oFieldExchange 함수에서 SetFieldType을 자주 사용합니다. DFX 전역 함수에 대한 자세한 내용은 레코드 필드 교환 함수를 참조 하세요. 사용자 고유의 데이터 형식에 대한 사용자 지정 DFX 루틴을 작성하는 방법에 대한 자세한 내용은 Technical Note 53을 참조하세요.

상속 계층 구조

CDaoFieldExchange

요구 사항

머리글: afxdao.h

CDaoFieldExchange::IsValidOperation

고유한 DFX 함수를 작성하는 경우 함수의 시작 부분에 호출 IsValidOperation 하여 특정 필드 데이터 멤버 형식(a CDaoFieldExchange::outputColumn 또는 a CDaoFieldExchange::param)에서 현재 작업을 수행할 수 있는지 여부를 확인합니다.

BOOL IsValidOperation();

Return Value

현재 작업이 업데이트되는 필드 형식에 적합한 경우 0이 아닌 경우

설명

DFX 메커니즘에서 수행하는 일부 작업은 가능한 필드 형식 중 하나에만 적용됩니다. 기존 DFX 함수의 모델을 따릅니다.

사용자 지정 DFX 루틴 작성에 대한 자세한 내용은 Technical Note 53을 참조하세요.

CDaoFieldExchange::m_nOperation

필드 교환 개체와 연결된 CDaoRecordset 개체에서 수행할 작업을 식별합니다.

설명

이 개체는 CDaoFieldExchange 레코드 집합에서 다양한 DFX 작업에 대한 컨텍스트를 제공합니다.

참고 항목

PSEUDONULL 아래 작업 및 SetFieldNull 아래에 MarkForAddNew 설명된 값은 Null 필드를 표시하는 데 사용되는 값입니다. DAO DFX(레코드 필드 교환 메커니즘)는 이 값을 사용하여 명시적으로 Null로 표시된 필드를 결정합니다. PSEUDONULL은 필드 및 COleCurrency 필드에 필요하지 COleDateTime 않습니다.

가능한 값은 m_nOperation 다음과 같습니다.

연산 설명
AddToParameterList SQL 문의 PARAMETERS 절을 작성합니다.
AddToSelectList SQL 문의 SELECT 절을 작성합니다.
BindField 데이터베이스의 필드를 애플리케이션의 메모리 위치에 바인딩합니다.
BindParam 레코드 집합의 쿼리에 대한 매개 변수 값을 설정합니다.
Fixup 필드의 Null 상태를 설정합니다.
AllocCache 레코드 집합에서 "더티" 필드를 확인하는 데 사용되는 캐시를 할당합니다.
StoreField 현재 레코드를 캐시에 저장합니다.
LoadField 레코드 집합에서 캐시된 데이터 멤버 변수를 복원합니다.
FreeCache 레코드 집합에서 "더티" 필드를 확인하는 데 사용되는 캐시를 해제합니다.
SetFieldNull 필드의 상태를 Null로 설정하고 값을 PSEUDONULL로 설정합니다.
MarkForAddNew PSEUDONULL이 아니면 필드를 "더티"로 표시합니다.
MarkForEdit 필드가 캐시와 일치하지 않으면 "더티"를 표시합니다.
SetDirtyField "dirty"로 표시된 필드 값을 설정합니다.
DumpField 필드의 내용을 덤프합니다(디버그만 해당).
MaxDFXOperation 입력 검사에 사용됩니다.

CDaoFieldExchange::m_prs

개체와 연결된 CDaoRecordset 개체에 대한 포인터CDaoFieldExchange 포함합니다.

설명

CDaoFieldExchange::SetFieldType

클래스의 재정의 DoFieldExchange 에서 호출 SetFieldType 합니다CDaoRecordset.

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