다음을 통해 공유


사용할 접근자 형식 결정

컴파일 타임이나 런타임에 행 집합의 데이터 형식을 결정할 수 있습니다.

컴파일 타임에 데이터 형식을 결정해야 하는 경우, CAccessor 같은 정적 접근자를 사용합니다. 사용자는 수동으로 데이터 형식을 결정하거나 ATL OLE DB 소비자 마법사를 사용하여 데이터 형식을 결정할 수 있습니다.

런타임에 데이터 형식을 결정해야 하는 경우, 동적 접근자(CDynamicAccessor 또는 그 자식 접근자)나 수동 접근자(CManualAccessor)를 사용합니다. 이런 경우 행 집합에서 GetColumnInfo를 호출하여 형식을 결정할 수 있는 열 바인딩 정보를 반환할 수 있습니다.

다음 표에는 소비자 템플릿의 접근자 형식이 나열되어 있습니다. 접근자마다 장점과 단점이 있으므로, 상황에 따라 적합한 접근자를 사용해야 합니다.

접근자 클래스

바인딩

Parameter

주석

CAccessor

COLUMN_ENTRY 매크로로 사용자 레코드를 만듭니다. 매크로는 해당 레코드의 데이터 맴버를 접근자에 바인딩합니다. 행 집합이 만들어지면 열의 바인딩은 해제될 수 없습니다.

예(PARAM_MAP 매크로 엔트리 사용). 바인딩되면 매개 변수의 바인딩은 해제될 수 없습니다.

코드의 양이 적으므로 가장 빠른 접근자입니다.

CDynamicAccessor

자동.

아니요.

행 집합에서 데이터 형식을 모르는 경우 유용합니다.

CDynamicParameterAccessor

자동이지만 재정의될 수 있습니다.

예(공급자가 ICommandWithParameters를 지원하는 경우). 매개 변수는 자동으로 바인딩됩니다.

CDynamicAccessor보다 느리지만 일반 저장 프로시저 호출에 유용합니다.

CDynamicStringAccessor[A,W]

자동.

아니요.

데이터 저장소에서 액세스되는 데이터를 문자열 데이터로 검색합니다.

CManualAccessor

수동(AddBindEntry 사용)

수동(AddParameterEntry 사용)

매우 빠름. 매개 변수와 열은 한 번만 바인딩됩니다. 사용할 데이터 형식을 결정하십시오. 예제로 DBViewer 샘플을 참조하십시오. CDynamicAccessor 또는 CAccessor 보다 더 많은 코드가 필요합니다. OLE DB를 직접 호출하는 것과 유사합니다.

CXMLAccessor

자동

아니요.

데이터 저장소에서 액세스되는 데이터를 문자열 데이터로 검색하여 형식을 XML 태그 지정 데이터로 지정합니다.

참고 항목

개념

접근자 사용