사용자 레코드

사용자 레코드는 행 집합에 대 한 열 데이터를 나타내는 코드와 데이터 구조를 제공 합니다. 사용자 레코드는 컴파일 타임 이나 런타임에 만들 수 있습니다. ATL 개체 마법사를 사용 하 여 공급자를 만들면 마법사는 다음과 같은 기본 사용자 레코드를 만듭니다.:

cWindowsFile 클래스:
   공공 WIN32_FIND_DATA
{
공개:

BEGIN_PROVIDER_COLUMN_MAP(CWindowsFile)
   PROVIDER_COLUMN_ENTRY ("FileAttributes", 1, dwFileAttributes)
   PROVIDER_COLUMN_ENTRY ("FileSizeHigh", 2, nFileSizeHigh)
   PROVIDER_COLUMN_ENTRY ("FileSizeLow", 3, nFileSizeLow)
   PROVIDER_COLUMN_ENTRY ("FileName", 4, cFileName)
   PROVIDER_COLUMN_ENTRY ("AltFileName", 5, cAlternateFileName)
END_PROVIDER_COLUMN_MAP()

}

OLE DB 공급자 템플릿은 클라이언트와의 상호 작용에 관한 모든 OLE DB 특성을 처리합니다. 공급자가 사용자 레코드에 넣어야 GetColumnInfo 함수를 호출 하는 응답에 필요한 열 데이터를 획득:

서식 파일 lt; 클래스 T >
정적 ATLCOLUMNINFO * GetColumnInfo(T* pThis, ULONG* pcCols)
 

GetColumnInfo 함수를 만드는 PROVIDER_COLUMN_MAP 매크로 지원:

런타임에 사용자 레코드를 만들면 GetColumnInfo 는 pThis 매개 변수를 사용 하 여 행 집합이 나 명령 인스턴스에 대 한 포인터를 받을. 명령과 행 집합 지원 해야 IColumnsInfo 인터페이스 하므로이 포인터에서 열 정보를 획득할 수 있습니다.

여기에서 보이는 것과 같이 사용자 레코드의 GetColumnInfo 를 명시적으로 재정의할 수 있습니다.:

서식 파일 lt; 클래스 T >
정적 ATLCOLUMNINFO * GetColumnInfo(T* pThis, ULONG* pcCols)
 

이것은 동일:

정적 ATLCOLUMNINFO * GetColumnInfo(CommandClass* pThis, ULONG* pcCols)
정적 ATLCOLUMNINFO * GetColumnInfo(RowsetClass* pThis, ULONG* pcCols)

CommandClass 와 RowsetClass 은 명령 및 사용 하는 사용자 레코드는 행 집합。

사용자 레코드에서 GetColumnInfo 를 재정의 하는 방법을 자세한 예제 는 단순한 읽기 전용 공급자 만들기 을 참조 하십시오.

OLE DB 공급자 템플릿 아키텍처 돌아가기

Index