접근자 및 행 집합
데이터를 설정하고 검색하기 위해 OLE DB 템플릿은 CAccessorRowset 클래스를 통해 접근자 및 행 집합 을 사용합니다. 이 클래스는 여러 형식의 여러 접근자를 처리할 수 있습니다.
접근자 형식
모든 접근자는 CAccessorBase에서 파생됩니다. CAccessorBase
는 매개 변수 및 열 바인딩을 모두 제공합니다.
다음 그림에서는 접근자 형식을 보여줍니다.
접근자 클래스
CAccessor 디자인 타임에 데이터베이스 원본의 구조를 알고 있는 경우 이 접근자를 사용합니다.
CAccessor
버퍼를 포함하는 데이터베이스 레코드를 데이터 원본에 정적으로 바인딩합니다.CDynamicAccessor 디자인 타임에 데이터베이스의 구조를 모르는 경우 이 접근자를 사용합니다.
CDynamicAccessor
을 호출IColumnsInfo::GetColumnInfo
하여 데이터베이스 열 정보를 가져옵니다. 접근자와 버퍼를 만들고 관리합니다.CDynamicParameterAccessor 이 접근자를 사용하여 알 수 없는 명령 형식을 처리합니다. 명령을 준비할 때 공급자가
CDynamicParameterAccessor
지원하는 경우 인터페이스에서ICommandWithParameters
매개 변수 정보를 가져올 수 있습니다ICommandWithParameters
.데이터베이스 스키마에 대한 지식이 없는 경우 CDynamicStringAccessor, CDynamicStringAccessorA 및 CDynamicStringAccessorW 에서 이러한 클래스를 사용합니다.
CDynamicStringAccessorA
는 데이터를 ANSI 문자열로 검색합니다.CDynamicStringAccessorW
는 데이터를 유니코드 문자열로 검색합니다.CManualAccessor 이 클래스를 사용하면 공급자가 형식을 변환할 수 있는 경우 원하는 데이터 형식을 사용할 수 있습니다. 결과 열과 명령 매개 변수를 모두 처리합니다.
다음 표에는 OLE DB 템플릿 접근자 형식의 지원이 요약되어 있습니다.
접근자 유형 | 동적 | 매개 변수 처리 | Buffer | 여러 접근자 |
---|---|---|---|---|
CAccessor |
예 | 예 | 사용자 | 예 |
CDynamicAccessor |
예 | 아니요 | OLE DB 템플릿 | 예 |
CDynamicParameterAccessor |
예 | 예 | OLE DB 템플릿 | 예 |
CDynamicStringAccessor[A,W] |
네 | 아니요 | OLE DB 템플릿 | 예 |
CManualAccessor |
예 | 예 | 사용자 | 예 |
행 집합 형식
OLE DB 템플릿은 세 가지 종류의 행 집합(앞의 그림 참조)을 지원합니다. 단일 행 집합(CRowset에서 구현), 대량 행 집합(CBulkRowset에서 구현), 배열 행 집합(CArrayRowset에서 구현). 단일 행 집합이 호출되면 단일 행 핸들 MoveNext
을 가져옵니다. 대량 행 집합은 여러 행 핸들을 가져올 수 있습니다. 배열 행 집합은 배열 구문을 사용하여 액세스할 수 있는 행 집합입니다.
다음 그림에서는 행 집합 형식을 보여 줍니다.
행 집합 클래스
스키마 행 집합 은 데이터 저장소의 데이터에 액세스하지 않고 메타데이터라는 데이터 저장소에 대한 정보에 액세스합니다. 스키마 행 집합은 일반적으로 컴파일 시간에 데이터베이스 구조를 알 수 없고 런타임에 가져와야 하는 경우에 사용됩니다.